diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 58ba503f9047..17fe3f3e050c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -990,6 +990,12 @@ # ServiceLabel: %Device Registry %Mgmt # ServiceOwners: @atastrophic @rohankhandelwal +# PRLabel: %Discovery %Mgmt +/sdk/discovery/ @oylawal @achocron + +# ServiceLabel: %Discovery %Mgmt +# ServiceOwners: @achocron + # PRLabel: %Durable Task Scheduler %Mgmt /sdk/durabletask/Azure.ResourceManager.*/ @berndverst @kaibocai @torosent @philliphoff @cgillum @@ -1227,4 +1233,4 @@ # AzureSdkOwners: @live1206 @ArcturusZhang @ArthurMa1978 #PRLabel: %CodeGen %Client -/eng/scripts/typespec/ @JoshLove-msft @m-nash @jorgerangel-msft @jsquire @live1206 @ArcturusZhang @ArthurMa1978 +/eng/scripts/typespec/ @JoshLove-msft @m-nash @jorgerangel-msft @jsquire @live1206 @ArcturusZhang @ArthurMa1978 \ No newline at end of file diff --git a/.vscode/cspell.json b/.vscode/cspell.json index 3732d8c8215e..b22115299eb4 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -639,6 +639,13 @@ "fqdns" ] }, + { + "filename": "**/sdk/discovery/**/*.cs", + "words": [ + "adms", + "mobo" + ] + }, { "filename": "**/sdk/documentintelligence/**/*.cs", "words": [ diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/Azure.ResourceManager.Discovery.sln b/sdk/discovery/Azure.ResourceManager.Discovery/Azure.ResourceManager.Discovery.sln new file mode 100644 index 000000000000..94880105251f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/Azure.ResourceManager.Discovery.sln @@ -0,0 +1,48 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.ResourceManager.Discovery", "src\Azure.ResourceManager.Discovery.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.Build.0 = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.Build.0 = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.Build.0 = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.Build.0 = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.Build.0 = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.Build.0 = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A97F4B90-2591-4689-B1F8-5F21FE6D6CAE} + EndGlobalSection +EndGlobal diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/CHANGELOG.md b/sdk/discovery/Azure.ResourceManager.Discovery/CHANGELOG.md new file mode 100644 index 000000000000..45605a64974c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/CHANGELOG.md @@ -0,0 +1,15 @@ +# Release History + +## 1.0.0-beta.1 (Unreleased) + +### Features Added + +- Initial preview release of the Azure Discovery management client library for .NET. +- Support for managing Discovery Bookshelf, Workspace, Supercomputer, and related resources. +- API version 2026-02-01-preview. + +### Breaking Changes + +### Bugs Fixed + +### Other Changes diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/README.md b/sdk/discovery/Azure.ResourceManager.Discovery/README.md new file mode 100644 index 000000000000..0470d11c1445 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/README.md @@ -0,0 +1,79 @@ +# Microsoft Azure Discovery management client library for .NET + +Azure Discovery is a service for managing Discovery resources including Bookshelves, Workspaces, Projects, Supercomputers, and related components. + +This library supports managing Microsoft Azure Discovery resources. + +This library follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities: + + - Support MSAL.NET. Azure.Identity provides out-of-the-box support for MSAL.NET. + - Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing. + - HTTP pipeline with custom policies. + - Better error-handling. + - Support uniform telemetry across all languages. + +## Getting started + +### Install the package + +Install the Microsoft Azure Discovery management library for .NET with [NuGet](https://www.nuget.org/): + +```dotnetcli +dotnet add package Azure.ResourceManager.Discovery --prerelease +``` + +### Prerequisites + +* You must have a [Microsoft Azure subscription](https://azure.microsoft.com/free/dotnet/). + +### Authenticate the Client + +To create an authenticated client and start interacting with Microsoft Azure resources, see the [quickstart guide here](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md). + +## Key concepts + +Key concepts of the Microsoft Azure SDK for .NET can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html). + +## Documentation + +Documentation is available to help you learn how to use this package: + +- [Quickstart](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md). +- [API References](https://docs.microsoft.com/dotnet/api/?view=azure-dotnet). +- [Authentication](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md). + +## Examples + +Code samples for using the management library for .NET can be found in the following locations: +- [.NET Management Library Code Samples](https://aka.ms/azuresdk-net-mgmt-samples) + +## Troubleshooting + +- File an issue via [GitHub Issues](https://github.com/Azure/azure-sdk-for-net/issues). +- Check [previous questions](https://stackoverflow.com/questions/tagged/azure+.net) or ask new ones on Stack Overflow using Azure and .NET tags. + +## Next steps + +For more information about Microsoft Azure SDK, see [this website](https://azure.github.io/azure-sdk/). + +## Contributing + +For details on contributing to this repository, see the [contributing +guide](https://github.com/Azure/azure-sdk-for-net/blob/main/CONTRIBUTING.md). + +This project welcomes contributions and suggestions. Most contributions +require you to agree to a Contributor License Agreement (CLA) declaring +that you have the right to, and actually do, grant us the rights to use +your contribution. For details, visit . + +When you submit a pull request, a CLA-bot will automatically determine +whether you need to provide a CLA and decorate the PR appropriately +(for example, label, comment). Simply follow the instructions provided by the +bot. You will only need to do this once across all repositories using our CLA. + +This project has adopted the +[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the +[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any +additional questions or comments. diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/metadata.json b/sdk/discovery/Azure.ResourceManager.Discovery/metadata.json new file mode 100644 index 000000000000..5d567444d94a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/metadata.json @@ -0,0 +1,5 @@ +{ + "apiVersions": { + "Microsoft.Discovery": "2026-02-01-preview" + } +} \ No newline at end of file diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Azure.ResourceManager.Discovery.csproj b/sdk/discovery/Azure.ResourceManager.Discovery/src/Azure.ResourceManager.Discovery.csproj new file mode 100644 index 000000000000..842cb82e057a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Azure.ResourceManager.Discovery.csproj @@ -0,0 +1,9 @@ + + + This is the Azure.ResourceManager.Discovery client library for developing .NET applications with rich experience. + SDK Code Generation Azure.ResourceManager.Discovery + 1.0.0-beta.1 + Azure.ResourceManager.Discovery + true + + diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ArmDiscoveryModelFactory.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ArmDiscoveryModelFactory.cs new file mode 100644 index 000000000000..855883cf9607 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ArmDiscoveryModelFactory.cs @@ -0,0 +1,575 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// A factory class for creating instances of the models for mocking. + public static partial class ArmDiscoveryModelFactory + { + + /// Bookshelf tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static BookshelfData BookshelfData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, BookshelfProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new BookshelfData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// The status of the last operation. + /// User assigned identity IDs to be used by knowledgebase workloads. The key value must be the resource ID of the identity resource. + /// Whether or not to use a customer managed key when encrypting data at rest. + /// The key to use for encrypting data at rest when customer managed keys are enabled. Required if Customer Managed Keys is enabled. + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + /// List of private endpoint connections. + /// Whether or not public network access is allowed for this resource. For security reasons, it is recommended to disable it whenever possible. + /// Private Endpoint Subnet ID for private endpoint connections. + /// Search Subnet ID for search resources. + /// The resource group for resources managed on behalf of customer. + /// Managed-On-Behalf-Of broker resources. + /// The bookshelf data plane API URI. + /// A new instance for mocking. + public static BookshelfProperties BookshelfProperties(ProvisioningState? provisioningState = default, IDictionary workloadIdentities = default, CustomerManagedKeys? customerManagedKeys = default, BookshelfKeyVaultProperties keyVaultProperties = default, ResourceIdentifier logAnalyticsClusterId = default, IEnumerable privateEndpointConnections = default, PublicNetworkAccess? publicNetworkAccess = default, ResourceIdentifier privateEndpointSubnetId = default, ResourceIdentifier searchSubnetId = default, string managedResourceGroup = default, IEnumerable managedOnBehalfOfMoboBrokerResources = default, Uri bookshelfUri = default) + { + workloadIdentities ??= new ChangeTrackingDictionary(); + privateEndpointConnections ??= new ChangeTrackingList(); + + return new BookshelfProperties( + provisioningState, + workloadIdentities, + customerManagedKeys, + keyVaultProperties, + logAnalyticsClusterId, + privateEndpointConnections.ToList(), + publicNetworkAccess, + privateEndpointSubnetId, + searchSubnetId, + managedResourceGroup, + managedOnBehalfOfMoboBrokerResources is null ? default : new WithMoboBrokerResources((managedOnBehalfOfMoboBrokerResources ?? new ChangeTrackingList()).ToList(), null), + bookshelfUri, + additionalBinaryDataProperties: null); + } + + /// The private endpoint connection resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// The private endpoint connection properties. + /// A new instance for mocking. + public static DiscoveryPrivateEndpointConnection DiscoveryPrivateEndpointConnection(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, PrivateEndpointConnectionProperties properties = default) + { + return new DiscoveryPrivateEndpointConnection( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + properties); + } + + /// The group ids for the private endpoint resource. + /// The resource identifier of the private endpoint. + /// A collection of information about the state of the connection between service consumer and provider. + /// The provisioning state of the private endpoint connection resource. + /// A new instance for mocking. + public static PrivateEndpointConnectionProperties PrivateEndpointConnectionProperties(IEnumerable groupIds = default, ResourceIdentifier privateEndpointId = default, DiscoveryPrivateLinkServiceConnectionState privateLinkServiceConnectionState = default, DiscoveryPrivateEndpointConnectionProvisioningState? provisioningState = default) + { + groupIds ??= new ChangeTrackingList(); + + return new PrivateEndpointConnectionProperties(groupIds.ToList(), privateEndpointId is null ? default : new PrivateEndpoint(privateEndpointId, null), privateLinkServiceConnectionState, provisioningState, additionalBinaryDataProperties: null); + } + + /// Managed-On-Behalf-Of broker resource. This resource is created by the Resource Provider to manage some resources on behalf of the user. + /// Resource identifier of a Managed-On-Behalf-Of broker resource. + /// A new instance for mocking. + public static MoboBrokerResource MoboBrokerResource(ResourceIdentifier id = default) + { + return new MoboBrokerResource(id, additionalBinaryDataProperties: null); + } + + /// The Private Endpoint Connection resource for Bookshelf. + /// Fully qualified resource ID for the resource. Ex - /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. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static BookshelfPrivateEndpointConnectionData BookshelfPrivateEndpointConnectionData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, PrivateEndpointConnectionProperties properties = default) + { + return new BookshelfPrivateEndpointConnectionData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + properties); + } + + /// A private link resource for Bookshelf. + /// Fully qualified resource ID for the resource. Ex - /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. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static BookshelfPrivateLinkResourceData BookshelfPrivateLinkResourceData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, DiscoveryPrivateLinkResourceProperties properties = default) + { + return new BookshelfPrivateLinkResourceData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + properties); + } + + /// Properties of a private link resource. + /// The private link resource group id. + /// The private link resource required member names. + /// The private link resource private link DNS zone name. + /// A new instance for mocking. + public static DiscoveryPrivateLinkResourceProperties DiscoveryPrivateLinkResourceProperties(string groupId = default, IEnumerable requiredMembers = default, IEnumerable requiredZoneNames = default) + { + requiredMembers ??= new ChangeTrackingList(); + requiredZoneNames ??= new ChangeTrackingList(); + + return new DiscoveryPrivateLinkResourceProperties(groupId, requiredMembers.ToList(), requiredZoneNames.ToList(), additionalBinaryDataProperties: null); + } + + /// Tool tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static ToolData ToolData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, ToolProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new ToolData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// Discovery Tool list item properties. + /// The status of the last operation. + /// The version of a resource definition. + /// Environment variables to make available. + /// The JSON content for defining a resource. + /// A new instance for mocking. + public static ToolProperties ToolProperties(ProvisioningState? provisioningState = default, string version = default, IDictionary environmentVariables = default, IDictionary definitionContent = default) + { + environmentVariables ??= new ChangeTrackingDictionary(); + definitionContent ??= new ChangeTrackingDictionary(); + + return new ToolProperties(provisioningState, version, environmentVariables, definitionContent, additionalBinaryDataProperties: null); + } + + /// Project tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static ProjectData ProjectData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, ProjectProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new ProjectData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// The status of the last operation. + /// Foundry project endpoint URI. + /// Allowed StorageContainers (Control plane resource references). + /// Default preferences to guide AI behaviors in this project. + /// A new instance for mocking. + public static ProjectProperties ProjectProperties(ProvisioningState? provisioningState = default, Uri foundryProjectEndpoint = default, IEnumerable storageContainerIds = default, string behaviorPreferences = default) + { + storageContainerIds ??= new ChangeTrackingList(); + + return new ProjectProperties(provisioningState, foundryProjectEndpoint, storageContainerIds.ToList(), behaviorPreferences is null ? default : new ProjectSettings(behaviorPreferences, null), additionalBinaryDataProperties: null); + } + + /// Workspace tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static WorkspaceData WorkspaceData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, WorkspaceProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new WorkspaceData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// The status of the last operation. + /// List of linked SuperComputers. + /// workspace API endpoint Uri. + /// workspace User Interface Uri. + /// Identity IDs used for leveraging Workspace resources. + /// Whether or not to use a customer managed key when encrypting data at rest. + /// The key to use for encrypting data at rest when customer managed keys are enabled. + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + /// List of private endpoint connections. + /// Whether or not public network access is allowed for this resource. For security reasons, it is recommended to disable it whenever possible. + /// Agent Subnet ID for agent resources. + /// Private Endpoint Subnet ID for private endpoint connections. + /// Function Subnet ID for workspace resources. + /// The resource group for resources managed on behalf of customer. + /// Managed-On-Behalf-Of broker resources. + /// A new instance for mocking. + public static WorkspaceProperties WorkspaceProperties(ProvisioningState? provisioningState = default, IEnumerable supercomputerIds = default, Uri workspaceApiUri = default, Uri workspaceUiUri = default, Identity workspaceIdentity = default, CustomerManagedKeys? customerManagedKeys = default, KeyVaultProperties keyVaultProperties = default, ResourceIdentifier logAnalyticsClusterId = default, IEnumerable privateEndpointConnections = default, PublicNetworkAccess? publicNetworkAccess = default, ResourceIdentifier agentSubnetId = default, ResourceIdentifier privateEndpointSubnetId = default, ResourceIdentifier workspaceSubnetId = default, string managedResourceGroup = default, IEnumerable managedOnBehalfOfMoboBrokerResources = default) + { + supercomputerIds ??= new ChangeTrackingList(); + privateEndpointConnections ??= new ChangeTrackingList(); + + return new WorkspaceProperties( + provisioningState, + supercomputerIds.ToList(), + workspaceApiUri, + workspaceUiUri, + workspaceIdentity, + customerManagedKeys, + keyVaultProperties, + logAnalyticsClusterId, + privateEndpointConnections.ToList(), + publicNetworkAccess, + agentSubnetId, + privateEndpointSubnetId, + workspaceSubnetId, + managedResourceGroup, + managedOnBehalfOfMoboBrokerResources is null ? default : new WithMoboBrokerResources((managedOnBehalfOfMoboBrokerResources ?? new ChangeTrackingList()).ToList(), null), + additionalBinaryDataProperties: null); + } + + /// For user assigned identity resource property. + /// The resource ID of the user assigned identity. + /// The principal ID of the assigned identity. + /// The client ID of the assigned identity. + /// A new instance for mocking. + public static Identity Identity(ResourceIdentifier id = default, Guid? principalId = default, Guid? clientId = default) + { + return new Identity(id, principalId, clientId, additionalBinaryDataProperties: null); + } + + /// The Private Endpoint Connection resource for Workspace. + /// Fully qualified resource ID for the resource. Ex - /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. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static WorkspacePrivateEndpointConnectionData WorkspacePrivateEndpointConnectionData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, PrivateEndpointConnectionProperties properties = default) + { + return new WorkspacePrivateEndpointConnectionData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + properties); + } + + /// Represents a deployment that ties a specific model family to a user defined deployment name used when invoking the chat model. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static ChatModelDeploymentData ChatModelDeploymentData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, ChatModelDeploymentProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new ChatModelDeploymentData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// Defines a deployment binding a specific model family to a user-defined deployment name for chat inference. + /// The status of the last operation. + /// Model format as published by the provider. Verify supported formats per region using the Model Catalog API. + /// Canonical provider model name available in the selected region. Verify supported values per region using the Model Catalog API. + /// A new instance for mocking. + public static ChatModelDeploymentProperties ChatModelDeploymentProperties(ProvisioningState? provisioningState = default, string modelFormat = default, string modelName = default) + { + return new ChatModelDeploymentProperties(provisioningState, modelFormat, modelName, additionalBinaryDataProperties: null); + } + + /// A private link resource for Workspace. + /// Fully qualified resource ID for the resource. Ex - /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. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static WorkspacePrivateLinkResourceData WorkspacePrivateLinkResourceData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, DiscoveryPrivateLinkResourceProperties properties = default) + { + return new WorkspacePrivateLinkResourceData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + properties); + } + + /// NodePool tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static NodePoolData NodePoolData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, NodePoolProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new NodePoolData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// NodePool properties. + /// The status of the last operation. + /// The node pool subnet. + /// The size of the underlying Azure VM. + /// The maximum number of nodes. + /// The minimum number of nodes. + /// The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + /// A new instance for mocking. + public static NodePoolProperties NodePoolProperties(ProvisioningState? provisioningState = default, ResourceIdentifier subnetId = default, VmSize vmSize = default, int maxNodeCount = default, int? minNodeCount = default, ScaleSetPriority? scaleSetPriority = default) + { + return new NodePoolProperties( + provisioningState, + subnetId, + vmSize, + maxNodeCount, + minNodeCount, + scaleSetPriority, + additionalBinaryDataProperties: null); + } + + /// Supercomputer tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static SupercomputerData SupercomputerData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, SupercomputerProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new SupercomputerData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// The status of the last operation. + /// + /// System Subnet ID associated with managed NodePool for system resources. + /// It should have connectivity to the child NodePool subnets. + /// + /// + /// System Subnet ID associated with AKS apiserver. Must be delegated to Microsoft.ContainerService/managedClusters. + /// It should have connectivity to the system subnet and nodepool subnets. + /// + /// + /// Network egress type provisioned for the supercomputer workloads. + /// Defaults to LoadBalancer if not specified. + /// If None is specified, the customer is responsible for providing outbound connectivity for Supercomputer functionality. + /// + /// The SKU to use for the system node pool. + /// Dictionary of identity properties. + /// Whether or not to use a customer managed key when encrypting data at rest. + /// Disk Encryption Set ID to use for Customer Managed Keys encryption. Required if Customer Managed Keys is enabled. + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + /// The resource group for resources managed on behalf of customer. + /// Managed-On-Behalf-Of broker resources. + /// A new instance for mocking. + public static SupercomputerProperties SupercomputerProperties(ProvisioningState? provisioningState = default, ResourceIdentifier subnetId = default, ResourceIdentifier managementSubnetId = default, NetworkEgressType? outboundType = default, SystemSku? systemSku = default, SupercomputerIdentities identities = default, CustomerManagedKeys? customerManagedKeys = default, ResourceIdentifier diskEncryptionSetId = default, ResourceIdentifier logAnalyticsClusterId = default, string managedResourceGroup = default, IEnumerable managedOnBehalfOfMoboBrokerResources = default) + { + return new SupercomputerProperties( + provisioningState, + subnetId, + managementSubnetId, + outboundType, + systemSku, + identities, + customerManagedKeys, + diskEncryptionSetId, + logAnalyticsClusterId, + managedResourceGroup, + managedOnBehalfOfMoboBrokerResources is null ? default : new WithMoboBrokerResources((managedOnBehalfOfMoboBrokerResources ?? new ChangeTrackingList()).ToList(), null), + additionalBinaryDataProperties: null); + } + + /// Dictionary of identity properties for the Supercomputer. + /// Cluster identity ID. + /// + /// Kubelet identity ID used by the supercomputer. + /// This identity is used by the supercomputer at node level to access Azure resources. + /// This identity must have ManagedIdentityOperator role on the clusterIdentity. + /// + /// User assigned identity IDs to be used by workloads as federated credentials running on supercomputer. The key value must be the resource ID of the identity resource. + /// A new instance for mocking. + public static SupercomputerIdentities SupercomputerIdentities(Identity clusterIdentity = default, Identity kubeletIdentity = default, IDictionary workloadIdentities = default) + { + workloadIdentities ??= new ChangeTrackingDictionary(); + + return new SupercomputerIdentities(clusterIdentity, kubeletIdentity, workloadIdentities, additionalBinaryDataProperties: null); + } + + /// Storage Asset tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static StorageAssetData StorageAssetData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, StorageAssetProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new StorageAssetData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// Storage Asset properties. + /// The description. + /// The status of the last operation. + /// The path to the data within its parent container. This should be relative to the root of the parent container. + /// A new instance for mocking. + public static StorageAssetProperties StorageAssetProperties(string description = default, ProvisioningState? provisioningState = default, string path = default) + { + return new StorageAssetProperties(description, provisioningState, path, additionalBinaryDataProperties: null); + } + + /// Storage Container tracked resource. + /// Fully qualified resource ID for the resource. Ex - /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. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + /// A new instance for mocking. + public static StorageContainerData StorageContainerData(ResourceIdentifier id = default, string name = default, ResourceType resourceType = default, SystemData systemData = default, IDictionary tags = default, AzureLocation location = default, StorageContainerProperties properties = default) + { + tags ??= new ChangeTrackingDictionary(); + + return new StorageContainerData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties: null, + tags, + location, + properties); + } + + /// Storage Container properties. + /// The status of the last operation. + /// Storage store properties. + /// A new instance for mocking. + public static StorageContainerProperties StorageContainerProperties(ProvisioningState? provisioningState = default, StorageStore storageStore = default) + { + return new StorageContainerProperties(provisioningState, storageStore, additionalBinaryDataProperties: null); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfCollection.cs new file mode 100644 index 000000000000..75b83b984cb9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfCollection.cs @@ -0,0 +1,580 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetBookshelves method from an instance of . + /// + public partial class BookshelfCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _bookshelvesClientDiagnostics; + private readonly Bookshelves _bookshelvesRestClient; + + /// Initializes a new instance of BookshelfCollection for mocking. + protected BookshelfCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal BookshelfCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(BookshelfResource.ResourceType, out string bookshelfApiVersion); + _bookshelvesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", BookshelfResource.ResourceType.Namespace, Diagnostics); + _bookshelvesRestClient = new Bookshelves(_bookshelvesClientDiagnostics, Pipeline, Endpoint, bookshelfApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceGroupResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceGroupResource.ResourceType), id); + } + } + + /// + /// Create a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Bookshelf. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string bookshelfName, BookshelfData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, BookshelfData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfOperationSource(Client), + _bookshelvesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Bookshelf. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string bookshelfName, BookshelfData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, BookshelfData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfOperationSource(Client), + _bookshelvesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Bookshelf resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves. + /// + /// + /// Operation Id. + /// Bookshelves_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new BookshelvesGetByResourceGroupAsyncCollectionResultOfT(_bookshelvesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new BookshelfResource(Client, data)); + } + + /// + /// List Bookshelf resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves. + /// + /// + /// Operation Id. + /// Bookshelves_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new BookshelvesGetByResourceGroupCollectionResultOfT(_bookshelvesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new BookshelfResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, bookshelfName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfData.Serialization.cs new file mode 100644 index 000000000000..888bb77d3779 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Bookshelf tracked resource. + public partial class BookshelfData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal BookshelfData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (BookshelfData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(BookshelfData bookshelfData) + { + if (bookshelfData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(bookshelfData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static BookshelfData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBookshelfData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (BookshelfData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfData DeserializeBookshelfData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + BookshelfProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = BookshelfProperties.DeserializeBookshelfProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfData.cs new file mode 100644 index 000000000000..3c801ba62380 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Bookshelf tracked resource. + public partial class BookshelfData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public BookshelfData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal BookshelfData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, BookshelfProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public BookshelfProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionCollection.cs new file mode 100644 index 000000000000..069e3b5d018a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionCollection.cs @@ -0,0 +1,579 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetBookshelfPrivateEndpointConnections method from an instance of . + /// + public partial class BookshelfPrivateEndpointConnectionCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _bookshelfPrivateEndpointConnectionsClientDiagnostics; + private readonly BookshelfPrivateEndpointConnections _bookshelfPrivateEndpointConnectionsRestClient; + + /// Initializes a new instance of BookshelfPrivateEndpointConnectionCollection for mocking. + protected BookshelfPrivateEndpointConnectionCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal BookshelfPrivateEndpointConnectionCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(BookshelfPrivateEndpointConnectionResource.ResourceType, out string bookshelfPrivateEndpointConnectionApiVersion); + _bookshelfPrivateEndpointConnectionsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", BookshelfPrivateEndpointConnectionResource.ResourceType.Namespace, Diagnostics); + _bookshelfPrivateEndpointConnectionsRestClient = new BookshelfPrivateEndpointConnections(_bookshelfPrivateEndpointConnectionsClientDiagnostics, Pipeline, Endpoint, bookshelfPrivateEndpointConnectionApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != BookshelfResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, BookshelfResource.ResourceType), id); + } + } + + /// + /// Approves or updates the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the private endpoint connection associated with the Azure resource. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string privateEndpointConnectionName, BookshelfPrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, BookshelfPrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfPrivateEndpointConnectionOperationSource(Client), + _bookshelfPrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Approves or updates the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the private endpoint connection associated with the Azure resource. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string privateEndpointConnectionName, BookshelfPrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, BookshelfPrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfPrivateEndpointConnectionOperationSource(Client), + _bookshelfPrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private endpoint connection associated with the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private endpoint connection associated with the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Lists all private endpoint connections for a bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_ListByBookshelf. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT(_bookshelfPrivateEndpointConnectionsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new BookshelfPrivateEndpointConnectionResource(Client, data)); + } + + /// + /// Lists all private endpoint connections for a bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_ListByBookshelf. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT(_bookshelfPrivateEndpointConnectionsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new BookshelfPrivateEndpointConnectionResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionData.Serialization.cs new file mode 100644 index 000000000000..9d0d459d12ca --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionData.Serialization.cs @@ -0,0 +1,196 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// The Private Endpoint Connection resource for Bookshelf. + public partial class BookshelfPrivateEndpointConnectionData : ResourceData, IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfPrivateEndpointConnectionData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfPrivateEndpointConnectionData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (BookshelfPrivateEndpointConnectionData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(BookshelfPrivateEndpointConnectionData bookshelfPrivateEndpointConnectionData) + { + if (bookshelfPrivateEndpointConnectionData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(bookshelfPrivateEndpointConnectionData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static BookshelfPrivateEndpointConnectionData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBookshelfPrivateEndpointConnectionData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfPrivateEndpointConnectionData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (BookshelfPrivateEndpointConnectionData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfPrivateEndpointConnectionData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfPrivateEndpointConnectionData DeserializeBookshelfPrivateEndpointConnectionData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + PrivateEndpointConnectionProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = PrivateEndpointConnectionProperties.DeserializePrivateEndpointConnectionProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfPrivateEndpointConnectionData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionData.cs new file mode 100644 index 000000000000..7c1ab21b5b8d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionData.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// The Private Endpoint Connection resource for Bookshelf. + public partial class BookshelfPrivateEndpointConnectionData : ResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public BookshelfPrivateEndpointConnectionData() + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// The resource-specific properties for this resource. + internal BookshelfPrivateEndpointConnectionData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, PrivateEndpointConnectionProperties properties) : base(id, name, resourceType, systemData) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public PrivateEndpointConnectionProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionResource.Serialization.cs new file mode 100644 index 000000000000..854f4bf072fb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class BookshelfPrivateEndpointConnectionResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new BookshelfPrivateEndpointConnectionData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + BookshelfPrivateEndpointConnectionData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + BookshelfPrivateEndpointConnectionData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionResource.cs new file mode 100644 index 000000000000..72bd7aa2a117 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateEndpointConnectionResource.cs @@ -0,0 +1,406 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a BookshelfPrivateEndpointConnection along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetBookshelfPrivateEndpointConnections method. + /// + public partial class BookshelfPrivateEndpointConnectionResource : ArmResource + { + private readonly ClientDiagnostics _bookshelfPrivateEndpointConnectionsClientDiagnostics; + private readonly BookshelfPrivateEndpointConnections _bookshelfPrivateEndpointConnectionsRestClient; + private readonly BookshelfPrivateEndpointConnectionData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/bookshelves/privateEndpointConnections"; + + /// Initializes a new instance of BookshelfPrivateEndpointConnectionResource for mocking. + protected BookshelfPrivateEndpointConnectionResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal BookshelfPrivateEndpointConnectionResource(ArmClient client, BookshelfPrivateEndpointConnectionData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal BookshelfPrivateEndpointConnectionResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string bookshelfPrivateEndpointConnectionApiVersion); + _bookshelfPrivateEndpointConnectionsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _bookshelfPrivateEndpointConnectionsRestClient = new BookshelfPrivateEndpointConnections(_bookshelfPrivateEndpointConnectionsClientDiagnostics, Pipeline, Endpoint, bookshelfPrivateEndpointConnectionApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual BookshelfPrivateEndpointConnectionData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The bookshelfName. + /// The privateEndpointConnectionName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string bookshelfName, string privateEndpointConnectionName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Gets the specified private endpoint connection associated with the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private endpoint connection associated with the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfPrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Deletes the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_bookshelfPrivateEndpointConnectionsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Deletes the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_bookshelfPrivateEndpointConnectionsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a BookshelfPrivateEndpointConnection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, BookshelfPrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, BookshelfPrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfPrivateEndpointConnectionOperationSource(Client), + _bookshelfPrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a BookshelfPrivateEndpointConnection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, BookshelfPrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelfPrivateEndpointConnectionsClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, BookshelfPrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfPrivateEndpointConnectionOperationSource(Client), + _bookshelfPrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResource.Serialization.cs new file mode 100644 index 000000000000..3e2329e53891 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class BookshelfPrivateLinkResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new BookshelfPrivateLinkResourceData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + BookshelfPrivateLinkResourceData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + BookshelfPrivateLinkResourceData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResource.cs new file mode 100644 index 000000000000..bb1a208d8abe --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResource.cs @@ -0,0 +1,190 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a BookshelfPrivateLinkResource along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetBookshelfPrivateLinkResources method. + /// + public partial class BookshelfPrivateLinkResource : ArmResource + { + private readonly ClientDiagnostics _bookshelfPrivateLinkResourcesClientDiagnostics; + private readonly BookshelfPrivateLinkResources _bookshelfPrivateLinkResourcesRestClient; + private readonly BookshelfPrivateLinkResourceData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/bookshelves/privateLinkResources"; + + /// Initializes a new instance of BookshelfPrivateLinkResource for mocking. + protected BookshelfPrivateLinkResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal BookshelfPrivateLinkResource(ArmClient client, BookshelfPrivateLinkResourceData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal BookshelfPrivateLinkResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string bookshelfPrivateLinkResourceApiVersion); + _bookshelfPrivateLinkResourcesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _bookshelfPrivateLinkResourcesRestClient = new BookshelfPrivateLinkResources(_bookshelfPrivateLinkResourcesClientDiagnostics, Pipeline, Endpoint, bookshelfPrivateLinkResourceApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual BookshelfPrivateLinkResourceData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The bookshelfName. + /// The privateLinkResourceName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string bookshelfName, string privateLinkResourceName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Gets the specified private link resource for the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private link resource for the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceCollection.cs new file mode 100644 index 000000000000..51a34fdbf2a3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceCollection.cs @@ -0,0 +1,463 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetBookshelfPrivateLinkResources method from an instance of . + /// + public partial class BookshelfPrivateLinkResourceCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _bookshelfPrivateLinkResourcesClientDiagnostics; + private readonly BookshelfPrivateLinkResources _bookshelfPrivateLinkResourcesRestClient; + + /// Initializes a new instance of BookshelfPrivateLinkResourceCollection for mocking. + protected BookshelfPrivateLinkResourceCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal BookshelfPrivateLinkResourceCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(BookshelfPrivateLinkResource.ResourceType, out string bookshelfPrivateLinkResourceApiVersion); + _bookshelfPrivateLinkResourcesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", BookshelfPrivateLinkResource.ResourceType.Namespace, Diagnostics); + _bookshelfPrivateLinkResourcesRestClient = new BookshelfPrivateLinkResources(_bookshelfPrivateLinkResourcesClientDiagnostics, Pipeline, Endpoint, bookshelfPrivateLinkResourceApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != BookshelfResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, BookshelfResource.ResourceType), id); + } + } + + /// + /// Gets the specified private link resource for the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private link resource for the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Lists all private link resources for the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_ListByBookshelf. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT(_bookshelfPrivateLinkResourcesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new BookshelfPrivateLinkResource(Client, data)); + } + + /// + /// Lists all private link resources for the bookshelf. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_ListByBookshelf. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT(_bookshelfPrivateLinkResourcesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new BookshelfPrivateLinkResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// BookshelfPrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _bookshelfPrivateLinkResourcesClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelfPrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(BookshelfPrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((BookshelfPrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfPrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceData.Serialization.cs new file mode 100644 index 000000000000..5c5295bd9481 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceData.Serialization.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// A private link resource for Bookshelf. + public partial class BookshelfPrivateLinkResourceData : ResourceData, IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfPrivateLinkResourceData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfPrivateLinkResourceData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (BookshelfPrivateLinkResourceData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static BookshelfPrivateLinkResourceData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBookshelfPrivateLinkResourceData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfPrivateLinkResourceData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (BookshelfPrivateLinkResourceData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfPrivateLinkResourceData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfPrivateLinkResourceData DeserializeBookshelfPrivateLinkResourceData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + DiscoveryPrivateLinkResourceProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = DiscoveryPrivateLinkResourceProperties.DeserializeDiscoveryPrivateLinkResourceProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfPrivateLinkResourceData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceData.cs new file mode 100644 index 000000000000..424fb6f237ec --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfPrivateLinkResourceData.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// A private link resource for Bookshelf. + public partial class BookshelfPrivateLinkResourceData : ResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + internal BookshelfPrivateLinkResourceData() + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// The resource-specific properties for this resource. + internal BookshelfPrivateLinkResourceData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, DiscoveryPrivateLinkResourceProperties properties) : base(id, name, resourceType, systemData) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public DiscoveryPrivateLinkResourceProperties Properties { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfResource.Serialization.cs new file mode 100644 index 000000000000..211f0a68d738 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class BookshelfResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new BookshelfData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + BookshelfData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + BookshelfData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfResource.cs new file mode 100644 index 000000000000..25b505592beb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/BookshelfResource.cs @@ -0,0 +1,747 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a Bookshelf along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetBookshelves method. + /// + public partial class BookshelfResource : ArmResource + { + private readonly ClientDiagnostics _bookshelvesClientDiagnostics; + private readonly Bookshelves _bookshelvesRestClient; + private readonly BookshelfData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/bookshelves"; + + /// Initializes a new instance of BookshelfResource for mocking. + protected BookshelfResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal BookshelfResource(ArmClient client, BookshelfData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal BookshelfResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string bookshelfApiVersion); + _bookshelvesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _bookshelvesRestClient = new Bookshelves(_bookshelvesClientDiagnostics, Pipeline, Endpoint, bookshelfApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual BookshelfData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The bookshelfName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string bookshelfName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, BookshelfData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, BookshelfData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfOperationSource(Client), + _bookshelvesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, BookshelfData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, BookshelfData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new BookshelfOperationSource(Client), + _bookshelvesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_bookshelvesClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_bookshelvesClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + else + { + BookshelfData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + BookshelfData patch = new BookshelfData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + else + { + BookshelfData current = Get(cancellationToken: cancellationToken).Value.Data; + BookshelfData patch = new BookshelfData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + else + { + BookshelfData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + BookshelfData patch = new BookshelfData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + else + { + BookshelfData current = Get(cancellationToken: cancellationToken).Value.Data; + BookshelfData patch = new BookshelfData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + else + { + BookshelfData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + BookshelfData patch = new BookshelfData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _bookshelvesClientDiagnostics.CreateScope("BookshelfResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _bookshelvesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(BookshelfData.FromResponse(result), result); + return Response.FromValue(new BookshelfResource(Client, response.Value), response.GetRawResponse()); + } + else + { + BookshelfData current = Get(cancellationToken: cancellationToken).Value.Data; + BookshelfData patch = new BookshelfData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a collection of BookshelfPrivateEndpointConnections in the . + /// An object representing collection of BookshelfPrivateEndpointConnections and their operations over a BookshelfPrivateEndpointConnectionResource. + public virtual BookshelfPrivateEndpointConnectionCollection GetBookshelfPrivateEndpointConnections() + { + return GetCachedClient(client => new BookshelfPrivateEndpointConnectionCollection(client, Id)); + } + + /// Gets the specified private endpoint connection associated with the bookshelf. + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetBookshelfPrivateEndpointConnectionAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + return await GetBookshelfPrivateEndpointConnections().GetAsync(privateEndpointConnectionName, cancellationToken).ConfigureAwait(false); + } + + /// Gets the specified private endpoint connection associated with the bookshelf. + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetBookshelfPrivateEndpointConnection(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + return GetBookshelfPrivateEndpointConnections().Get(privateEndpointConnectionName, cancellationToken); + } + + /// Gets a collection of BookshelfPrivateLinkResources in the . + /// An object representing collection of BookshelfPrivateLinkResources and their operations over a BookshelfPrivateLinkResource. + public virtual BookshelfPrivateLinkResourceCollection GetBookshelfPrivateLinkResources() + { + return GetCachedClient(client => new BookshelfPrivateLinkResourceCollection(client, Id)); + } + + /// Gets the specified private link resource for the bookshelf. + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetBookshelfPrivateLinkResourceAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + return await GetBookshelfPrivateLinkResources().GetAsync(privateLinkResourceName, cancellationToken).ConfigureAwait(false); + } + + /// Gets the specified private link resource for the bookshelf. + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetBookshelfPrivateLinkResource(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + return GetBookshelfPrivateLinkResources().Get(privateLinkResourceName, cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentCollection.cs new file mode 100644 index 000000000000..3e60bbd7109e --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentCollection.cs @@ -0,0 +1,579 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetChatModelDeployments method from an instance of . + /// + public partial class ChatModelDeploymentCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _chatModelDeploymentsClientDiagnostics; + private readonly ChatModelDeployments _chatModelDeploymentsRestClient; + + /// Initializes a new instance of ChatModelDeploymentCollection for mocking. + protected ChatModelDeploymentCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ChatModelDeploymentCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ChatModelDeploymentResource.ResourceType, out string chatModelDeploymentApiVersion); + _chatModelDeploymentsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ChatModelDeploymentResource.ResourceType.Namespace, Diagnostics); + _chatModelDeploymentsRestClient = new ChatModelDeployments(_chatModelDeploymentsClientDiagnostics, Pipeline, Endpoint, chatModelDeploymentApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != WorkspaceResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, WorkspaceResource.ResourceType), id); + } + } + + /// + /// Create a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the ChatModelDeployment. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string chatModelDeploymentName, ChatModelDeploymentData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, ChatModelDeploymentData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ChatModelDeploymentOperationSource(Client), + _chatModelDeploymentsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the ChatModelDeployment. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string chatModelDeploymentName, ChatModelDeploymentData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, ChatModelDeploymentData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ChatModelDeploymentOperationSource(Client), + _chatModelDeploymentsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List ChatModelDeployment resources by Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments. + /// + /// + /// Operation Id. + /// ChatModelDeployments_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT(_chatModelDeploymentsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new ChatModelDeploymentResource(Client, data)); + } + + /// + /// List ChatModelDeployment resources by Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments. + /// + /// + /// Operation Id. + /// ChatModelDeployments_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new ChatModelDeploymentsGetByWorkspaceCollectionResultOfT(_chatModelDeploymentsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new ChatModelDeploymentResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ChatModelDeploymentData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ChatModelDeploymentData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ChatModelDeploymentData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, chatModelDeploymentName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ChatModelDeploymentData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentData.Serialization.cs new file mode 100644 index 000000000000..543d906af348 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Represents a deployment that ties a specific model family to a user defined deployment name used when invoking the chat model. + public partial class ChatModelDeploymentData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ChatModelDeploymentData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeChatModelDeploymentData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ChatModelDeploymentData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ChatModelDeploymentData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ChatModelDeploymentData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ChatModelDeploymentData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(ChatModelDeploymentData chatModelDeploymentData) + { + if (chatModelDeploymentData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(chatModelDeploymentData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static ChatModelDeploymentData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeChatModelDeploymentData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatModelDeploymentData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ChatModelDeploymentData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ChatModelDeploymentData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatModelDeploymentData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeChatModelDeploymentData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ChatModelDeploymentData DeserializeChatModelDeploymentData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + ChatModelDeploymentProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = ChatModelDeploymentProperties.DeserializeChatModelDeploymentProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ChatModelDeploymentData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentData.cs new file mode 100644 index 000000000000..3b167ed1ed36 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Represents a deployment that ties a specific model family to a user defined deployment name used when invoking the chat model. + public partial class ChatModelDeploymentData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public ChatModelDeploymentData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal ChatModelDeploymentData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, ChatModelDeploymentProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public ChatModelDeploymentProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentResource.Serialization.cs new file mode 100644 index 000000000000..e702ca11bafd --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class ChatModelDeploymentResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new ChatModelDeploymentData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + ChatModelDeploymentData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + ChatModelDeploymentData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentResource.cs new file mode 100644 index 000000000000..52057a16b564 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ChatModelDeploymentResource.cs @@ -0,0 +1,682 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a ChatModelDeployment along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetChatModelDeployments method. + /// + public partial class ChatModelDeploymentResource : ArmResource + { + private readonly ClientDiagnostics _chatModelDeploymentsClientDiagnostics; + private readonly ChatModelDeployments _chatModelDeploymentsRestClient; + private readonly ChatModelDeploymentData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/workspaces/chatModelDeployments"; + + /// Initializes a new instance of ChatModelDeploymentResource for mocking. + protected ChatModelDeploymentResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal ChatModelDeploymentResource(ArmClient client, ChatModelDeploymentData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ChatModelDeploymentResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string chatModelDeploymentApiVersion); + _chatModelDeploymentsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _chatModelDeploymentsRestClient = new ChatModelDeployments(_chatModelDeploymentsClientDiagnostics, Pipeline, Endpoint, chatModelDeploymentApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual ChatModelDeploymentData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The workspaceName. + /// The chatModelDeploymentName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string workspaceName, string chatModelDeploymentName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, ChatModelDeploymentData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, ChatModelDeploymentData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ChatModelDeploymentOperationSource(Client), + _chatModelDeploymentsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, ChatModelDeploymentData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, ChatModelDeploymentData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ChatModelDeploymentOperationSource(Client), + _chatModelDeploymentsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_chatModelDeploymentsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a ChatModelDeployment + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/chatModelDeployments/{chatModelDeploymentName}. + /// + /// + /// Operation Id. + /// ChatModelDeployments_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_chatModelDeploymentsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ChatModelDeploymentData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ChatModelDeploymentData patch = new ChatModelDeploymentData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ChatModelDeploymentData current = Get(cancellationToken: cancellationToken).Value.Data; + ChatModelDeploymentData patch = new ChatModelDeploymentData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ChatModelDeploymentData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ChatModelDeploymentData patch = new ChatModelDeploymentData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ChatModelDeploymentData current = Get(cancellationToken: cancellationToken).Value.Data; + ChatModelDeploymentData patch = new ChatModelDeploymentData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ChatModelDeploymentData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ChatModelDeploymentData patch = new ChatModelDeploymentData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _chatModelDeploymentsClientDiagnostics.CreateScope("ChatModelDeploymentResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _chatModelDeploymentsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ChatModelDeploymentData.FromResponse(result), result); + return Response.FromValue(new ChatModelDeploymentResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ChatModelDeploymentData current = Get(cancellationToken: cancellationToken).Value.Data; + ChatModelDeploymentData patch = new ChatModelDeploymentData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..711c34d4cecd --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT : AsyncPageable + { + private readonly BookshelfPrivateEndpointConnections _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _bookshelfName; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The BookshelfPrivateEndpointConnections client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Bookshelf. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT(BookshelfPrivateEndpointConnections client, Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _bookshelfName = bookshelfName; + _context = context; + } + + /// Gets the pages of BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelfPrivateEndpointConnectionsGetByBookshelfAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + BookshelfPrivateEndpointConnectionListResult result = BookshelfPrivateEndpointConnectionListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByBookshelfRequest(nextLink, _subscriptionId, _resourceGroupName, _bookshelfName, _context) : _client.CreateGetByBookshelfRequest(_subscriptionId, _resourceGroupName, _bookshelfName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT.cs new file mode 100644 index 000000000000..2d3ded73716b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT : Pageable + { + private readonly BookshelfPrivateEndpointConnections _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _bookshelfName; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The BookshelfPrivateEndpointConnections client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Bookshelf. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT(BookshelfPrivateEndpointConnections client, Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _bookshelfName = bookshelfName; + _context = context; + } + + /// Gets the pages of BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelfPrivateEndpointConnectionsGetByBookshelfCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + BookshelfPrivateEndpointConnectionListResult result = BookshelfPrivateEndpointConnectionListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByBookshelfRequest(nextLink, _subscriptionId, _resourceGroupName, _bookshelfName, _context) : _client.CreateGetByBookshelfRequest(_subscriptionId, _resourceGroupName, _bookshelfName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("BookshelfPrivateEndpointConnectionCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..292164f44278 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT : AsyncPageable + { + private readonly BookshelfPrivateLinkResources _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _bookshelfName; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The BookshelfPrivateLinkResources client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Bookshelf. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT(BookshelfPrivateLinkResources client, Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _bookshelfName = bookshelfName; + _context = context; + } + + /// Gets the pages of BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelfPrivateLinkResourcesGetByBookshelfAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + BookshelfPrivateLinkResourceListResult result = BookshelfPrivateLinkResourceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByBookshelfRequest(nextLink, _subscriptionId, _resourceGroupName, _bookshelfName, _context) : _client.CreateGetByBookshelfRequest(_subscriptionId, _resourceGroupName, _bookshelfName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT.cs new file mode 100644 index 000000000000..05e09dadfa2e --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT : Pageable + { + private readonly BookshelfPrivateLinkResources _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _bookshelfName; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The BookshelfPrivateLinkResources client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Bookshelf. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT(BookshelfPrivateLinkResources client, Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _bookshelfName = bookshelfName; + _context = context; + } + + /// Gets the pages of BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelfPrivateLinkResourcesGetByBookshelfCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + BookshelfPrivateLinkResourceListResult result = BookshelfPrivateLinkResourceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByBookshelfRequest(nextLink, _subscriptionId, _resourceGroupName, _bookshelfName, _context) : _client.CreateGetByBookshelfRequest(_subscriptionId, _resourceGroupName, _bookshelfName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("BookshelfPrivateLinkResourceCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetByResourceGroupAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetByResourceGroupAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..bb93778356e5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetByResourceGroupAsyncCollectionResultOfT.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelvesGetByResourceGroupAsyncCollectionResultOfT : AsyncPageable + { + private readonly Bookshelves _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelvesGetByResourceGroupAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Bookshelves client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelvesGetByResourceGroupAsyncCollectionResultOfT(Bookshelves client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of BookshelvesGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelvesGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + BookshelfListResult result = BookshelfListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("BookshelfCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetByResourceGroupCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetByResourceGroupCollectionResultOfT.cs new file mode 100644 index 000000000000..6e6d24938adb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetByResourceGroupCollectionResultOfT.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelvesGetByResourceGroupCollectionResultOfT : Pageable + { + private readonly Bookshelves _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelvesGetByResourceGroupCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Bookshelves client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelvesGetByResourceGroupCollectionResultOfT(Bookshelves client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of BookshelvesGetByResourceGroupCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelvesGetByResourceGroupCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + BookshelfListResult result = BookshelfListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("BookshelfCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetBySubscriptionAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetBySubscriptionAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..e8ac21999af0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetBySubscriptionAsyncCollectionResultOfT.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelvesGetBySubscriptionAsyncCollectionResultOfT : AsyncPageable + { + private readonly Bookshelves _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelvesGetBySubscriptionAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Bookshelves client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelvesGetBySubscriptionAsyncCollectionResultOfT(Bookshelves client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of BookshelvesGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelvesGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + BookshelfListResult result = BookshelfListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetBookshelves"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetBySubscriptionCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetBySubscriptionCollectionResultOfT.cs new file mode 100644 index 000000000000..3e5d5519a7b3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/BookshelvesGetBySubscriptionCollectionResultOfT.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelvesGetBySubscriptionCollectionResultOfT : Pageable + { + private readonly Bookshelves _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of BookshelvesGetBySubscriptionCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Bookshelves client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public BookshelvesGetBySubscriptionCollectionResultOfT(Bookshelves client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of BookshelvesGetBySubscriptionCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of BookshelvesGetBySubscriptionCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + BookshelfListResult result = BookshelfListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetBookshelves"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..b56a89178bb6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT : AsyncPageable + { + private readonly ChatModelDeployments _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The ChatModelDeployments client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT(ChatModelDeployments client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ChatModelDeploymentsGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + ChatModelDeploymentListResult result = ChatModelDeploymentListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("ChatModelDeploymentCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ChatModelDeploymentsGetByWorkspaceCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ChatModelDeploymentsGetByWorkspaceCollectionResultOfT.cs new file mode 100644 index 000000000000..cbc703e557a4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ChatModelDeploymentsGetByWorkspaceCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ChatModelDeploymentsGetByWorkspaceCollectionResultOfT : Pageable + { + private readonly ChatModelDeployments _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of ChatModelDeploymentsGetByWorkspaceCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The ChatModelDeployments client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ChatModelDeploymentsGetByWorkspaceCollectionResultOfT(ChatModelDeployments client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of ChatModelDeploymentsGetByWorkspaceCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ChatModelDeploymentsGetByWorkspaceCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + ChatModelDeploymentListResult result = ChatModelDeploymentListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("ChatModelDeploymentCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/NodePoolsGetBySupercomputerAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/NodePoolsGetBySupercomputerAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..a084d3054be6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/NodePoolsGetBySupercomputerAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class NodePoolsGetBySupercomputerAsyncCollectionResultOfT : AsyncPageable + { + private readonly NodePools _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _supercomputerName; + private readonly RequestContext _context; + + /// Initializes a new instance of NodePoolsGetBySupercomputerAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The NodePools client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Supercomputer. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public NodePoolsGetBySupercomputerAsyncCollectionResultOfT(NodePools client, Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _supercomputerName = supercomputerName; + _context = context; + } + + /// Gets the pages of NodePoolsGetBySupercomputerAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of NodePoolsGetBySupercomputerAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + NodePoolListResult result = NodePoolListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySupercomputerRequest(nextLink, _subscriptionId, _resourceGroupName, _supercomputerName, _context) : _client.CreateGetBySupercomputerRequest(_subscriptionId, _resourceGroupName, _supercomputerName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("NodePoolCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/NodePoolsGetBySupercomputerCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/NodePoolsGetBySupercomputerCollectionResultOfT.cs new file mode 100644 index 000000000000..13509a0fb746 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/NodePoolsGetBySupercomputerCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class NodePoolsGetBySupercomputerCollectionResultOfT : Pageable + { + private readonly NodePools _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _supercomputerName; + private readonly RequestContext _context; + + /// Initializes a new instance of NodePoolsGetBySupercomputerCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The NodePools client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Supercomputer. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public NodePoolsGetBySupercomputerCollectionResultOfT(NodePools client, Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _supercomputerName = supercomputerName; + _context = context; + } + + /// Gets the pages of NodePoolsGetBySupercomputerCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of NodePoolsGetBySupercomputerCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + NodePoolListResult result = NodePoolListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySupercomputerRequest(nextLink, _subscriptionId, _resourceGroupName, _supercomputerName, _context) : _client.CreateGetBySupercomputerRequest(_subscriptionId, _resourceGroupName, _supercomputerName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("NodePoolCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ProjectsGetByWorkspaceAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ProjectsGetByWorkspaceAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..dd9c8c5684c7 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ProjectsGetByWorkspaceAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ProjectsGetByWorkspaceAsyncCollectionResultOfT : AsyncPageable + { + private readonly Projects _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of ProjectsGetByWorkspaceAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Projects client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ProjectsGetByWorkspaceAsyncCollectionResultOfT(Projects client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of ProjectsGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ProjectsGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + ProjectListResult result = ProjectListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("ProjectCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ProjectsGetByWorkspaceCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ProjectsGetByWorkspaceCollectionResultOfT.cs new file mode 100644 index 000000000000..f983cbecbbdf --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ProjectsGetByWorkspaceCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ProjectsGetByWorkspaceCollectionResultOfT : Pageable + { + private readonly Projects _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of ProjectsGetByWorkspaceCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Projects client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ProjectsGetByWorkspaceCollectionResultOfT(Projects client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of ProjectsGetByWorkspaceCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ProjectsGetByWorkspaceCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + ProjectListResult result = ProjectListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("ProjectCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageAssetsGetByStorageContainerAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageAssetsGetByStorageContainerAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..c567cbb4835a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageAssetsGetByStorageContainerAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageAssetsGetByStorageContainerAsyncCollectionResultOfT : AsyncPageable + { + private readonly StorageAssets _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _storageContainerName; + private readonly RequestContext _context; + + /// Initializes a new instance of StorageAssetsGetByStorageContainerAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The StorageAssets client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the StorageContainer. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public StorageAssetsGetByStorageContainerAsyncCollectionResultOfT(StorageAssets client, Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _storageContainerName = storageContainerName; + _context = context; + } + + /// Gets the pages of StorageAssetsGetByStorageContainerAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of StorageAssetsGetByStorageContainerAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + StorageAssetListResult result = StorageAssetListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByStorageContainerRequest(nextLink, _subscriptionId, _resourceGroupName, _storageContainerName, _context) : _client.CreateGetByStorageContainerRequest(_subscriptionId, _resourceGroupName, _storageContainerName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("StorageAssetCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageAssetsGetByStorageContainerCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageAssetsGetByStorageContainerCollectionResultOfT.cs new file mode 100644 index 000000000000..38021c5bee0f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageAssetsGetByStorageContainerCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageAssetsGetByStorageContainerCollectionResultOfT : Pageable + { + private readonly StorageAssets _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _storageContainerName; + private readonly RequestContext _context; + + /// Initializes a new instance of StorageAssetsGetByStorageContainerCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The StorageAssets client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the StorageContainer. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public StorageAssetsGetByStorageContainerCollectionResultOfT(StorageAssets client, Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _storageContainerName = storageContainerName; + _context = context; + } + + /// Gets the pages of StorageAssetsGetByStorageContainerCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of StorageAssetsGetByStorageContainerCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + StorageAssetListResult result = StorageAssetListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByStorageContainerRequest(nextLink, _subscriptionId, _resourceGroupName, _storageContainerName, _context) : _client.CreateGetByStorageContainerRequest(_subscriptionId, _resourceGroupName, _storageContainerName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("StorageAssetCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetByResourceGroupAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetByResourceGroupAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..0bab2d956a88 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetByResourceGroupAsyncCollectionResultOfT.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageContainersGetByResourceGroupAsyncCollectionResultOfT : AsyncPageable + { + private readonly StorageContainers _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of StorageContainersGetByResourceGroupAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The StorageContainers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public StorageContainersGetByResourceGroupAsyncCollectionResultOfT(StorageContainers client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of StorageContainersGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of StorageContainersGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + StorageContainerListResult result = StorageContainerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("StorageContainerCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetByResourceGroupCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetByResourceGroupCollectionResultOfT.cs new file mode 100644 index 000000000000..53e4b2a8454b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetByResourceGroupCollectionResultOfT.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageContainersGetByResourceGroupCollectionResultOfT : Pageable + { + private readonly StorageContainers _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of StorageContainersGetByResourceGroupCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The StorageContainers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public StorageContainersGetByResourceGroupCollectionResultOfT(StorageContainers client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of StorageContainersGetByResourceGroupCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of StorageContainersGetByResourceGroupCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + StorageContainerListResult result = StorageContainerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("StorageContainerCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetBySubscriptionAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetBySubscriptionAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..0bc8944314ee --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetBySubscriptionAsyncCollectionResultOfT.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageContainersGetBySubscriptionAsyncCollectionResultOfT : AsyncPageable + { + private readonly StorageContainers _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of StorageContainersGetBySubscriptionAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The StorageContainers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public StorageContainersGetBySubscriptionAsyncCollectionResultOfT(StorageContainers client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of StorageContainersGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of StorageContainersGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + StorageContainerListResult result = StorageContainerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetStorageContainers"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetBySubscriptionCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetBySubscriptionCollectionResultOfT.cs new file mode 100644 index 000000000000..91ece1ca1ba2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/StorageContainersGetBySubscriptionCollectionResultOfT.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageContainersGetBySubscriptionCollectionResultOfT : Pageable + { + private readonly StorageContainers _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of StorageContainersGetBySubscriptionCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The StorageContainers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public StorageContainersGetBySubscriptionCollectionResultOfT(StorageContainers client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of StorageContainersGetBySubscriptionCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of StorageContainersGetBySubscriptionCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + StorageContainerListResult result = StorageContainerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetStorageContainers"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetByResourceGroupAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetByResourceGroupAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..ba5d80aa56c9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetByResourceGroupAsyncCollectionResultOfT.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class SupercomputersGetByResourceGroupAsyncCollectionResultOfT : AsyncPageable + { + private readonly Supercomputers _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of SupercomputersGetByResourceGroupAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Supercomputers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public SupercomputersGetByResourceGroupAsyncCollectionResultOfT(Supercomputers client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of SupercomputersGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of SupercomputersGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + SupercomputerListResult result = SupercomputerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("SupercomputerCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetByResourceGroupCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetByResourceGroupCollectionResultOfT.cs new file mode 100644 index 000000000000..8295ecfd94a2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetByResourceGroupCollectionResultOfT.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class SupercomputersGetByResourceGroupCollectionResultOfT : Pageable + { + private readonly Supercomputers _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of SupercomputersGetByResourceGroupCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Supercomputers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public SupercomputersGetByResourceGroupCollectionResultOfT(Supercomputers client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of SupercomputersGetByResourceGroupCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of SupercomputersGetByResourceGroupCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + SupercomputerListResult result = SupercomputerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("SupercomputerCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetBySubscriptionAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetBySubscriptionAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..4a02face1efd --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetBySubscriptionAsyncCollectionResultOfT.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class SupercomputersGetBySubscriptionAsyncCollectionResultOfT : AsyncPageable + { + private readonly Supercomputers _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of SupercomputersGetBySubscriptionAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Supercomputers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public SupercomputersGetBySubscriptionAsyncCollectionResultOfT(Supercomputers client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of SupercomputersGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of SupercomputersGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + SupercomputerListResult result = SupercomputerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetSupercomputers"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetBySubscriptionCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetBySubscriptionCollectionResultOfT.cs new file mode 100644 index 000000000000..a971f5b3771c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/SupercomputersGetBySubscriptionCollectionResultOfT.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class SupercomputersGetBySubscriptionCollectionResultOfT : Pageable + { + private readonly Supercomputers _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of SupercomputersGetBySubscriptionCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Supercomputers client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public SupercomputersGetBySubscriptionCollectionResultOfT(Supercomputers client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of SupercomputersGetBySubscriptionCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of SupercomputersGetBySubscriptionCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + SupercomputerListResult result = SupercomputerListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetSupercomputers"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetByResourceGroupAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetByResourceGroupAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..07342398dec5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetByResourceGroupAsyncCollectionResultOfT.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ToolsGetByResourceGroupAsyncCollectionResultOfT : AsyncPageable + { + private readonly Tools _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of ToolsGetByResourceGroupAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Tools client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ToolsGetByResourceGroupAsyncCollectionResultOfT(Tools client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of ToolsGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ToolsGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + ToolListResult result = ToolListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("ToolCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetByResourceGroupCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetByResourceGroupCollectionResultOfT.cs new file mode 100644 index 000000000000..f1e4aafc5717 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetByResourceGroupCollectionResultOfT.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ToolsGetByResourceGroupCollectionResultOfT : Pageable + { + private readonly Tools _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of ToolsGetByResourceGroupCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Tools client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ToolsGetByResourceGroupCollectionResultOfT(Tools client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of ToolsGetByResourceGroupCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ToolsGetByResourceGroupCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + ToolListResult result = ToolListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("ToolCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetBySubscriptionAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetBySubscriptionAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..8d2ae4582cb5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetBySubscriptionAsyncCollectionResultOfT.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ToolsGetBySubscriptionAsyncCollectionResultOfT : AsyncPageable + { + private readonly Tools _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of ToolsGetBySubscriptionAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Tools client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ToolsGetBySubscriptionAsyncCollectionResultOfT(Tools client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of ToolsGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ToolsGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + ToolListResult result = ToolListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetTools"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetBySubscriptionCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetBySubscriptionCollectionResultOfT.cs new file mode 100644 index 000000000000..44ecaa1933eb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/ToolsGetBySubscriptionCollectionResultOfT.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ToolsGetBySubscriptionCollectionResultOfT : Pageable + { + private readonly Tools _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of ToolsGetBySubscriptionCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Tools client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public ToolsGetBySubscriptionCollectionResultOfT(Tools client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of ToolsGetBySubscriptionCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of ToolsGetBySubscriptionCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + ToolListResult result = ToolListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetTools"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..49a73721a3c3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT : AsyncPageable + { + private readonly WorkspacePrivateEndpointConnections _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The WorkspacePrivateEndpointConnections client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT(WorkspacePrivateEndpointConnections client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + WorkspacePrivateEndpointConnectionListResult result = WorkspacePrivateEndpointConnectionListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT.cs new file mode 100644 index 000000000000..1c2b88a70379 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT : Pageable + { + private readonly WorkspacePrivateEndpointConnections _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The WorkspacePrivateEndpointConnections client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT(WorkspacePrivateEndpointConnections client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + WorkspacePrivateEndpointConnectionListResult result = WorkspacePrivateEndpointConnectionListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..12555888387d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT : AsyncPageable + { + private readonly WorkspacePrivateLinkResources _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The WorkspacePrivateLinkResources client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT(WorkspacePrivateLinkResources client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + WorkspacePrivateLinkResourceListResult result = WorkspacePrivateLinkResourceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT.cs new file mode 100644 index 000000000000..a2a8d9b3e728 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT.cs @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT : Pageable + { + private readonly WorkspacePrivateLinkResources _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly string _workspaceName; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The WorkspacePrivateLinkResources client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The name of the Workspace. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT(WorkspacePrivateLinkResources client, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _workspaceName = workspaceName; + _context = context; + } + + /// Gets the pages of WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + WorkspacePrivateLinkResourceListResult result = WorkspacePrivateLinkResourceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByWorkspaceRequest(nextLink, _subscriptionId, _resourceGroupName, _workspaceName, _context) : _client.CreateGetByWorkspaceRequest(_subscriptionId, _resourceGroupName, _workspaceName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetByResourceGroupAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetByResourceGroupAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..86c854058dd5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetByResourceGroupAsyncCollectionResultOfT.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacesGetByResourceGroupAsyncCollectionResultOfT : AsyncPageable + { + private readonly Workspaces _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacesGetByResourceGroupAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Workspaces client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacesGetByResourceGroupAsyncCollectionResultOfT(Workspaces client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of WorkspacesGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacesGetByResourceGroupAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + WorkspaceListResult result = WorkspaceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("WorkspaceCollection.GetAll"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetByResourceGroupCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetByResourceGroupCollectionResultOfT.cs new file mode 100644 index 000000000000..60e8df8b334c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetByResourceGroupCollectionResultOfT.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacesGetByResourceGroupCollectionResultOfT : Pageable + { + private readonly Workspaces _client; + private readonly Guid _subscriptionId; + private readonly string _resourceGroupName; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacesGetByResourceGroupCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Workspaces client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The name of the resource group. The name is case insensitive. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacesGetByResourceGroupCollectionResultOfT(Workspaces client, Guid subscriptionId, string resourceGroupName, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _resourceGroupName = resourceGroupName; + _context = context; + } + + /// Gets the pages of WorkspacesGetByResourceGroupCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacesGetByResourceGroupCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + WorkspaceListResult result = WorkspaceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetByResourceGroupRequest(nextLink, _subscriptionId, _resourceGroupName, _context) : _client.CreateGetByResourceGroupRequest(_subscriptionId, _resourceGroupName, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("WorkspaceCollection.GetAll"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetBySubscriptionAsyncCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetBySubscriptionAsyncCollectionResultOfT.cs new file mode 100644 index 000000000000..46162519ab6b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetBySubscriptionAsyncCollectionResultOfT.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacesGetBySubscriptionAsyncCollectionResultOfT : AsyncPageable + { + private readonly Workspaces _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacesGetBySubscriptionAsyncCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Workspaces client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacesGetBySubscriptionAsyncCollectionResultOfT(Workspaces client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of WorkspacesGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacesGetBySubscriptionAsyncCollectionResultOfT as an enumerable collection. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = await GetNextResponseAsync(pageSizeHint, nextPage).ConfigureAwait(false); + if (response is null) + { + yield break; + } + WorkspaceListResult result = WorkspaceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private async ValueTask GetNextResponseAsync(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetWorkspaces"); + scope.Start(); + try + { + return await _client.Pipeline.ProcessMessageAsync(message, _context).ConfigureAwait(false); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetBySubscriptionCollectionResultOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetBySubscriptionCollectionResultOfT.cs new file mode 100644 index 000000000000..3bd192da5f0c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/CollectionResults/WorkspacesGetBySubscriptionCollectionResultOfT.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager.Discovery.Models; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacesGetBySubscriptionCollectionResultOfT : Pageable + { + private readonly Workspaces _client; + private readonly Guid _subscriptionId; + private readonly RequestContext _context; + + /// Initializes a new instance of WorkspacesGetBySubscriptionCollectionResultOfT, which is used to iterate over the pages of a collection. + /// The Workspaces client used to send requests. + /// The ID of the target subscription. The value must be an UUID. + /// The request options, which can override default behaviors of the client pipeline on a per-call basis. + public WorkspacesGetBySubscriptionCollectionResultOfT(Workspaces client, Guid subscriptionId, RequestContext context) : base(context?.CancellationToken ?? default) + { + _client = client; + _subscriptionId = subscriptionId; + _context = context; + } + + /// Gets the pages of WorkspacesGetBySubscriptionCollectionResultOfT as an enumerable collection. + /// A continuation token indicating where to resume paging. + /// The number of items per page. + /// The pages of WorkspacesGetBySubscriptionCollectionResultOfT as an enumerable collection. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + Uri nextPage = continuationToken != null ? new Uri(continuationToken) : null; + while (true) + { + Response response = GetNextResponse(pageSizeHint, nextPage); + if (response is null) + { + yield break; + } + WorkspaceListResult result = WorkspaceListResult.FromResponse(response); + yield return Page.FromValues((IReadOnlyList)result.Value, nextPage?.IsAbsoluteUri == true ? nextPage.AbsoluteUri : nextPage?.OriginalString, response); + nextPage = result.NextLink; + if (nextPage == null) + { + yield break; + } + } + } + + /// Get next page. + /// The number of items per page. + /// The next link to use for the next page of results. + private Response GetNextResponse(int? pageSizeHint, Uri nextLink) + { + HttpMessage message = nextLink != null ? _client.CreateNextGetBySubscriptionRequest(nextLink, _subscriptionId, _context) : _client.CreateGetBySubscriptionRequest(_subscriptionId, _context); + using DiagnosticScope scope = _client.ClientDiagnostics.CreateScope("MockableDiscoverySubscriptionResource.GetWorkspaces"); + scope.Start(); + try + { + return _client.Pipeline.ProcessMessage(message, _context); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/DiscoveryExtensions.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/DiscoveryExtensions.cs new file mode 100644 index 000000000000..09d93bf7bf0b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/DiscoveryExtensions.cs @@ -0,0 +1,729 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; +using Azure.ResourceManager.Discovery.Mocking; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// A class to add extension methods to Azure.ResourceManager.Discovery. + public static partial class DiscoveryExtensions + { + /// + private static MockableDiscoveryArmClient GetMockableDiscoveryArmClient(ArmClient client) + { + return client.GetCachedClient(client0 => new MockableDiscoveryArmClient(client0, ResourceIdentifier.Root)); + } + + /// + private static MockableDiscoveryResourceGroupResource GetMockableDiscoveryResourceGroupResource(ResourceGroupResource resourceGroupResource) + { + return resourceGroupResource.GetCachedClient(client => new MockableDiscoveryResourceGroupResource(client, resourceGroupResource.Id)); + } + + /// + private static MockableDiscoverySubscriptionResource GetMockableDiscoverySubscriptionResource(SubscriptionResource subscriptionResource) + { + return subscriptionResource.GetCachedClient(client => new MockableDiscoverySubscriptionResource(client, subscriptionResource.Id)); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static BookshelfResource GetBookshelfResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetBookshelfResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static BookshelfPrivateEndpointConnectionResource GetBookshelfPrivateEndpointConnectionResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetBookshelfPrivateEndpointConnectionResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static BookshelfPrivateLinkResource GetBookshelfPrivateLinkResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetBookshelfPrivateLinkResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static ToolResource GetToolResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetToolResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static ProjectResource GetProjectResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetProjectResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static WorkspaceResource GetWorkspaceResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetWorkspaceResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static WorkspacePrivateEndpointConnectionResource GetWorkspacePrivateEndpointConnectionResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetWorkspacePrivateEndpointConnectionResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static ChatModelDeploymentResource GetChatModelDeploymentResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetChatModelDeploymentResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static WorkspacePrivateLinkResource GetWorkspacePrivateLinkResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetWorkspacePrivateLinkResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static NodePoolResource GetNodePoolResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetNodePoolResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static SupercomputerResource GetSupercomputerResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetSupercomputerResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static StorageAssetResource GetStorageAssetResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetStorageAssetResource(id); + } + + /// + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The resource ID of the resource to get. + /// is null. + /// Returns a object. + public static StorageContainerResource GetStorageContainerResource(this ArmClient client, ResourceIdentifier id) + { + Argument.AssertNotNull(client, nameof(client)); + + return GetMockableDiscoveryArmClient(client).GetStorageContainerResource(id); + } + + /// + /// Gets a collection of Bookshelves in the + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// is null. + /// An object representing collection of Bookshelves and their operations over a BookshelfResource. + public static BookshelfCollection GetBookshelves(this ResourceGroupResource resourceGroupResource) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetBookshelves(); + } + + /// + /// Get a Bookshelf + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static async Task> GetBookshelfAsync(this ResourceGroupResource resourceGroupResource, string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return await GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetBookshelfAsync(bookshelfName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Bookshelf + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static Response GetBookshelf(this ResourceGroupResource resourceGroupResource, string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetBookshelf(bookshelfName, cancellationToken); + } + + /// + /// Gets a collection of Tools in the + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// is null. + /// An object representing collection of Tools and their operations over a ToolResource. + public static ToolCollection GetTools(this ResourceGroupResource resourceGroupResource) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetTools(); + } + + /// + /// Get a Tool + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static async Task> GetToolAsync(this ResourceGroupResource resourceGroupResource, string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return await GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetToolAsync(toolName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Tool + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static Response GetTool(this ResourceGroupResource resourceGroupResource, string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetTool(toolName, cancellationToken); + } + + /// + /// Gets a collection of Workspaces in the + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// is null. + /// An object representing collection of Workspaces and their operations over a WorkspaceResource. + public static WorkspaceCollection GetWorkspaces(this ResourceGroupResource resourceGroupResource) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetWorkspaces(); + } + + /// + /// Get a Workspace + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static async Task> GetWorkspaceAsync(this ResourceGroupResource resourceGroupResource, string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return await GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetWorkspaceAsync(workspaceName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Workspace + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static Response GetWorkspace(this ResourceGroupResource resourceGroupResource, string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetWorkspace(workspaceName, cancellationToken); + } + + /// + /// Gets a collection of Supercomputers in the + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// is null. + /// An object representing collection of Supercomputers and their operations over a SupercomputerResource. + public static SupercomputerCollection GetSupercomputers(this ResourceGroupResource resourceGroupResource) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetSupercomputers(); + } + + /// + /// Get a Supercomputer + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static async Task> GetSupercomputerAsync(this ResourceGroupResource resourceGroupResource, string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return await GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetSupercomputerAsync(supercomputerName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Supercomputer + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static Response GetSupercomputer(this ResourceGroupResource resourceGroupResource, string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetSupercomputer(supercomputerName, cancellationToken); + } + + /// + /// Gets a collection of StorageContainers in the + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// is null. + /// An object representing collection of StorageContainers and their operations over a StorageContainerResource. + public static StorageContainerCollection GetStorageContainers(this ResourceGroupResource resourceGroupResource) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetStorageContainers(); + } + + /// + /// Get a StorageContainer + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static async Task> GetStorageContainerAsync(this ResourceGroupResource resourceGroupResource, string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return await GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetStorageContainerAsync(storageContainerName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a StorageContainer + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + [ForwardsClientCalls] + public static Response GetStorageContainer(this ResourceGroupResource resourceGroupResource, string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(resourceGroupResource, nameof(resourceGroupResource)); + + return GetMockableDiscoveryResourceGroupResource(resourceGroupResource).GetStorageContainer(storageContainerName, cancellationToken); + } + + /// + /// List Bookshelf resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static AsyncPageable GetBookshelvesAsync(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetBookshelvesAsync(cancellationToken); + } + + /// + /// List Bookshelf resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static Pageable GetBookshelves(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetBookshelves(cancellationToken); + } + + /// + /// List Tool resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static AsyncPageable GetToolsAsync(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetToolsAsync(cancellationToken); + } + + /// + /// List Tool resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static Pageable GetTools(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetTools(cancellationToken); + } + + /// + /// List Workspace resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static AsyncPageable GetWorkspacesAsync(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetWorkspacesAsync(cancellationToken); + } + + /// + /// List Workspace resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static Pageable GetWorkspaces(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetWorkspaces(cancellationToken); + } + + /// + /// List Supercomputer resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static AsyncPageable GetSupercomputersAsync(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetSupercomputersAsync(cancellationToken); + } + + /// + /// List Supercomputer resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static Pageable GetSupercomputers(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetSupercomputers(cancellationToken); + } + + /// + /// List StorageContainer resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static AsyncPageable GetStorageContainersAsync(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetStorageContainersAsync(cancellationToken); + } + + /// + /// List StorageContainer resources by subscription ID + /// + /// Mocking. + /// To mock this method, please mock instead. + /// + /// + /// The the method will execute against. + /// The cancellation token to use. + /// is null. + /// A collection of that may take multiple service requests to iterate over. + public static Pageable GetStorageContainers(this SubscriptionResource subscriptionResource, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(subscriptionResource, nameof(subscriptionResource)); + + return GetMockableDiscoverySubscriptionResource(subscriptionResource).GetStorageContainers(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoveryArmClient.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoveryArmClient.cs new file mode 100644 index 000000000000..16693405c736 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoveryArmClient.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using Azure.Core; +using Azure.ResourceManager; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Mocking +{ + /// A class to add extension methods to . + public partial class MockableDiscoveryArmClient : ArmResource + { + /// Initializes a new instance of MockableDiscoveryArmClient for mocking. + protected MockableDiscoveryArmClient() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal MockableDiscoveryArmClient(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual BookshelfResource GetBookshelfResource(ResourceIdentifier id) + { + BookshelfResource.ValidateResourceId(id); + return new BookshelfResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual BookshelfPrivateEndpointConnectionResource GetBookshelfPrivateEndpointConnectionResource(ResourceIdentifier id) + { + BookshelfPrivateEndpointConnectionResource.ValidateResourceId(id); + return new BookshelfPrivateEndpointConnectionResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual BookshelfPrivateLinkResource GetBookshelfPrivateLinkResource(ResourceIdentifier id) + { + BookshelfPrivateLinkResource.ValidateResourceId(id); + return new BookshelfPrivateLinkResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual ToolResource GetToolResource(ResourceIdentifier id) + { + ToolResource.ValidateResourceId(id); + return new ToolResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual ProjectResource GetProjectResource(ResourceIdentifier id) + { + ProjectResource.ValidateResourceId(id); + return new ProjectResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual WorkspaceResource GetWorkspaceResource(ResourceIdentifier id) + { + WorkspaceResource.ValidateResourceId(id); + return new WorkspaceResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual WorkspacePrivateEndpointConnectionResource GetWorkspacePrivateEndpointConnectionResource(ResourceIdentifier id) + { + WorkspacePrivateEndpointConnectionResource.ValidateResourceId(id); + return new WorkspacePrivateEndpointConnectionResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual ChatModelDeploymentResource GetChatModelDeploymentResource(ResourceIdentifier id) + { + ChatModelDeploymentResource.ValidateResourceId(id); + return new ChatModelDeploymentResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual WorkspacePrivateLinkResource GetWorkspacePrivateLinkResource(ResourceIdentifier id) + { + WorkspacePrivateLinkResource.ValidateResourceId(id); + return new WorkspacePrivateLinkResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual NodePoolResource GetNodePoolResource(ResourceIdentifier id) + { + NodePoolResource.ValidateResourceId(id); + return new NodePoolResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual SupercomputerResource GetSupercomputerResource(ResourceIdentifier id) + { + SupercomputerResource.ValidateResourceId(id); + return new SupercomputerResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual StorageAssetResource GetStorageAssetResource(ResourceIdentifier id) + { + StorageAssetResource.ValidateResourceId(id); + return new StorageAssetResource(Client, id); + } + + /// Gets an object representing a along with the instance operations that can be performed on it but with no data. + /// The resource ID of the resource to get. + /// Returns a object. + public virtual StorageContainerResource GetStorageContainerResource(ResourceIdentifier id) + { + StorageContainerResource.ValidateResourceId(id); + return new StorageContainerResource(Client, id); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoveryResourceGroupResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoveryResourceGroupResource.cs new file mode 100644 index 000000000000..c606900fff06 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoveryResourceGroupResource.cs @@ -0,0 +1,359 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery.Mocking +{ + /// A class to add extension methods to . + public partial class MockableDiscoveryResourceGroupResource : ArmResource + { + /// Initializes a new instance of MockableDiscoveryResourceGroupResource for mocking. + protected MockableDiscoveryResourceGroupResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal MockableDiscoveryResourceGroupResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + /// Gets a collection of Bookshelves in the . + /// An object representing collection of Bookshelves and their operations over a BookshelfResource. + public virtual BookshelfCollection GetBookshelves() + { + return GetCachedClient(client => new BookshelfCollection(client, Id)); + } + + /// + /// Get a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetBookshelfAsync(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + return await GetBookshelves().GetAsync(bookshelfName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Bookshelf + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/bookshelves/{bookshelfName}. + /// + /// + /// Operation Id. + /// Bookshelves_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Bookshelf. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetBookshelf(string bookshelfName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(bookshelfName, nameof(bookshelfName)); + + return GetBookshelves().Get(bookshelfName, cancellationToken); + } + + /// Gets a collection of Tools in the . + /// An object representing collection of Tools and their operations over a ToolResource. + public virtual ToolCollection GetTools() + { + return GetCachedClient(client => new ToolCollection(client, Id)); + } + + /// + /// Get a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetToolAsync(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + return await GetTools().GetAsync(toolName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetTool(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + return GetTools().Get(toolName, cancellationToken); + } + + /// Gets a collection of Workspaces in the . + /// An object representing collection of Workspaces and their operations over a WorkspaceResource. + public virtual WorkspaceCollection GetWorkspaces() + { + return GetCachedClient(client => new WorkspaceCollection(client, Id)); + } + + /// + /// Get a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetWorkspaceAsync(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + return await GetWorkspaces().GetAsync(workspaceName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetWorkspace(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + return GetWorkspaces().Get(workspaceName, cancellationToken); + } + + /// Gets a collection of Supercomputers in the . + /// An object representing collection of Supercomputers and their operations over a SupercomputerResource. + public virtual SupercomputerCollection GetSupercomputers() + { + return GetCachedClient(client => new SupercomputerCollection(client, Id)); + } + + /// + /// Get a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetSupercomputerAsync(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + return await GetSupercomputers().GetAsync(supercomputerName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetSupercomputer(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + return GetSupercomputers().Get(supercomputerName, cancellationToken); + } + + /// Gets a collection of StorageContainers in the . + /// An object representing collection of StorageContainers and their operations over a StorageContainerResource. + public virtual StorageContainerCollection GetStorageContainers() + { + return GetCachedClient(client => new StorageContainerCollection(client, Id)); + } + + /// + /// Get a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetStorageContainerAsync(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + return await GetStorageContainers().GetAsync(storageContainerName, cancellationToken).ConfigureAwait(false); + } + + /// + /// Get a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetStorageContainer(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + return GetStorageContainers().Get(storageContainerName, cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoverySubscriptionResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoverySubscriptionResource.cs new file mode 100644 index 000000000000..c70df21ef553 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Extensions/MockableDiscoverySubscriptionResource.cs @@ -0,0 +1,345 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery.Mocking +{ + /// A class to add extension methods to . + public partial class MockableDiscoverySubscriptionResource : ArmResource + { + private ClientDiagnostics _bookshelvesClientDiagnostics; + private Bookshelves _bookshelvesRestClient; + private ClientDiagnostics _toolsClientDiagnostics; + private Tools _toolsRestClient; + private ClientDiagnostics _workspacesClientDiagnostics; + private Workspaces _workspacesRestClient; + private ClientDiagnostics _supercomputersClientDiagnostics; + private Supercomputers _supercomputersRestClient; + private ClientDiagnostics _storageContainersClientDiagnostics; + private StorageContainers _storageContainersRestClient; + + /// Initializes a new instance of MockableDiscoverySubscriptionResource for mocking. + protected MockableDiscoverySubscriptionResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal MockableDiscoverySubscriptionResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + } + + private ClientDiagnostics BookshelvesClientDiagnostics => _bookshelvesClientDiagnostics ??= new ClientDiagnostics("Azure.ResourceManager.Discovery.Mocking", ProviderConstants.DefaultProviderNamespace, Diagnostics); + + private Bookshelves BookshelvesRestClient => _bookshelvesRestClient ??= new Bookshelves(BookshelvesClientDiagnostics, Pipeline, Endpoint, "2026-02-01-preview"); + + private ClientDiagnostics ToolsClientDiagnostics => _toolsClientDiagnostics ??= new ClientDiagnostics("Azure.ResourceManager.Discovery.Mocking", ProviderConstants.DefaultProviderNamespace, Diagnostics); + + private Tools ToolsRestClient => _toolsRestClient ??= new Tools(ToolsClientDiagnostics, Pipeline, Endpoint, "2026-02-01-preview"); + + private ClientDiagnostics WorkspacesClientDiagnostics => _workspacesClientDiagnostics ??= new ClientDiagnostics("Azure.ResourceManager.Discovery.Mocking", ProviderConstants.DefaultProviderNamespace, Diagnostics); + + private Workspaces WorkspacesRestClient => _workspacesRestClient ??= new Workspaces(WorkspacesClientDiagnostics, Pipeline, Endpoint, "2026-02-01-preview"); + + private ClientDiagnostics SupercomputersClientDiagnostics => _supercomputersClientDiagnostics ??= new ClientDiagnostics("Azure.ResourceManager.Discovery.Mocking", ProviderConstants.DefaultProviderNamespace, Diagnostics); + + private Supercomputers SupercomputersRestClient => _supercomputersRestClient ??= new Supercomputers(SupercomputersClientDiagnostics, Pipeline, Endpoint, "2026-02-01-preview"); + + private ClientDiagnostics StorageContainersClientDiagnostics => _storageContainersClientDiagnostics ??= new ClientDiagnostics("Azure.ResourceManager.Discovery.Mocking", ProviderConstants.DefaultProviderNamespace, Diagnostics); + + private StorageContainers StorageContainersRestClient => _storageContainersRestClient ??= new StorageContainers(StorageContainersClientDiagnostics, Pipeline, Endpoint, "2026-02-01-preview"); + + /// + /// List Bookshelf resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/bookshelves. + /// + /// + /// Operation Id. + /// Bookshelves_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetBookshelvesAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new BookshelvesGetBySubscriptionAsyncCollectionResultOfT(BookshelvesRestClient, Guid.Parse(Id.SubscriptionId), context), data => new BookshelfResource(Client, data)); + } + + /// + /// List Bookshelf resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/bookshelves. + /// + /// + /// Operation Id. + /// Bookshelves_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetBookshelves(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new BookshelvesGetBySubscriptionCollectionResultOfT(BookshelvesRestClient, Guid.Parse(Id.SubscriptionId), context), data => new BookshelfResource(Client, data)); + } + + /// + /// List Tool resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/tools. + /// + /// + /// Operation Id. + /// Tools_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetToolsAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new ToolsGetBySubscriptionAsyncCollectionResultOfT(ToolsRestClient, Guid.Parse(Id.SubscriptionId), context), data => new ToolResource(Client, data)); + } + + /// + /// List Tool resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/tools. + /// + /// + /// Operation Id. + /// Tools_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetTools(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new ToolsGetBySubscriptionCollectionResultOfT(ToolsRestClient, Guid.Parse(Id.SubscriptionId), context), data => new ToolResource(Client, data)); + } + + /// + /// List Workspace resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/workspaces. + /// + /// + /// Operation Id. + /// Workspaces_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetWorkspacesAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new WorkspacesGetBySubscriptionAsyncCollectionResultOfT(WorkspacesRestClient, Guid.Parse(Id.SubscriptionId), context), data => new WorkspaceResource(Client, data)); + } + + /// + /// List Workspace resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/workspaces. + /// + /// + /// Operation Id. + /// Workspaces_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetWorkspaces(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new WorkspacesGetBySubscriptionCollectionResultOfT(WorkspacesRestClient, Guid.Parse(Id.SubscriptionId), context), data => new WorkspaceResource(Client, data)); + } + + /// + /// List Supercomputer resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/supercomputers. + /// + /// + /// Operation Id. + /// Supercomputers_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetSupercomputersAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new SupercomputersGetBySubscriptionAsyncCollectionResultOfT(SupercomputersRestClient, Guid.Parse(Id.SubscriptionId), context), data => new SupercomputerResource(Client, data)); + } + + /// + /// List Supercomputer resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/supercomputers. + /// + /// + /// Operation Id. + /// Supercomputers_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetSupercomputers(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new SupercomputersGetBySubscriptionCollectionResultOfT(SupercomputersRestClient, Guid.Parse(Id.SubscriptionId), context), data => new SupercomputerResource(Client, data)); + } + + /// + /// List StorageContainer resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/storageContainers. + /// + /// + /// Operation Id. + /// StorageContainers_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetStorageContainersAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new StorageContainersGetBySubscriptionAsyncCollectionResultOfT(StorageContainersRestClient, Guid.Parse(Id.SubscriptionId), context), data => new StorageContainerResource(Client, data)); + } + + /// + /// List StorageContainer resources by subscription ID + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/providers/Microsoft.Discovery/storageContainers. + /// + /// + /// Operation Id. + /// StorageContainers_ListBySubscription. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetStorageContainers(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new StorageContainersGetBySubscriptionCollectionResultOfT(StorageContainersRestClient, Guid.Parse(Id.SubscriptionId), context), data => new StorageContainerResource(Client, data)); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Argument.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Argument.cs new file mode 100644 index 000000000000..578fa48bd3c5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Argument.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class Argument + { + /// The value. + /// The name. + public static void AssertNotNull(T value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + } + + /// The value. + /// The name. + public static void AssertNotNull(T? value, string name) + where T : struct + { + if (!value.HasValue) + { + throw new ArgumentNullException(name); + } + } + + /// The value. + /// The name. + public static void AssertNotNullOrEmpty(IEnumerable value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value is ICollection collectionOfT && collectionOfT.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + if (value is ICollection collection && collection.Count == 0) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + using IEnumerator e = value.GetEnumerator(); + if (!e.MoveNext()) + { + throw new ArgumentException("Value cannot be an empty collection.", name); + } + } + + /// The value. + /// The name. + public static void AssertNotNullOrEmpty(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (value.Length == 0) + { + throw new ArgumentException("Value cannot be an empty string.", name); + } + } + + /// The value. + /// The name. + public static void AssertNotNullOrWhiteSpace(string value, string name) + { + if (value is null) + { + throw new ArgumentNullException(name); + } + if (string.IsNullOrWhiteSpace(value)) + { + throw new ArgumentException("Value cannot be empty or contain only white-space characters.", name); + } + } + + /// The value. + /// The minimum value. + /// The maximum value. + /// The name. + public static void AssertInRange(T value, T minimum, T maximum, string name) + where T : notnull, IComparable + { + if (minimum.CompareTo(value) > 0) + { + throw new ArgumentOutOfRangeException(name, "Value is less than the minimum allowed."); + } + if (maximum.CompareTo(value) < 0) + { + throw new ArgumentOutOfRangeException(name, "Value is greater than the maximum allowed."); + } + } + + /// The value. + /// The name. + public static string CheckNotNullOrEmpty(string value, string name) + { + AssertNotNullOrEmpty(value, name); + return value; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/AsyncPageableWrapper.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/AsyncPageableWrapper.cs new file mode 100644 index 000000000000..d9ca4f4287df --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/AsyncPageableWrapper.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class AsyncPageableWrapper : AsyncPageable + { + /// The source async pageable value of type AsyncPageable<T>. + private AsyncPageable _source; + /// The converter function from T to U. + private Func _converter; + + /// Initializes a new instance of the AsyncPageableWrapper class. + /// The source async pageable value of type AsyncPageable<T>. + /// The converter function from T to U. + public AsyncPageableWrapper(AsyncPageable source, Func converter) + { + _source = source; + _converter = converter; + } + + /// Converts the pages from AsyncPageable to Page. + /// A continuation token from a previous response. + /// An optional hint to specify the desired size of each page. + /// An enumerable of pages containing converted items of type U. + public override async IAsyncEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + await foreach (Page page in _source.AsPages(continuationToken, pageSizeHint).ConfigureAwait(false)) + { + List convertedItems = new List(); + foreach (T item in page.Values) + { + convertedItems.Add(_converter.Invoke(item)); + } + yield return Page.FromValues(convertedItems, page.ContinuationToken, page.GetRawResponse()); + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ChangeTrackingDictionary.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ChangeTrackingDictionary.cs new file mode 100644 index 000000000000..6438c72915f6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ChangeTrackingDictionary.cs @@ -0,0 +1,189 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ChangeTrackingDictionary : IDictionary, IReadOnlyDictionary + where TKey : notnull + { + private IDictionary _innerDictionary; + + public ChangeTrackingDictionary() + { + } + + /// The inner dictionary. + public ChangeTrackingDictionary(IDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(dictionary); + } + + /// The inner dictionary. + public ChangeTrackingDictionary(IReadOnlyDictionary dictionary) + { + if (dictionary == null) + { + return; + } + _innerDictionary = new Dictionary(); + foreach (var pair in dictionary) + { + _innerDictionary.Add(pair); + } + } + + /// Gets the IsUndefined. + public bool IsUndefined => _innerDictionary == null; + + /// Gets the Count. + public int Count => IsUndefined ? 0 : EnsureDictionary().Count; + + /// Gets the IsReadOnly. + public bool IsReadOnly => IsUndefined ? false : EnsureDictionary().IsReadOnly; + + /// Gets the Keys. + public ICollection Keys => IsUndefined ? Array.Empty() : EnsureDictionary().Keys; + + /// Gets the Values. + public ICollection Values => IsUndefined ? Array.Empty() : EnsureDictionary().Values; + + /// Gets or sets the value associated with the specified key. + public TValue this[TKey key] + { + get + { + if (IsUndefined) + { + throw new KeyNotFoundException(nameof(key)); + } + return EnsureDictionary()[key]; + } + set + { + EnsureDictionary()[key] = value; + } + } + + /// Gets the Keys. + IEnumerable IReadOnlyDictionary.Keys => Keys; + + /// Gets the Values. + IEnumerable IReadOnlyDictionary.Values => Values; + + public IEnumerator> GetEnumerator() + { + if (IsUndefined) + { + IEnumerator> enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureDictionary().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + /// The item to add. + public void Add(KeyValuePair item) + { + EnsureDictionary().Add(item); + } + + public void Clear() + { + EnsureDictionary().Clear(); + } + + /// The item to search for. + public bool Contains(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Contains(item); + } + + /// The array to copy. + /// The index. + public void CopyTo(KeyValuePair[] array, int index) + { + if (IsUndefined) + { + return; + } + EnsureDictionary().CopyTo(array, index); + } + + /// The item to remove. + public bool Remove(KeyValuePair item) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(item); + } + + /// The key. + /// The value to add. + public void Add(TKey key, TValue value) + { + EnsureDictionary().Add(key, value); + } + + /// The key to search for. + public bool ContainsKey(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().ContainsKey(key); + } + + /// The key. + public bool Remove(TKey key) + { + if (IsUndefined) + { + return false; + } + return EnsureDictionary().Remove(key); + } + + /// The key to search for. + /// The value. + public bool TryGetValue(TKey key, out TValue value) + { + if (IsUndefined) + { + value = default; + return false; + } + return EnsureDictionary().TryGetValue(key, out value); + } + + public IDictionary EnsureDictionary() + { + return _innerDictionary ??= new Dictionary(); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ChangeTrackingList.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ChangeTrackingList.cs new file mode 100644 index 000000000000..331b617be402 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ChangeTrackingList.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ChangeTrackingList : IList, IReadOnlyList + { + private IList _innerList; + + public ChangeTrackingList() + { + } + + /// The inner list. + public ChangeTrackingList(IList innerList) + { + if (innerList != null) + { + _innerList = innerList; + } + } + + /// The inner list. + public ChangeTrackingList(IReadOnlyList innerList) + { + if (innerList != null) + { + _innerList = innerList.ToList(); + } + } + + /// Gets the IsUndefined. + public bool IsUndefined => _innerList == null; + + /// Gets the Count. + public int Count => IsUndefined ? 0 : EnsureList().Count; + + /// Gets the IsReadOnly. + public bool IsReadOnly => IsUndefined ? false : EnsureList().IsReadOnly; + + /// Gets or sets the value associated with the specified key. + public T this[int index] + { + get + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + return EnsureList()[index]; + } + set + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList()[index] = value; + } + } + + public void Reset() + { + _innerList = null; + } + + public IEnumerator GetEnumerator() + { + if (IsUndefined) + { + IEnumerator enumerateEmpty() + { + yield break; + } + return enumerateEmpty(); + } + return EnsureList().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + /// The item to add. + public void Add(T item) + { + EnsureList().Add(item); + } + + public void Clear() + { + EnsureList().Clear(); + } + + /// The item. + public bool Contains(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Contains(item); + } + + /// The array to copy to. + /// The array index. + public void CopyTo(T[] array, int arrayIndex) + { + if (IsUndefined) + { + return; + } + EnsureList().CopyTo(array, arrayIndex); + } + + /// The item. + public bool Remove(T item) + { + if (IsUndefined) + { + return false; + } + return EnsureList().Remove(item); + } + + /// The item. + public int IndexOf(T item) + { + if (IsUndefined) + { + return -1; + } + return EnsureList().IndexOf(item); + } + + /// The inner list. + /// The item. + public void Insert(int index, T item) + { + EnsureList().Insert(index, item); + } + + /// The inner list. + public void RemoveAt(int index) + { + if (IsUndefined) + { + throw new ArgumentOutOfRangeException(nameof(index)); + } + EnsureList().RemoveAt(index); + } + + public IList EnsureList() + { + return _innerList ??= new List(); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ClientPipelineExtensions.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ClientPipelineExtensions.cs new file mode 100644 index 000000000000..1fb3682efa42 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ClientPipelineExtensions.cs @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class ClientPipelineExtensions + { + public static async ValueTask ProcessMessageAsync(this HttpPipeline pipeline, HttpMessage message, RequestContext context) + { + (CancellationToken userCancellationToken, ErrorOptions errorOptions) = context.Parse(); + await pipeline.SendAsync(message, userCancellationToken).ConfigureAwait(false); + + if (message.Response.IsError && (errorOptions & ErrorOptions.NoThrow) != ErrorOptions.NoThrow) + { + throw new RequestFailedException(message.Response); + } + + return message.Response; + } + + public static Response ProcessMessage(this HttpPipeline pipeline, HttpMessage message, RequestContext context) + { + (CancellationToken userCancellationToken, ErrorOptions errorOptions) = context.Parse(); + pipeline.Send(message, userCancellationToken); + + if (message.Response.IsError && (errorOptions & ErrorOptions.NoThrow) != ErrorOptions.NoThrow) + { + throw new RequestFailedException(message.Response); + } + + return message.Response; + } + + public static async ValueTask> ProcessHeadAsBoolMessageAsync(this HttpPipeline pipeline, HttpMessage message, RequestContext context) + { + Response response = await pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + switch (response.Status) + { + case >= 200 and < 300: + return Response.FromValue(true, response); + case >= 400 and < 500: + return Response.FromValue(false, response); + default: + return new ErrorResult(response, new RequestFailedException(response)); + } + } + + public static Response ProcessHeadAsBoolMessage(this HttpPipeline pipeline, HttpMessage message, RequestContext context) + { + Response response = pipeline.ProcessMessage(message, context); + switch (response.Status) + { + case >= 200 and < 300: + return Response.FromValue(true, response); + case >= 400 and < 500: + return Response.FromValue(false, response); + default: + return new ErrorResult(response, new RequestFailedException(response)); + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenMemberAttribute.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenMemberAttribute.cs new file mode 100644 index 000000000000..72778edeb7e4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenMemberAttribute.cs @@ -0,0 +1,20 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; + +namespace Microsoft.TypeSpec.Generator.Customizations +{ + [AttributeUsage((AttributeTargets.Property | AttributeTargets.Field))] + internal partial class CodeGenMemberAttribute : CodeGenTypeAttribute + { + /// The original name of the member. + public CodeGenMemberAttribute(string originalName) : base(originalName) + { + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenSerializationAttribute.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenSerializationAttribute.cs new file mode 100644 index 000000000000..dfcabf517497 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenSerializationAttribute.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; + +namespace Microsoft.TypeSpec.Generator.Customizations +{ + [AttributeUsage((AttributeTargets.Class | AttributeTargets.Struct), AllowMultiple = true, Inherited = true)] + internal partial class CodeGenSerializationAttribute : Attribute + { + /// The property name which these hooks apply to. + public CodeGenSerializationAttribute(string propertyName) + { + PropertyName = propertyName; + } + + /// The property name which these hooks apply to. + /// The serialization name of the property. + public CodeGenSerializationAttribute(string propertyName, string serializationName) + { + PropertyName = propertyName; + SerializationName = serializationName; + } + + /// Gets or sets the property name which these hooks should apply to. + public string PropertyName { get; } + + /// Gets or sets the serialization name of the property. + public string SerializationName { get; set; } + + /// + /// Gets or sets the method name to use when serializing the property value (property name excluded). + /// The signature of the serialization hook method must be or compatible with when invoking: private void SerializeHook(Utf8JsonWriter writer); + /// + public string SerializationValueHook { get; set; } + + /// + /// Gets or sets the method name to use when deserializing the property value from the JSON. + /// private static void DeserializationHook(JsonProperty property, ref TypeOfTheProperty propertyValue); // if the property is required + /// private static void DeserializationHook(JsonProperty property, ref Optional<TypeOfTheProperty> propertyValue); // if the property is optional + /// + public string DeserializationValueHook { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenSuppressAttribute.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenSuppressAttribute.cs new file mode 100644 index 000000000000..38d536e69173 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenSuppressAttribute.cs @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; + +namespace Microsoft.TypeSpec.Generator.Customizations +{ + [AttributeUsage((AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct), AllowMultiple = true)] + internal partial class CodeGenSuppressAttribute : Attribute + { + /// The member to suppress. + /// The types of the parameters of the member. + public CodeGenSuppressAttribute(string member, params Type[] parameters) + { + Member = member; + Parameters = parameters; + } + + /// Gets the Member. + public string Member { get; } + + /// Gets the Parameters. + public Type[] Parameters { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenTypeAttribute.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenTypeAttribute.cs new file mode 100644 index 000000000000..f36b5f513173 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/CodeGenTypeAttribute.cs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; + +namespace Microsoft.TypeSpec.Generator.Customizations +{ + [AttributeUsage((AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Struct))] + internal partial class CodeGenTypeAttribute : Attribute + { + /// The original name of the type. + public CodeGenTypeAttribute(string originalName) + { + OriginalName = originalName; + } + + /// Gets the OriginalName. + public string OriginalName { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ErrorResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ErrorResult.cs new file mode 100644 index 000000000000..904ba47d7fb0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ErrorResult.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using Azure; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ErrorResult : Response + { + private readonly Response _response; + private readonly RequestFailedException _exception; + + public ErrorResult(Response response, RequestFailedException exception) + { + _response = response; + _exception = exception; + } + + /// Gets the Value. + public override T Value => throw _exception; + + /// + public override Response GetRawResponse() + { + return _response; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ModelSerializationExtensions.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ModelSerializationExtensions.cs new file mode 100644 index 000000000000..9821e5d4e367 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/ModelSerializationExtensions.cs @@ -0,0 +1,268 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class ModelSerializationExtensions + { + internal static readonly ModelReaderWriterOptions WireOptions = new ModelReaderWriterOptions("W"); + internal static readonly JsonDocumentOptions JsonDocumentOptions = new JsonDocumentOptions + { + MaxDepth = 256 + }; + + public static object GetObject(this JsonElement element) + { + switch (element.ValueKind) + { + case JsonValueKind.String: + return element.GetString(); + case JsonValueKind.Number: + if (element.TryGetInt32(out int intValue)) + { + return intValue; + } + if (element.TryGetInt64(out long longValue)) + { + return longValue; + } + return element.GetDouble(); + case JsonValueKind.True: + return true; + case JsonValueKind.False: + return false; + case JsonValueKind.Undefined: + case JsonValueKind.Null: + return null; + case JsonValueKind.Object: + Dictionary dictionary = new Dictionary(); + foreach (var jsonProperty in element.EnumerateObject()) + { + dictionary.Add(jsonProperty.Name, jsonProperty.Value.GetObject()); + } + return dictionary; + case JsonValueKind.Array: + List list = new List(); + foreach (var item in element.EnumerateArray()) + { + list.Add(item.GetObject()); + } + return list.ToArray(); + default: + throw new NotSupportedException($"Not supported value kind {element.ValueKind}"); + } + } + + public static byte[] GetBytesFromBase64(this JsonElement element, string format) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + + return format switch + { + "U" => TypeFormatters.FromBase64UrlString(element.GetRequiredString()), + "D" => element.GetBytesFromBase64(), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + } + + public static DateTimeOffset GetDateTimeOffset(this JsonElement element, string format) => format switch + { + "U" when element.ValueKind == JsonValueKind.Number => DateTimeOffset.FromUnixTimeSeconds(element.GetInt64()), + _ => TypeFormatters.ParseDateTimeOffset(element.GetString(), format) + }; + + public static TimeSpan GetTimeSpan(this JsonElement element, string format) => TypeFormatters.ParseTimeSpan(element.GetString(), format); + + public static char GetChar(this JsonElement element) + { + if (element.ValueKind == JsonValueKind.String) + { + string text = element.GetString(); + if (text == null || text.Length != 1) + { + throw new NotSupportedException($"Cannot convert \"{text}\" to a char"); + } + return text[0]; + } + else + { + throw new NotSupportedException($"Cannot convert {element.ValueKind} to a char"); + } + } + + [Conditional("DEBUG")] + public static void ThrowNonNullablePropertyIsNull(this JsonProperty @property) + { + throw new JsonException($"A property '{@property.Name}' defined as non-nullable but received as null from the service. This exception only happens in DEBUG builds of the library and would be ignored in the release build"); + } + + public static string GetRequiredString(this JsonElement element) + { + string value = element.GetString(); + if (value == null) + { + throw new InvalidOperationException($"The requested operation requires an element of type 'String', but the target element has type '{element.ValueKind}'."); + } + return value; + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, DateTime value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, TimeSpan value, string format) + { + writer.WriteStringValue(TypeFormatters.ToString(value, format)); + } + + public static void WriteStringValue(this Utf8JsonWriter writer, char value) + { + writer.WriteStringValue(value.ToString(CultureInfo.InvariantCulture)); + } + + public static void WriteBase64StringValue(this Utf8JsonWriter writer, byte[] value, string format) + { + if (value == null) + { + writer.WriteNullValue(); + return; + } + switch (format) + { + case "U": + writer.WriteStringValue(TypeFormatters.ToBase64UrlString(value)); + break; + case "D": + writer.WriteBase64StringValue(value); + break; + default: + throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)); + } + } + + public static void WriteNumberValue(this Utf8JsonWriter writer, DateTimeOffset value, string format) + { + if (format != "U") + { + throw new ArgumentOutOfRangeException(nameof(format), "Only 'U' format is supported when writing a DateTimeOffset as a Number."); + } + writer.WriteNumberValue(value.ToUnixTimeSeconds()); + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, T value, ModelReaderWriterOptions options = null) + { + switch (value) + { + case null: + writer.WriteNullValue(); + break; + case IJsonModel jsonModel: + jsonModel.Write(writer, options ?? WireOptions); + break; + case byte[] bytes: + writer.WriteBase64StringValue(bytes); + break; + case BinaryData bytes0: + writer.WriteBase64StringValue(bytes0); + break; + case JsonElement json: + json.WriteTo(writer); + break; + case int i: + writer.WriteNumberValue(i); + break; + case decimal d: + writer.WriteNumberValue(d); + break; + case double d0: + if (double.IsNaN(d0)) + { + writer.WriteStringValue("NaN"); + } + else + { + writer.WriteNumberValue(d0); + } + break; + case float f: + writer.WriteNumberValue(f); + break; + case long l: + writer.WriteNumberValue(l); + break; + case string s: + writer.WriteStringValue(s); + break; + case bool b: + writer.WriteBooleanValue(b); + break; + case Guid g: + writer.WriteStringValue(g); + break; + case DateTimeOffset dateTimeOffset: + writer.WriteStringValue(dateTimeOffset, "O"); + break; + case DateTime dateTime: + writer.WriteStringValue(dateTime, "O"); + break; + case IEnumerable> enumerable: + writer.WriteStartObject(); + foreach (var pair in enumerable) + { + writer.WritePropertyName(pair.Key); + writer.WriteObjectValue(pair.Value, options); + } + writer.WriteEndObject(); + break; + case IEnumerable objectEnumerable: + writer.WriteStartArray(); + foreach (var item in objectEnumerable) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + break; + case TimeSpan timeSpan: + writer.WriteStringValue(timeSpan, "P"); + break; + default: + throw new NotSupportedException($"Not supported type {value.GetType()}"); + } + } + + public static void WriteObjectValue(this Utf8JsonWriter writer, object value, ModelReaderWriterOptions options = null) + { + writer.WriteObjectValue(value, options); + } + + public static BinaryData GetUtf8Bytes(this JsonElement element) + { +#if NET9_0_OR_GREATER + return new global::System.BinaryData(global::System.Runtime.InteropServices.JsonMarshal.GetRawUtf8Value(element).ToArray()); +#else + return BinaryData.FromString(element.GetRawText()); +#endif + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Optional.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Optional.cs new file mode 100644 index 000000000000..50341426a04e --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Optional.cs @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class Optional + { + public static bool IsCollectionDefined(IEnumerable collection) + { + return !(collection is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined); + } + + public static bool IsCollectionDefined(IDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsCollectionDefined(IReadOnlyDictionary collection) + { + return !(collection is ChangeTrackingDictionary changeTrackingDictionary && changeTrackingDictionary.IsUndefined); + } + + public static bool IsDefined(T? value) + where T : struct + { + return value.HasValue; + } + + public static bool IsDefined(object value) + { + return value != null; + } + + public static bool IsDefined(string value) + { + return value != null; + } + + public static bool IsDefined(JsonElement value) + { + return value.ValueKind != JsonValueKind.Undefined; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/PageableWrapper.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/PageableWrapper.cs new file mode 100644 index 000000000000..d1745ccd5a4c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/PageableWrapper.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class PageableWrapper : Pageable + { + /// The source pageable value of type Pageable<T>. + private Pageable _source; + /// The converter function from T to U. + private Func _converter; + + /// Initializes a new instance of the PageableWrapper class. + /// The source pageable value of type Pageable<T>. + /// The converter function from T to U. + public PageableWrapper(Pageable source, Func converter) + { + _source = source; + _converter = converter; + } + + /// Converts the pages from Pageable to Page. + /// A continuation token from a previous response. + /// An optional hint to specify the desired size of each page. + /// An enumerable of pages containing converted items of type U. + public override IEnumerable> AsPages(string continuationToken, int? pageSizeHint) + { + foreach (Page page in _source.AsPages(continuationToken, pageSizeHint)) + { + List convertedItems = new List(); + foreach (T item in page.Values) + { + convertedItems.Add(_converter.Invoke(item)); + } + yield return Page.FromValues(convertedItems, page.ContinuationToken, page.GetRawResponse()); + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/RawRequestUriBuilderExtensions.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/RawRequestUriBuilderExtensions.cs new file mode 100644 index 000000000000..9f3b49c89d51 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/RawRequestUriBuilderExtensions.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Linq; +using Azure.Core; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class RawRequestUriBuilderExtensions + { + public static void AppendQueryDelimited(this RawRequestUriBuilder builder, string name, IEnumerable value, string delimiter, SerializationFormat format = SerializationFormat.Default, bool escape = true) + { + delimiter ??= ","; + IEnumerable stringValues = value.Select(v => TypeFormatters.ConvertToString(v, format)); + builder.AppendQuery(name, string.Join(delimiter, stringValues), escape); + } + + public static void UpdateQuery(this RawRequestUriBuilder builder, string name, string value) + { + string currentQuery = builder.Query; + string searchPattern = string.Concat(name, "="); + int paramStartIndex = -1; + if (currentQuery.StartsWith(string.Concat("?", searchPattern))) + { + paramStartIndex = 1; + } + if (paramStartIndex == -1) + { + string prefixedPattern = string.Concat("&", searchPattern); + int prefixedIndex = currentQuery.IndexOf(prefixedPattern); + if (prefixedIndex >= 0) + { + paramStartIndex = prefixedIndex + 1; + } + } + if (paramStartIndex >= 0) + { + int valueStartIndex = paramStartIndex + searchPattern.Length; + int valueEndIndex = currentQuery.IndexOf('&', valueStartIndex); + if (valueEndIndex == -1) + { + valueEndIndex = currentQuery.Length; + } + string beforeParam = currentQuery.Substring(0, valueStartIndex); + string afterParam = currentQuery.Substring(valueEndIndex); + string newQuery = string.Concat(beforeParam, value, afterParam); + builder.Query = newQuery; + } + else + { + builder.AppendQuery(name, value, true); + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/RequestContextExtensions.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/RequestContextExtensions.cs new file mode 100644 index 000000000000..869afd1ee092 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/RequestContextExtensions.cs @@ -0,0 +1,26 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using Azure; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class RequestContextExtensions + { + /// The request context, which can override default behaviors of the client pipeline on a per-call basis. + public static ValueTuple Parse(this RequestContext context) + { + if (context == null) + { + return (CancellationToken.None, ErrorOptions.Default); + } + return (context.CancellationToken, context.ErrorOptions); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/SerializationFormat.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/SerializationFormat.cs new file mode 100644 index 000000000000..fc41984f2cb6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/SerializationFormat.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +namespace Azure.ResourceManager.Discovery +{ + internal enum SerializationFormat + { + /// The default serialization format. + Default = 0, + /// The RFC1123 date time format. + DateTime_RFC1123 = 1, + /// The RFC3339 date time format. + DateTime_RFC3339 = 2, + /// The RFC7231 date time format. + DateTime_RFC7231 = 3, + /// The ISO8601 date time format. + DateTime_ISO8601 = 4, + /// The Unix date time format. + DateTime_Unix = 5, + /// The ISO8601 date format. + Date_ISO8601 = 6, + /// The ISO8601 duration format. + Duration_ISO8601 = 7, + /// The constant duration format. + Duration_Constant = 8, + /// The seconds duration format. + Duration_Seconds = 9, + /// The seconds duration format with float precision. + Duration_Seconds_Float = 10, + /// The seconds duration format with double precision. + Duration_Seconds_Double = 11, + /// The milliseconds duration format. + Duration_Milliseconds = 12, + /// The milliseconds duration format with float precision. + Duration_Milliseconds_Float = 13, + /// The milliseconds duration format with double precision. + Duration_Milliseconds_Double = 14, + /// The ISO8601 time format. + Time_ISO8601 = 15, + /// The Base64Url bytes format. + Bytes_Base64Url = 16, + /// The Base64 bytes format. + Bytes_Base64 = 17 + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/TypeFormatters.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/TypeFormatters.cs new file mode 100644 index 000000000000..55d9b2918f08 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/TypeFormatters.cs @@ -0,0 +1,181 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Xml; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class TypeFormatters + { + private const string RoundtripZFormat = "yyyy-MM-ddTHH:mm:ss.fffffffZ"; + public const string DefaultNumberFormat = "G"; + + public static string ToString(bool value) => value ? "true" : "false"; + + public static string ToString(DateTime value, string format) => value.Kind switch + { + DateTimeKind.Utc => ToString((DateTimeOffset)value, format), + _ => throw new NotSupportedException($"DateTime {value} has a Kind of {value.Kind}. Generated clients require it to be UTC. You can call DateTime.SpecifyKind to change Kind property value to DateTimeKind.Utc.") + }; + + public static string ToString(DateTimeOffset value, string format) => format switch + { + "D" => value.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture), + "U" => value.ToUnixTimeSeconds().ToString(CultureInfo.InvariantCulture), + "O" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "o" => value.ToUniversalTime().ToString(RoundtripZFormat, CultureInfo.InvariantCulture), + "R" => value.ToString("r", CultureInfo.InvariantCulture), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(TimeSpan value, string format) => format switch + { + "P" => XmlConvert.ToString(value), + _ => value.ToString(format, CultureInfo.InvariantCulture) + }; + + public static string ToString(byte[] value, string format) => format switch + { + "U" => ToBase64UrlString(value), + "D" => Convert.ToBase64String(value), + _ => throw new ArgumentException($"Format is not supported: '{format}'", nameof(format)) + }; + + public static string ToBase64UrlString(byte[] value) + { + int numWholeOrPartialInputBlocks = checked (value.Length + 2) / 3; + int size = checked (numWholeOrPartialInputBlocks * 4); + char[] output = new char[size]; + + int numBase64Chars = Convert.ToBase64CharArray(value, 0, value.Length, output, 0); + + int i = 0; + for (; i < numBase64Chars; i++) + { + char ch = output[i]; + if (ch == '+') + { + output[i] = '-'; + } + else + { + if (ch == '/') + { + output[i] = '_'; + } + else + { + if (ch == '=') + { + break; + } + } + } + } + + return new string(output, 0, i); + } + + public static byte[] FromBase64UrlString(string value) + { + int paddingCharsToAdd = (value.Length % 4) switch + { + 0 => 0, + 2 => 2, + 3 => 1, + _ => throw new InvalidOperationException("Malformed input") + }; + char[] output = new char[(value.Length + paddingCharsToAdd)]; + int i = 0; + for (; i < value.Length; i++) + { + char ch = value[i]; + if (ch == '-') + { + output[i] = '+'; + } + else + { + if (ch == '_') + { + output[i] = '/'; + } + else + { + output[i] = ch; + } + } + } + + for (; i < output.Length; i++) + { + output[i] = '='; + } + + return Convert.FromBase64CharArray(output, 0, output.Length); + } + + public static DateTimeOffset ParseDateTimeOffset(string value, string format) => format switch + { + "U" => DateTimeOffset.FromUnixTimeSeconds(long.Parse(value, CultureInfo.InvariantCulture)), + _ => DateTimeOffset.Parse(value, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal) + }; + + public static TimeSpan ParseTimeSpan(string value, string format) => format switch + { + "P" => XmlConvert.ToTimeSpan(value), + _ => TimeSpan.ParseExact(value, format, CultureInfo.InvariantCulture) + }; + + public static string ToFormatSpecifier(SerializationFormat format) => format switch + { + SerializationFormat.DateTime_RFC1123 => "R", + SerializationFormat.DateTime_RFC3339 => "O", + SerializationFormat.DateTime_RFC7231 => "R", + SerializationFormat.DateTime_ISO8601 => "O", + SerializationFormat.Date_ISO8601 => "D", + SerializationFormat.DateTime_Unix => "U", + SerializationFormat.Bytes_Base64Url => "U", + SerializationFormat.Bytes_Base64 => "D", + SerializationFormat.Duration_ISO8601 => "P", + SerializationFormat.Duration_Constant => "c", + SerializationFormat.Duration_Seconds => "%s", + SerializationFormat.Duration_Seconds_Float => "s\\.FFF", + SerializationFormat.Duration_Seconds_Double => "s\\.FFFFFF", + SerializationFormat.Time_ISO8601 => "T", + _ => null + }; + + public static string ConvertToString(object value, SerializationFormat format = SerializationFormat.Default) + { + string formatSpecifier = ToFormatSpecifier(format); + + return value switch + { + null => "null", + string s => s, + bool b => ToString(b), + int or float or double or long or decimal => ((IFormattable)value).ToString(DefaultNumberFormat, CultureInfo.InvariantCulture), + byte[] b0 when formatSpecifier != null => ToString(b0, formatSpecifier), + IEnumerable s0 => string.Join(",", s0), + DateTimeOffset dateTime when formatSpecifier != null => ToString(dateTime, formatSpecifier), + TimeSpan timeSpan when format == SerializationFormat.Duration_Seconds => Convert.ToInt32(timeSpan.TotalSeconds).ToString(CultureInfo.InvariantCulture), + TimeSpan timeSpan0 when format == SerializationFormat.Duration_Seconds_Float || format == SerializationFormat.Duration_Seconds_Double => timeSpan0.TotalSeconds.ToString(CultureInfo.InvariantCulture), + TimeSpan timeSpan1 when format == SerializationFormat.Duration_Milliseconds => Convert.ToInt32(timeSpan1.TotalMilliseconds).ToString(CultureInfo.InvariantCulture), + TimeSpan timeSpan2 when format == SerializationFormat.Duration_Milliseconds_Float || format == SerializationFormat.Duration_Milliseconds_Double => timeSpan2.TotalMilliseconds.ToString(CultureInfo.InvariantCulture), + TimeSpan timeSpan3 when formatSpecifier != null => ToString(timeSpan3, formatSpecifier), + TimeSpan timeSpan4 => XmlConvert.ToString(timeSpan4), + Guid guid => guid.ToString(), + BinaryData binaryData => ConvertToString(binaryData.ToArray(), format), + _ => value.ToString() + }; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Utf8JsonRequestContent.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Utf8JsonRequestContent.cs new file mode 100644 index 000000000000..4acb60aec353 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Internal/Utf8JsonRequestContent.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.IO; +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure.Core; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class Utf8JsonRequestContent : RequestContent + { + private readonly MemoryStream _stream; + private readonly RequestContent _content; + + public Utf8JsonRequestContent() + { + _stream = new MemoryStream(); + _content = Create(_stream); + JsonWriter = new Utf8JsonWriter(_stream); + } + + /// Gets the JsonWriter. + public Utf8JsonWriter JsonWriter { get; } + + /// The stream containing the data to be written. + /// The cancellation token to use. + public override async Task WriteToAsync(Stream stream, CancellationToken cancellationToken = default) + { + await JsonWriter.FlushAsync().ConfigureAwait(false); + await _content.WriteToAsync(stream, cancellationToken).ConfigureAwait(false); + } + + /// The stream containing the data to be written. + /// The cancellation token to use. + public override void WriteTo(Stream stream, CancellationToken cancellationToken = default) + { + JsonWriter.Flush(); + _content.WriteTo(stream, cancellationToken); + } + + /// + public override bool TryComputeLength(out long length) + { + length = JsonWriter.BytesCommitted + JsonWriter.BytesPending; + return true; + } + + public override void Dispose() + { + JsonWriter.Dispose(); + _content.Dispose(); + _stream.Dispose(); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/BookshelfOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/BookshelfOperationSource.cs new file mode 100644 index 000000000000..91d8e0da65c5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/BookshelfOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class BookshelfOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal BookshelfOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + BookshelfResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + BookshelfData data = BookshelfData.DeserializeBookshelfData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new BookshelfResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + BookshelfData data = BookshelfData.DeserializeBookshelfData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new BookshelfResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/BookshelfPrivateEndpointConnectionOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/BookshelfPrivateEndpointConnectionOperationSource.cs new file mode 100644 index 000000000000..510427751055 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/BookshelfPrivateEndpointConnectionOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class BookshelfPrivateEndpointConnectionOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal BookshelfPrivateEndpointConnectionOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + BookshelfPrivateEndpointConnectionResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + BookshelfPrivateEndpointConnectionData data = BookshelfPrivateEndpointConnectionData.DeserializeBookshelfPrivateEndpointConnectionData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new BookshelfPrivateEndpointConnectionResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + BookshelfPrivateEndpointConnectionData data = BookshelfPrivateEndpointConnectionData.DeserializeBookshelfPrivateEndpointConnectionData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new BookshelfPrivateEndpointConnectionResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ChatModelDeploymentOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ChatModelDeploymentOperationSource.cs new file mode 100644 index 000000000000..52ed8741b256 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ChatModelDeploymentOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class ChatModelDeploymentOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal ChatModelDeploymentOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + ChatModelDeploymentResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + ChatModelDeploymentData data = ChatModelDeploymentData.DeserializeChatModelDeploymentData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new ChatModelDeploymentResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + ChatModelDeploymentData data = ChatModelDeploymentData.DeserializeChatModelDeploymentData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new ChatModelDeploymentResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/DiscoveryArmOperation.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/DiscoveryArmOperation.cs new file mode 100644 index 000000000000..96450bca372b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/DiscoveryArmOperation.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class DiscoveryArmOperation : ArmOperation + { + private readonly OperationInternal _operation; + private readonly RehydrationToken? _completeRehydrationToken; + private readonly NextLinkOperationImplementation _nextLinkOperation; + private readonly string _operationId; + + /// Initializes a new instance of DiscoveryArmOperation for mocking. + protected DiscoveryArmOperation() + { + } + + /// + /// The operation response. + /// The token to rehydrate the operation. + internal DiscoveryArmOperation(Response response, RehydrationToken? rehydrationToken = null) + { + _operation = OperationInternal.Succeeded(response); + _completeRehydrationToken = rehydrationToken; + _operationId = GetOperationId(rehydrationToken); + } + + /// + /// The instance of . + /// The instance of . + /// The operation request. + /// The operation response. + /// The finalStateVia of the operation. + /// If should skip Api version override. + /// The Api version override value. + internal DiscoveryArmOperation(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Request request, Response response, OperationFinalStateVia finalStateVia, bool skipApiVersionOverride = false, string apiVersionOverrideValue = null) + { + IOperation nextLinkOperation = NextLinkOperationImplementation.Create(pipeline, request.Method, request.Uri.ToUri(), response, finalStateVia, skipApiVersionOverride, apiVersionOverrideValue); + if (nextLinkOperation is NextLinkOperationImplementation nextLinkOperationImplementation) + { + _nextLinkOperation = nextLinkOperationImplementation; + _operationId = _nextLinkOperation.OperationId; + } + else + { + _completeRehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(request.Method, request.Uri.ToUri(), response, finalStateVia); + _operationId = GetOperationId(_completeRehydrationToken); + } + _operation = new OperationInternal( + nextLinkOperation, + clientDiagnostics, + response, + "DiscoveryArmOperation", + null, + new SequentialDelayStrategy()); + } + + /// Gets the Id. + public override string Id => _operationId ?? NextLinkOperationImplementation.NotSet; + + /// Gets the HasCompleted. + public override bool HasCompleted => _operation.HasCompleted; + + /// The token to rehydrate a long-running operation. + private string GetOperationId(RehydrationToken? rehydrationToken) + { + return rehydrationToken?.Id; + } + + /// + public override RehydrationToken? GetRehydrationToken() => _nextLinkOperation?.GetRehydrationToken() ?? _completeRehydrationToken; + + /// + public override Response GetRawResponse() => _operation.RawResponse; + + /// + public override Response UpdateStatus(CancellationToken cancellationToken = default) => _operation.UpdateStatus(cancellationToken); + + /// + public override ValueTask UpdateStatusAsync(CancellationToken cancellationToken = default) => _operation.UpdateStatusAsync(cancellationToken); + + /// + public override Response WaitForCompletionResponse(CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponse(cancellationToken); + + /// + public override Response WaitForCompletionResponse(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponse(pollingInterval, cancellationToken); + + /// + public override ValueTask WaitForCompletionResponseAsync(CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponseAsync(cancellationToken); + + /// + public override ValueTask WaitForCompletionResponseAsync(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletionResponseAsync(pollingInterval, cancellationToken); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/DiscoveryArmOperationOfT.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/DiscoveryArmOperationOfT.cs new file mode 100644 index 000000000000..f359563e7681 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/DiscoveryArmOperationOfT.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class DiscoveryArmOperation : ArmOperation + { + private readonly OperationInternal _operation; + private readonly RehydrationToken? _completeRehydrationToken; + private readonly NextLinkOperationImplementation _nextLinkOperation; + private readonly string _operationId; + + /// Initializes a new instance of DiscoveryArmOperation for mocking. + protected DiscoveryArmOperation() + { + } + + /// + /// The operation response. + /// The token to rehydrate the operation. + internal DiscoveryArmOperation(Response response, RehydrationToken? rehydrationToken = null) + { + _operation = OperationInternal.Succeeded(response.GetRawResponse(), response.Value); + _completeRehydrationToken = rehydrationToken; + _operationId = GetOperationId(rehydrationToken); + } + + /// + /// The instance of . + /// The instance of . + /// The instance of . + /// The operation request. + /// The operation response. + /// The finalStateVia of the operation. + /// If should skip Api version override. + /// The Api version override value. + internal DiscoveryArmOperation(IOperationSource source, ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Request request, Response response, OperationFinalStateVia finalStateVia, bool skipApiVersionOverride = false, string apiVersionOverrideValue = null) + { + IOperation nextLinkOperation = NextLinkOperationImplementation.Create(pipeline, request.Method, request.Uri.ToUri(), response, finalStateVia, skipApiVersionOverride, apiVersionOverrideValue); + if (nextLinkOperation is NextLinkOperationImplementation nextLinkOperationImplementation) + { + _nextLinkOperation = nextLinkOperationImplementation; + _operationId = _nextLinkOperation.OperationId; + } + else + { + _completeRehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(request.Method, request.Uri.ToUri(), response, finalStateVia); + _operationId = GetOperationId(_completeRehydrationToken); + } + _operation = new OperationInternal( + NextLinkOperationImplementation.Create(source, nextLinkOperation), + clientDiagnostics, + response, + "DiscoveryArmOperation", + null, + new SequentialDelayStrategy()); + } + + /// Gets the Id. + public override string Id => _operationId ?? NextLinkOperationImplementation.NotSet; + + /// Gets the Value. + public override T Value => _operation.Value; + + /// Gets the HasValue. + public override bool HasValue => _operation.HasValue; + + /// Gets the HasCompleted. + public override bool HasCompleted => _operation.HasCompleted; + + /// The token to rehydrate a long-running operation. + private string GetOperationId(RehydrationToken? rehydrationToken) + { + return rehydrationToken?.Id; + } + + /// + public override RehydrationToken? GetRehydrationToken() => _nextLinkOperation?.GetRehydrationToken() ?? _completeRehydrationToken; + + /// + public override Response GetRawResponse() => _operation.RawResponse; + + /// + public override Response UpdateStatus(CancellationToken cancellationToken = default) => _operation.UpdateStatus(cancellationToken); + + /// + public override ValueTask UpdateStatusAsync(CancellationToken cancellationToken = default) => _operation.UpdateStatusAsync(cancellationToken); + + /// + public override Response WaitForCompletion(CancellationToken cancellationToken = default) => _operation.WaitForCompletion(cancellationToken); + + /// + public override Response WaitForCompletion(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletion(pollingInterval, cancellationToken); + + /// + public override ValueTask> WaitForCompletionAsync(CancellationToken cancellationToken = default) => _operation.WaitForCompletionAsync(cancellationToken); + + /// + public override ValueTask> WaitForCompletionAsync(TimeSpan pollingInterval, CancellationToken cancellationToken = default) => _operation.WaitForCompletionAsync(pollingInterval, cancellationToken); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/NodePoolOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/NodePoolOperationSource.cs new file mode 100644 index 000000000000..60c6a87230f7 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/NodePoolOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class NodePoolOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal NodePoolOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + NodePoolResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + NodePoolData data = NodePoolData.DeserializeNodePoolData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new NodePoolResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + NodePoolData data = NodePoolData.DeserializeNodePoolData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new NodePoolResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ProjectOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ProjectOperationSource.cs new file mode 100644 index 000000000000..45bf7efb5e1b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ProjectOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class ProjectOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal ProjectOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + ProjectResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + ProjectData data = ProjectData.DeserializeProjectData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new ProjectResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + ProjectData data = ProjectData.DeserializeProjectData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new ProjectResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/StorageAssetOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/StorageAssetOperationSource.cs new file mode 100644 index 000000000000..8b9e1208e260 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/StorageAssetOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class StorageAssetOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal StorageAssetOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + StorageAssetResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + StorageAssetData data = StorageAssetData.DeserializeStorageAssetData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new StorageAssetResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + StorageAssetData data = StorageAssetData.DeserializeStorageAssetData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new StorageAssetResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/StorageContainerOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/StorageContainerOperationSource.cs new file mode 100644 index 000000000000..9e88eaadc5a7 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/StorageContainerOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class StorageContainerOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal StorageContainerOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + StorageContainerResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + StorageContainerData data = StorageContainerData.DeserializeStorageContainerData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new StorageContainerResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + StorageContainerData data = StorageContainerData.DeserializeStorageContainerData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new StorageContainerResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/SupercomputerOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/SupercomputerOperationSource.cs new file mode 100644 index 000000000000..2efe67c70545 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/SupercomputerOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class SupercomputerOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal SupercomputerOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + SupercomputerResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + SupercomputerData data = SupercomputerData.DeserializeSupercomputerData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new SupercomputerResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + SupercomputerData data = SupercomputerData.DeserializeSupercomputerData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new SupercomputerResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ToolOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ToolOperationSource.cs new file mode 100644 index 000000000000..2ed43b10bed2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/ToolOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class ToolOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal ToolOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + ToolResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + ToolData data = ToolData.DeserializeToolData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new ToolResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + ToolData data = ToolData.DeserializeToolData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new ToolResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/WorkspaceOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/WorkspaceOperationSource.cs new file mode 100644 index 000000000000..7e289368579c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/WorkspaceOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class WorkspaceOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal WorkspaceOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + WorkspaceResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + WorkspaceData data = WorkspaceData.DeserializeWorkspaceData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new WorkspaceResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + WorkspaceData data = WorkspaceData.DeserializeWorkspaceData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new WorkspaceResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/WorkspacePrivateEndpointConnectionOperationSource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/WorkspacePrivateEndpointConnectionOperationSource.cs new file mode 100644 index 000000000000..cfd2d6e9d601 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/LongRunningOperation/WorkspacePrivateEndpointConnectionOperationSource.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + internal partial class WorkspacePrivateEndpointConnectionOperationSource : IOperationSource + { + private readonly ArmClient _client; + + /// + /// + internal WorkspacePrivateEndpointConnectionOperationSource(ArmClient client) + { + _client = client; + } + + /// The response from the service. + /// The cancellation token to use. + /// + WorkspacePrivateEndpointConnectionResource IOperationSource.CreateResult(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = JsonDocument.Parse(response.ContentStream); + WorkspacePrivateEndpointConnectionData data = WorkspacePrivateEndpointConnectionData.DeserializeWorkspacePrivateEndpointConnectionData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new WorkspacePrivateEndpointConnectionResource(_client, data); + } + + /// The response from the service. + /// The cancellation token to use. + /// + async ValueTask IOperationSource.CreateResultAsync(Response response, CancellationToken cancellationToken) + { + using JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream, default, cancellationToken).ConfigureAwait(false); + WorkspacePrivateEndpointConnectionData data = WorkspacePrivateEndpointConnectionData.DeserializeWorkspacePrivateEndpointConnectionData(document.RootElement, ModelSerializationExtensions.WireOptions); + return new WorkspacePrivateEndpointConnectionResource(_client, data); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureNetAppFilesStore.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureNetAppFilesStore.Serialization.cs new file mode 100644 index 000000000000..8fb6d4536189 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureNetAppFilesStore.Serialization.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The Azure NetApp Files properties. + public partial class AzureNetAppFilesStore : StorageStore, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal AzureNetAppFilesStore() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected override StorageStore PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeAzureNetAppFilesStore(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AzureNetAppFilesStore)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(AzureNetAppFilesStore)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + AzureNetAppFilesStore IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (AzureNetAppFilesStore)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(AzureNetAppFilesStore)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + writer.WritePropertyName("netAppVolumeId"u8); + writer.WriteStringValue(NetAppVolumeId); + } + + /// The JSON reader. + /// The client options for reading and writing models. + AzureNetAppFilesStore IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (AzureNetAppFilesStore)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected override StorageStore JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(AzureNetAppFilesStore)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAzureNetAppFilesStore(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static AzureNetAppFilesStore DeserializeAzureNetAppFilesStore(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StorageStoreType kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + ResourceIdentifier netAppVolumeId = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("kind"u8)) + { + kind = new StorageStoreType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("netAppVolumeId"u8)) + { + netAppVolumeId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new AzureNetAppFilesStore(kind, additionalBinaryDataProperties, netAppVolumeId); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureNetAppFilesStore.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureNetAppFilesStore.cs new file mode 100644 index 000000000000..3c1ecd314575 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureNetAppFilesStore.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The Azure NetApp Files properties. + public partial class AzureNetAppFilesStore : StorageStore + { + /// Initializes a new instance of . + /// The associated Azure NetApp Files volume ID. + /// is null. + public AzureNetAppFilesStore(ResourceIdentifier netAppVolumeId) : base(StorageStoreType.AzureNetAppFiles) + { + Argument.AssertNotNull(netAppVolumeId, nameof(netAppVolumeId)); + + NetAppVolumeId = netAppVolumeId; + } + + /// Initializes a new instance of . + /// The storage store kind. + /// Keeps track of any properties unknown to the library. + /// The associated Azure NetApp Files volume ID. + internal AzureNetAppFilesStore(StorageStoreType kind, IDictionary additionalBinaryDataProperties, ResourceIdentifier netAppVolumeId) : base(kind, additionalBinaryDataProperties) + { + NetAppVolumeId = netAppVolumeId; + } + + /// The associated Azure NetApp Files volume ID. + public ResourceIdentifier NetAppVolumeId { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureResourceManagerDiscoveryContext.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureResourceManagerDiscoveryContext.cs new file mode 100644 index 000000000000..d13d847137a8 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureResourceManagerDiscoveryContext.cs @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.ClientModel.Primitives; +using Azure; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// Context class which will be filled in by the System.ClientModel.SourceGeneration. + /// For more information + /// + [ModelReaderWriterBuildable(typeof(AzureNetAppFilesStore))] + [ModelReaderWriterBuildable(typeof(AzureStorageBlobStore))] + [ModelReaderWriterBuildable(typeof(BookshelfData))] + [ModelReaderWriterBuildable(typeof(BookshelfKeyVaultProperties))] + [ModelReaderWriterBuildable(typeof(BookshelfListResult))] + [ModelReaderWriterBuildable(typeof(BookshelfPrivateEndpointConnectionData))] + [ModelReaderWriterBuildable(typeof(BookshelfPrivateEndpointConnectionListResult))] + [ModelReaderWriterBuildable(typeof(BookshelfPrivateEndpointConnectionResource))] + [ModelReaderWriterBuildable(typeof(BookshelfPrivateLinkResource))] + [ModelReaderWriterBuildable(typeof(BookshelfPrivateLinkResourceData))] + [ModelReaderWriterBuildable(typeof(BookshelfPrivateLinkResourceListResult))] + [ModelReaderWriterBuildable(typeof(BookshelfProperties))] + [ModelReaderWriterBuildable(typeof(BookshelfResource))] + [ModelReaderWriterBuildable(typeof(ChatModelDeploymentData))] + [ModelReaderWriterBuildable(typeof(ChatModelDeploymentListResult))] + [ModelReaderWriterBuildable(typeof(ChatModelDeploymentProperties))] + [ModelReaderWriterBuildable(typeof(ChatModelDeploymentResource))] + [ModelReaderWriterBuildable(typeof(DiscoveryPrivateEndpointConnection))] + [ModelReaderWriterBuildable(typeof(DiscoveryPrivateLinkResourceProperties))] + [ModelReaderWriterBuildable(typeof(DiscoveryPrivateLinkServiceConnectionState))] + [ModelReaderWriterBuildable(typeof(Identity))] + [ModelReaderWriterBuildable(typeof(Models.KeyVaultProperties))] + [ModelReaderWriterBuildable(typeof(MoboBrokerResource))] + [ModelReaderWriterBuildable(typeof(NodePoolData))] + [ModelReaderWriterBuildable(typeof(NodePoolListResult))] + [ModelReaderWriterBuildable(typeof(NodePoolProperties))] + [ModelReaderWriterBuildable(typeof(NodePoolResource))] + [ModelReaderWriterBuildable(typeof(PrivateEndpoint))] + [ModelReaderWriterBuildable(typeof(PrivateEndpointConnectionProperties))] + [ModelReaderWriterBuildable(typeof(ProjectData))] + [ModelReaderWriterBuildable(typeof(ProjectListResult))] + [ModelReaderWriterBuildable(typeof(ProjectProperties))] + [ModelReaderWriterBuildable(typeof(ProjectResource))] + [ModelReaderWriterBuildable(typeof(ProjectSettings))] + [ModelReaderWriterBuildable(typeof(ResponseError))] + [ModelReaderWriterBuildable(typeof(StorageAssetData))] + [ModelReaderWriterBuildable(typeof(StorageAssetListResult))] + [ModelReaderWriterBuildable(typeof(StorageAssetProperties))] + [ModelReaderWriterBuildable(typeof(StorageAssetResource))] + [ModelReaderWriterBuildable(typeof(StorageContainerData))] + [ModelReaderWriterBuildable(typeof(StorageContainerListResult))] + [ModelReaderWriterBuildable(typeof(StorageContainerProperties))] + [ModelReaderWriterBuildable(typeof(StorageContainerResource))] + [ModelReaderWriterBuildable(typeof(StorageStore))] + [ModelReaderWriterBuildable(typeof(SupercomputerData))] + [ModelReaderWriterBuildable(typeof(SupercomputerIdentities))] + [ModelReaderWriterBuildable(typeof(SupercomputerListResult))] + [ModelReaderWriterBuildable(typeof(SupercomputerProperties))] + [ModelReaderWriterBuildable(typeof(SupercomputerResource))] + [ModelReaderWriterBuildable(typeof(SystemData))] + [ModelReaderWriterBuildable(typeof(ToolData))] + [ModelReaderWriterBuildable(typeof(ToolListResult))] + [ModelReaderWriterBuildable(typeof(ToolProperties))] + [ModelReaderWriterBuildable(typeof(ToolResource))] + [ModelReaderWriterBuildable(typeof(UnknownStorageStore))] + [ModelReaderWriterBuildable(typeof(UserAssignedIdentity))] + [ModelReaderWriterBuildable(typeof(WithMoboBrokerResources))] + [ModelReaderWriterBuildable(typeof(WorkspaceData))] + [ModelReaderWriterBuildable(typeof(WorkspaceListResult))] + [ModelReaderWriterBuildable(typeof(WorkspacePrivateEndpointConnectionData))] + [ModelReaderWriterBuildable(typeof(WorkspacePrivateEndpointConnectionListResult))] + [ModelReaderWriterBuildable(typeof(WorkspacePrivateEndpointConnectionResource))] + [ModelReaderWriterBuildable(typeof(WorkspacePrivateLinkResource))] + [ModelReaderWriterBuildable(typeof(WorkspacePrivateLinkResourceData))] + [ModelReaderWriterBuildable(typeof(WorkspacePrivateLinkResourceListResult))] + [ModelReaderWriterBuildable(typeof(WorkspaceProperties))] + [ModelReaderWriterBuildable(typeof(WorkspaceResource))] + public partial class AzureResourceManagerDiscoveryContext : ModelReaderWriterContext + { + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureStorageBlobStore.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureStorageBlobStore.Serialization.cs new file mode 100644 index 000000000000..a8e6a45e4132 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureStorageBlobStore.Serialization.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The Azure storage blob properties. + public partial class AzureStorageBlobStore : StorageStore, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal AzureStorageBlobStore() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected override StorageStore PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeAzureStorageBlobStore(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(AzureStorageBlobStore)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(AzureStorageBlobStore)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + AzureStorageBlobStore IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (AzureStorageBlobStore)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(AzureStorageBlobStore)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + writer.WritePropertyName("storageAccountId"u8); + writer.WriteStringValue(StorageAccountId); + } + + /// The JSON reader. + /// The client options for reading and writing models. + AzureStorageBlobStore IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (AzureStorageBlobStore)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected override StorageStore JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(AzureStorageBlobStore)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeAzureStorageBlobStore(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static AzureStorageBlobStore DeserializeAzureStorageBlobStore(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StorageStoreType kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + ResourceIdentifier storageAccountId = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("kind"u8)) + { + kind = new StorageStoreType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("storageAccountId"u8)) + { + storageAccountId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new AzureStorageBlobStore(kind, additionalBinaryDataProperties, storageAccountId); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureStorageBlobStore.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureStorageBlobStore.cs new file mode 100644 index 000000000000..157c9a32e755 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/AzureStorageBlobStore.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The Azure storage blob properties. + public partial class AzureStorageBlobStore : StorageStore + { + /// Initializes a new instance of . + /// The associated Azure Storage Account ID. + /// is null. + public AzureStorageBlobStore(ResourceIdentifier storageAccountId) : base(StorageStoreType.AzureStorageBlob) + { + Argument.AssertNotNull(storageAccountId, nameof(storageAccountId)); + + StorageAccountId = storageAccountId; + } + + /// Initializes a new instance of . + /// The storage store kind. + /// Keeps track of any properties unknown to the library. + /// The associated Azure Storage Account ID. + internal AzureStorageBlobStore(StorageStoreType kind, IDictionary additionalBinaryDataProperties, ResourceIdentifier storageAccountId) : base(kind, additionalBinaryDataProperties) + { + StorageAccountId = storageAccountId; + } + + /// The associated Azure Storage Account ID. + public ResourceIdentifier StorageAccountId { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfKeyVaultProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfKeyVaultProperties.Serialization.cs new file mode 100644 index 000000000000..79269a9a9d45 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfKeyVaultProperties.Serialization.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Key Vault Properties with clientId selection. + public partial class BookshelfKeyVaultProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal BookshelfKeyVaultProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual BookshelfKeyVaultProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfKeyVaultProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfKeyVaultProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfKeyVaultProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfKeyVaultProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfKeyVaultProperties)} does not support writing '{format}' format."); + } + writer.WritePropertyName("keyVaultUri"u8); + writer.WriteStringValue(KeyVaultUri.AbsoluteUri); + writer.WritePropertyName("keyName"u8); + writer.WriteStringValue(KeyName); + if (Optional.IsDefined(KeyVersion)) + { + writer.WritePropertyName("keyVersion"u8); + writer.WriteStringValue(KeyVersion); + } + writer.WritePropertyName("identityClientId"u8); + writer.WriteStringValue(IdentityClientId); + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfKeyVaultProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual BookshelfKeyVaultProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfKeyVaultProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfKeyVaultProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfKeyVaultProperties DeserializeBookshelfKeyVaultProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Uri keyVaultUri = default; + string keyName = default; + string keyVersion = default; + string identityClientId = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("keyVaultUri"u8)) + { + keyVaultUri = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (prop.NameEquals("keyName"u8)) + { + keyName = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("keyVersion"u8)) + { + keyVersion = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("identityClientId"u8)) + { + identityClientId = prop.Value.GetString(); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfKeyVaultProperties(keyVaultUri, keyName, keyVersion, identityClientId, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfKeyVaultProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfKeyVaultProperties.cs new file mode 100644 index 000000000000..66d5ff673afb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfKeyVaultProperties.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Key Vault Properties with clientId selection. + public partial class BookshelfKeyVaultProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Key Vault URI. + /// The Key Name in Key Vault. + /// The client ID of the identity to use for accessing the Key Vault. Must be a workload identity assigned to the Bookshelf resource. + /// , or is null. + public BookshelfKeyVaultProperties(Uri keyVaultUri, string keyName, string identityClientId) + { + Argument.AssertNotNull(keyVaultUri, nameof(keyVaultUri)); + Argument.AssertNotNull(keyName, nameof(keyName)); + Argument.AssertNotNull(identityClientId, nameof(identityClientId)); + + KeyVaultUri = keyVaultUri; + KeyName = keyName; + IdentityClientId = identityClientId; + } + + /// Initializes a new instance of . + /// The Key Vault URI. + /// The Key Name in Key Vault. + /// The Key Version in Key Vault. + /// The client ID of the identity to use for accessing the Key Vault. Must be a workload identity assigned to the Bookshelf resource. + /// Keeps track of any properties unknown to the library. + internal BookshelfKeyVaultProperties(Uri keyVaultUri, string keyName, string keyVersion, string identityClientId, IDictionary additionalBinaryDataProperties) + { + KeyVaultUri = keyVaultUri; + KeyName = keyName; + KeyVersion = keyVersion; + IdentityClientId = identityClientId; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Key Vault URI. + public Uri KeyVaultUri { get; set; } + + /// The Key Name in Key Vault. + public string KeyName { get; set; } + + /// The Key Version in Key Vault. + public string KeyVersion { get; set; } + + /// The client ID of the identity to use for accessing the Key Vault. Must be a workload identity assigned to the Bookshelf resource. + public string IdentityClientId { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfListResult.Serialization.cs new file mode 100644 index 000000000000..77a0a90f789c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Bookshelf list operation. + internal partial class BookshelfListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal BookshelfListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual BookshelfListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static BookshelfListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBookshelfListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (BookshelfData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual BookshelfListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfListResult DeserializeBookshelfListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(BookshelfData.DeserializeBookshelfData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfListResult.cs new file mode 100644 index 000000000000..4bdeed1901ed --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Bookshelf list operation. + internal partial class BookshelfListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Bookshelf items on this page. + internal BookshelfListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Bookshelf items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal BookshelfListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Bookshelf items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateEndpointConnectionListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateEndpointConnectionListResult.Serialization.cs new file mode 100644 index 000000000000..adcc20b722ba --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateEndpointConnectionListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a BookshelfPrivateEndpointConnection list operation. + internal partial class BookshelfPrivateEndpointConnectionListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal BookshelfPrivateEndpointConnectionListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual BookshelfPrivateEndpointConnectionListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfPrivateEndpointConnectionListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfPrivateEndpointConnectionListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static BookshelfPrivateEndpointConnectionListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBookshelfPrivateEndpointConnectionListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (BookshelfPrivateEndpointConnectionData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfPrivateEndpointConnectionListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual BookshelfPrivateEndpointConnectionListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateEndpointConnectionListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfPrivateEndpointConnectionListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfPrivateEndpointConnectionListResult DeserializeBookshelfPrivateEndpointConnectionListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(BookshelfPrivateEndpointConnectionData.DeserializeBookshelfPrivateEndpointConnectionData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfPrivateEndpointConnectionListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateEndpointConnectionListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateEndpointConnectionListResult.cs new file mode 100644 index 000000000000..3da4eb68f13b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateEndpointConnectionListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a BookshelfPrivateEndpointConnection list operation. + internal partial class BookshelfPrivateEndpointConnectionListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The BookshelfPrivateEndpointConnection items on this page. + internal BookshelfPrivateEndpointConnectionListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The BookshelfPrivateEndpointConnection items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal BookshelfPrivateEndpointConnectionListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The BookshelfPrivateEndpointConnection items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateLinkResourceListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateLinkResourceListResult.Serialization.cs new file mode 100644 index 000000000000..a4706a6e8f22 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateLinkResourceListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a BookshelfPrivateLinkResource list operation. + internal partial class BookshelfPrivateLinkResourceListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal BookshelfPrivateLinkResourceListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual BookshelfPrivateLinkResourceListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfPrivateLinkResourceListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfPrivateLinkResourceListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static BookshelfPrivateLinkResourceListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeBookshelfPrivateLinkResourceListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (BookshelfPrivateLinkResourceData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfPrivateLinkResourceListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual BookshelfPrivateLinkResourceListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfPrivateLinkResourceListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfPrivateLinkResourceListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfPrivateLinkResourceListResult DeserializeBookshelfPrivateLinkResourceListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(BookshelfPrivateLinkResourceData.DeserializeBookshelfPrivateLinkResourceData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfPrivateLinkResourceListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateLinkResourceListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateLinkResourceListResult.cs new file mode 100644 index 000000000000..e6c248860244 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfPrivateLinkResourceListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a BookshelfPrivateLinkResource list operation. + internal partial class BookshelfPrivateLinkResourceListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The BookshelfPrivateLinkResource items on this page. + internal BookshelfPrivateLinkResourceListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The BookshelfPrivateLinkResource items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal BookshelfPrivateLinkResourceListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The BookshelfPrivateLinkResource items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfProperties.Serialization.cs new file mode 100644 index 000000000000..b91102626a38 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfProperties.Serialization.cs @@ -0,0 +1,355 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Bookshelf properties. + public partial class BookshelfProperties : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual BookshelfProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeBookshelfProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(BookshelfProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(BookshelfProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + BookshelfProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + if (Optional.IsCollectionDefined(WorkloadIdentities)) + { + writer.WritePropertyName("workloadIdentities"u8); + writer.WriteStartObject(); + foreach (var item in WorkloadIdentities) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + ((IJsonModel)item.Value).Write(writer, options); + } + writer.WriteEndObject(); + } + if (Optional.IsDefined(CustomerManagedKeys)) + { + writer.WritePropertyName("customerManagedKeys"u8); + writer.WriteStringValue(CustomerManagedKeys.Value.ToString()); + } + if (Optional.IsDefined(KeyVaultProperties)) + { + writer.WritePropertyName("keyVaultProperties"u8); + writer.WriteObjectValue(KeyVaultProperties, options); + } + if (Optional.IsDefined(LogAnalyticsClusterId)) + { + writer.WritePropertyName("logAnalyticsClusterId"u8); + writer.WriteStringValue(LogAnalyticsClusterId); + } + if (options.Format != "W" && Optional.IsCollectionDefined(PrivateEndpointConnections)) + { + writer.WritePropertyName("privateEndpointConnections"u8); + writer.WriteStartArray(); + foreach (DiscoveryPrivateEndpointConnection item in PrivateEndpointConnections) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(PublicNetworkAccess)) + { + writer.WritePropertyName("publicNetworkAccess"u8); + writer.WriteStringValue(PublicNetworkAccess.Value.ToString()); + } + if (Optional.IsDefined(PrivateEndpointSubnetId)) + { + writer.WritePropertyName("privateEndpointSubnetId"u8); + writer.WriteStringValue(PrivateEndpointSubnetId); + } + if (Optional.IsDefined(SearchSubnetId)) + { + writer.WritePropertyName("searchSubnetId"u8); + writer.WriteStringValue(SearchSubnetId); + } + if (options.Format != "W" && Optional.IsDefined(ManagedResourceGroup)) + { + writer.WritePropertyName("managedResourceGroup"u8); + writer.WriteStringValue(ManagedResourceGroup); + } + if (options.Format != "W" && Optional.IsDefined(ManagedOnBehalfOfConfiguration)) + { + writer.WritePropertyName("managedOnBehalfOfConfiguration"u8); + writer.WriteObjectValue(ManagedOnBehalfOfConfiguration, options); + } + if (options.Format != "W" && Optional.IsDefined(BookshelfUri)) + { + writer.WritePropertyName("bookshelfUri"u8); + writer.WriteStringValue(BookshelfUri.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + BookshelfProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual BookshelfProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(BookshelfProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeBookshelfProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static BookshelfProperties DeserializeBookshelfProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + IDictionary workloadIdentities = default; + CustomerManagedKeys? customerManagedKeys = default; + BookshelfKeyVaultProperties keyVaultProperties = default; + ResourceIdentifier logAnalyticsClusterId = default; + IReadOnlyList privateEndpointConnections = default; + PublicNetworkAccess? publicNetworkAccess = default; + ResourceIdentifier privateEndpointSubnetId = default; + ResourceIdentifier searchSubnetId = default; + string managedResourceGroup = default; + WithMoboBrokerResources managedOnBehalfOfConfiguration = default; + Uri bookshelfUri = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("workloadIdentities"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop0.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default)); + } + } + workloadIdentities = dictionary; + continue; + } + if (prop.NameEquals("customerManagedKeys"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + customerManagedKeys = new CustomerManagedKeys(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("keyVaultProperties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + keyVaultProperties = BookshelfKeyVaultProperties.DeserializeBookshelfKeyVaultProperties(prop.Value, options); + continue; + } + if (prop.NameEquals("logAnalyticsClusterId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + logAnalyticsClusterId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("privateEndpointConnections"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(DiscoveryPrivateEndpointConnection.DeserializeDiscoveryPrivateEndpointConnection(item, options)); + } + privateEndpointConnections = array; + continue; + } + if (prop.NameEquals("publicNetworkAccess"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + publicNetworkAccess = new PublicNetworkAccess(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("privateEndpointSubnetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + privateEndpointSubnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("searchSubnetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + searchSubnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("managedResourceGroup"u8)) + { + managedResourceGroup = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("managedOnBehalfOfConfiguration"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + managedOnBehalfOfConfiguration = WithMoboBrokerResources.DeserializeWithMoboBrokerResources(prop.Value, options); + continue; + } + if (prop.NameEquals("bookshelfUri"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + bookshelfUri = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new BookshelfProperties( + provisioningState, + workloadIdentities ?? new ChangeTrackingDictionary(), + customerManagedKeys, + keyVaultProperties, + logAnalyticsClusterId, + privateEndpointConnections ?? new ChangeTrackingList(), + publicNetworkAccess, + privateEndpointSubnetId, + searchSubnetId, + managedResourceGroup, + managedOnBehalfOfConfiguration, + bookshelfUri, + additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfProperties.cs new file mode 100644 index 000000000000..477a94da8557 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/BookshelfProperties.cs @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Bookshelf properties. + public partial class BookshelfProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public BookshelfProperties() + { + WorkloadIdentities = new ChangeTrackingDictionary(); + PrivateEndpointConnections = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// User assigned identity IDs to be used by knowledgebase workloads. The key value must be the resource ID of the identity resource. + /// Whether or not to use a customer managed key when encrypting data at rest. + /// The key to use for encrypting data at rest when customer managed keys are enabled. Required if Customer Managed Keys is enabled. + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + /// List of private endpoint connections. + /// Whether or not public network access is allowed for this resource. For security reasons, it is recommended to disable it whenever possible. + /// Private Endpoint Subnet ID for private endpoint connections. + /// Search Subnet ID for search resources. + /// The resource group for resources managed on behalf of customer. + /// Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. + /// The bookshelf data plane API URI. + /// Keeps track of any properties unknown to the library. + internal BookshelfProperties(ProvisioningState? provisioningState, IDictionary workloadIdentities, CustomerManagedKeys? customerManagedKeys, BookshelfKeyVaultProperties keyVaultProperties, ResourceIdentifier logAnalyticsClusterId, IReadOnlyList privateEndpointConnections, PublicNetworkAccess? publicNetworkAccess, ResourceIdentifier privateEndpointSubnetId, ResourceIdentifier searchSubnetId, string managedResourceGroup, WithMoboBrokerResources managedOnBehalfOfConfiguration, Uri bookshelfUri, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + WorkloadIdentities = workloadIdentities; + CustomerManagedKeys = customerManagedKeys; + KeyVaultProperties = keyVaultProperties; + LogAnalyticsClusterId = logAnalyticsClusterId; + PrivateEndpointConnections = privateEndpointConnections; + PublicNetworkAccess = publicNetworkAccess; + PrivateEndpointSubnetId = privateEndpointSubnetId; + SearchSubnetId = searchSubnetId; + ManagedResourceGroup = managedResourceGroup; + ManagedOnBehalfOfConfiguration = managedOnBehalfOfConfiguration; + BookshelfUri = bookshelfUri; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// User assigned identity IDs to be used by knowledgebase workloads. The key value must be the resource ID of the identity resource. + public IDictionary WorkloadIdentities { get; } + + /// Whether or not to use a customer managed key when encrypting data at rest. + public CustomerManagedKeys? CustomerManagedKeys { get; set; } + + /// The key to use for encrypting data at rest when customer managed keys are enabled. Required if Customer Managed Keys is enabled. + public BookshelfKeyVaultProperties KeyVaultProperties { get; set; } + + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + public ResourceIdentifier LogAnalyticsClusterId { get; set; } + + /// List of private endpoint connections. + public IReadOnlyList PrivateEndpointConnections { get; } + + /// Whether or not public network access is allowed for this resource. For security reasons, it is recommended to disable it whenever possible. + public PublicNetworkAccess? PublicNetworkAccess { get; set; } + + /// Private Endpoint Subnet ID for private endpoint connections. + public ResourceIdentifier PrivateEndpointSubnetId { get; set; } + + /// Search Subnet ID for search resources. + public ResourceIdentifier SearchSubnetId { get; set; } + + /// The resource group for resources managed on behalf of customer. + public string ManagedResourceGroup { get; } + + /// Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. + internal WithMoboBrokerResources ManagedOnBehalfOfConfiguration { get; } + + /// The bookshelf data plane API URI. + public Uri BookshelfUri { get; } + + /// Managed-On-Behalf-Of broker resources. + public IReadOnlyList ManagedOnBehalfOfMoboBrokerResources + { + get + { + return ManagedOnBehalfOfConfiguration.MoboBrokerResources; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentListResult.Serialization.cs new file mode 100644 index 000000000000..23f67cdaa072 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a ChatModelDeployment list operation. + internal partial class ChatModelDeploymentListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ChatModelDeploymentListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ChatModelDeploymentListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeChatModelDeploymentListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ChatModelDeploymentListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ChatModelDeploymentListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ChatModelDeploymentListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static ChatModelDeploymentListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeChatModelDeploymentListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatModelDeploymentListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (ChatModelDeploymentData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ChatModelDeploymentListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ChatModelDeploymentListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatModelDeploymentListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeChatModelDeploymentListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ChatModelDeploymentListResult DeserializeChatModelDeploymentListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ChatModelDeploymentData.DeserializeChatModelDeploymentData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ChatModelDeploymentListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentListResult.cs new file mode 100644 index 000000000000..cb92633a3baf --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a ChatModelDeployment list operation. + internal partial class ChatModelDeploymentListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The ChatModelDeployment items on this page. + internal ChatModelDeploymentListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The ChatModelDeployment items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal ChatModelDeploymentListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The ChatModelDeployment items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentProperties.Serialization.cs new file mode 100644 index 000000000000..0657578fe589 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentProperties.Serialization.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Defines a deployment binding a specific model family to a user-defined deployment name for chat inference. + public partial class ChatModelDeploymentProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ChatModelDeploymentProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ChatModelDeploymentProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeChatModelDeploymentProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ChatModelDeploymentProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ChatModelDeploymentProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ChatModelDeploymentProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatModelDeploymentProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("modelFormat"u8); + writer.WriteStringValue(ModelFormat); + writer.WritePropertyName("modelName"u8); + writer.WriteStringValue(ModelName); + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ChatModelDeploymentProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ChatModelDeploymentProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ChatModelDeploymentProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeChatModelDeploymentProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ChatModelDeploymentProperties DeserializeChatModelDeploymentProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + string modelFormat = default; + string modelName = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("modelFormat"u8)) + { + modelFormat = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("modelName"u8)) + { + modelName = prop.Value.GetString(); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ChatModelDeploymentProperties(provisioningState, modelFormat, modelName, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentProperties.cs new file mode 100644 index 000000000000..97077dc5362f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ChatModelDeploymentProperties.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Defines a deployment binding a specific model family to a user-defined deployment name for chat inference. + public partial class ChatModelDeploymentProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// Model format as published by the provider. Verify supported formats per region using the Model Catalog API. + /// Canonical provider model name available in the selected region. Verify supported values per region using the Model Catalog API. + /// or is null. + public ChatModelDeploymentProperties(string modelFormat, string modelName) + { + Argument.AssertNotNull(modelFormat, nameof(modelFormat)); + Argument.AssertNotNull(modelName, nameof(modelName)); + + ModelFormat = modelFormat; + ModelName = modelName; + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// Model format as published by the provider. Verify supported formats per region using the Model Catalog API. + /// Canonical provider model name available in the selected region. Verify supported values per region using the Model Catalog API. + /// Keeps track of any properties unknown to the library. + internal ChatModelDeploymentProperties(ProvisioningState? provisioningState, string modelFormat, string modelName, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + ModelFormat = modelFormat; + ModelName = modelName; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// Model format as published by the provider. Verify supported formats per region using the Model Catalog API. + public string ModelFormat { get; set; } + + /// Canonical provider model name available in the selected region. Verify supported values per region using the Model Catalog API. + public string ModelName { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/CustomerManagedKeys.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/CustomerManagedKeys.cs new file mode 100644 index 000000000000..83329684121a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/CustomerManagedKeys.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// State of customer managed key usage. + public readonly partial struct CustomerManagedKeys : IEquatable + { + private readonly string _value; + /// Customer managed keys are enabled. + private const string EnabledValue = "Enabled"; + /// Customer managed keys are disabled. + private const string DisabledValue = "Disabled"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public CustomerManagedKeys(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Customer managed keys are enabled. + public static CustomerManagedKeys Enabled { get; } = new CustomerManagedKeys(EnabledValue); + + /// Customer managed keys are disabled. + public static CustomerManagedKeys Disabled { get; } = new CustomerManagedKeys(DisabledValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(CustomerManagedKeys left, CustomerManagedKeys right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(CustomerManagedKeys left, CustomerManagedKeys right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator CustomerManagedKeys(string value) => new CustomerManagedKeys(value); + + /// Converts a string to a . + /// The value. + public static implicit operator CustomerManagedKeys?(string value) => value == null ? null : new CustomerManagedKeys(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is CustomerManagedKeys other && Equals(other); + + /// + public bool Equals(CustomerManagedKeys other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnection.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnection.Serialization.cs new file mode 100644 index 000000000000..b50977b6aab4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnection.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The private endpoint connection resource. + public partial class DiscoveryPrivateEndpointConnection : ResourceData, IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeDiscoveryPrivateEndpointConnection(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DiscoveryPrivateEndpointConnection)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(DiscoveryPrivateEndpointConnection)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + DiscoveryPrivateEndpointConnection IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (DiscoveryPrivateEndpointConnection)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DiscoveryPrivateEndpointConnection)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + DiscoveryPrivateEndpointConnection IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (DiscoveryPrivateEndpointConnection)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DiscoveryPrivateEndpointConnection)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDiscoveryPrivateEndpointConnection(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static DiscoveryPrivateEndpointConnection DeserializeDiscoveryPrivateEndpointConnection(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + PrivateEndpointConnectionProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = PrivateEndpointConnectionProperties.DeserializePrivateEndpointConnectionProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new DiscoveryPrivateEndpointConnection( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnection.cs new file mode 100644 index 000000000000..b4dfc5f9e4cc --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnection.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The private endpoint connection resource. + public partial class DiscoveryPrivateEndpointConnection : ResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + internal DiscoveryPrivateEndpointConnection() + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// The private endpoint connection properties. + internal DiscoveryPrivateEndpointConnection(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, PrivateEndpointConnectionProperties properties) : base(id, name, resourceType, systemData) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The private endpoint connection properties. + public PrivateEndpointConnectionProperties Properties { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnectionProvisioningState.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnectionProvisioningState.cs new file mode 100644 index 000000000000..15c5826bfe5f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointConnectionProvisioningState.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The current provisioning state. + public readonly partial struct DiscoveryPrivateEndpointConnectionProvisioningState : IEquatable + { + private readonly string _value; + /// Connection has been provisioned. + private const string SucceededValue = "Succeeded"; + /// Connection is being created. + private const string CreatingValue = "Creating"; + /// Connection is being deleted. + private const string DeletingValue = "Deleting"; + /// Connection provisioning has failed. + private const string FailedValue = "Failed"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public DiscoveryPrivateEndpointConnectionProvisioningState(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Connection has been provisioned. + public static DiscoveryPrivateEndpointConnectionProvisioningState Succeeded { get; } = new DiscoveryPrivateEndpointConnectionProvisioningState(SucceededValue); + + /// Connection is being created. + public static DiscoveryPrivateEndpointConnectionProvisioningState Creating { get; } = new DiscoveryPrivateEndpointConnectionProvisioningState(CreatingValue); + + /// Connection is being deleted. + public static DiscoveryPrivateEndpointConnectionProvisioningState Deleting { get; } = new DiscoveryPrivateEndpointConnectionProvisioningState(DeletingValue); + + /// Connection provisioning has failed. + public static DiscoveryPrivateEndpointConnectionProvisioningState Failed { get; } = new DiscoveryPrivateEndpointConnectionProvisioningState(FailedValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(DiscoveryPrivateEndpointConnectionProvisioningState left, DiscoveryPrivateEndpointConnectionProvisioningState right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(DiscoveryPrivateEndpointConnectionProvisioningState left, DiscoveryPrivateEndpointConnectionProvisioningState right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator DiscoveryPrivateEndpointConnectionProvisioningState(string value) => new DiscoveryPrivateEndpointConnectionProvisioningState(value); + + /// Converts a string to a . + /// The value. + public static implicit operator DiscoveryPrivateEndpointConnectionProvisioningState?(string value) => value == null ? null : new DiscoveryPrivateEndpointConnectionProvisioningState(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is DiscoveryPrivateEndpointConnectionProvisioningState other && Equals(other); + + /// + public bool Equals(DiscoveryPrivateEndpointConnectionProvisioningState other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointServiceConnectionStatus.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointServiceConnectionStatus.cs new file mode 100644 index 000000000000..46e77b7968b5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateEndpointServiceConnectionStatus.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The private endpoint connection status. + public readonly partial struct DiscoveryPrivateEndpointServiceConnectionStatus : IEquatable + { + private readonly string _value; + /// Connection waiting for approval or rejection. + private const string PendingValue = "Pending"; + /// Connection approved. + private const string ApprovedValue = "Approved"; + /// Connection Rejected. + private const string RejectedValue = "Rejected"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public DiscoveryPrivateEndpointServiceConnectionStatus(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Connection waiting for approval or rejection. + public static DiscoveryPrivateEndpointServiceConnectionStatus Pending { get; } = new DiscoveryPrivateEndpointServiceConnectionStatus(PendingValue); + + /// Connection approved. + public static DiscoveryPrivateEndpointServiceConnectionStatus Approved { get; } = new DiscoveryPrivateEndpointServiceConnectionStatus(ApprovedValue); + + /// Connection Rejected. + public static DiscoveryPrivateEndpointServiceConnectionStatus Rejected { get; } = new DiscoveryPrivateEndpointServiceConnectionStatus(RejectedValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(DiscoveryPrivateEndpointServiceConnectionStatus left, DiscoveryPrivateEndpointServiceConnectionStatus right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(DiscoveryPrivateEndpointServiceConnectionStatus left, DiscoveryPrivateEndpointServiceConnectionStatus right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator DiscoveryPrivateEndpointServiceConnectionStatus(string value) => new DiscoveryPrivateEndpointServiceConnectionStatus(value); + + /// Converts a string to a . + /// The value. + public static implicit operator DiscoveryPrivateEndpointServiceConnectionStatus?(string value) => value == null ? null : new DiscoveryPrivateEndpointServiceConnectionStatus(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is DiscoveryPrivateEndpointServiceConnectionStatus other && Equals(other); + + /// + public bool Equals(DiscoveryPrivateEndpointServiceConnectionStatus other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkResourceProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkResourceProperties.Serialization.cs new file mode 100644 index 000000000000..746a8a956729 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkResourceProperties.Serialization.cs @@ -0,0 +1,215 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Properties of a private link resource. + public partial class DiscoveryPrivateLinkResourceProperties : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual DiscoveryPrivateLinkResourceProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeDiscoveryPrivateLinkResourceProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkResourceProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkResourceProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + DiscoveryPrivateLinkResourceProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkResourceProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(GroupId)) + { + writer.WritePropertyName("groupId"u8); + writer.WriteStringValue(GroupId); + } + if (options.Format != "W" && Optional.IsCollectionDefined(RequiredMembers)) + { + writer.WritePropertyName("requiredMembers"u8); + writer.WriteStartArray(); + foreach (string item in RequiredMembers) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(RequiredZoneNames)) + { + writer.WritePropertyName("requiredZoneNames"u8); + writer.WriteStartArray(); + foreach (string item in RequiredZoneNames) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + DiscoveryPrivateLinkResourceProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual DiscoveryPrivateLinkResourceProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkResourceProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDiscoveryPrivateLinkResourceProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static DiscoveryPrivateLinkResourceProperties DeserializeDiscoveryPrivateLinkResourceProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string groupId = default; + IReadOnlyList requiredMembers = default; + IList requiredZoneNames = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("groupId"u8)) + { + groupId = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("requiredMembers"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(item.GetString()); + } + } + requiredMembers = array; + continue; + } + if (prop.NameEquals("requiredZoneNames"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(item.GetString()); + } + } + requiredZoneNames = array; + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new DiscoveryPrivateLinkResourceProperties(groupId, requiredMembers ?? new ChangeTrackingList(), requiredZoneNames ?? new ChangeTrackingList(), additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkResourceProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkResourceProperties.cs new file mode 100644 index 000000000000..364c912eef22 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkResourceProperties.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Properties of a private link resource. + public partial class DiscoveryPrivateLinkResourceProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + internal DiscoveryPrivateLinkResourceProperties() + { + RequiredMembers = new ChangeTrackingList(); + RequiredZoneNames = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The private link resource group id. + /// The private link resource required member names. + /// The private link resource private link DNS zone name. + /// Keeps track of any properties unknown to the library. + internal DiscoveryPrivateLinkResourceProperties(string groupId, IReadOnlyList requiredMembers, IList requiredZoneNames, IDictionary additionalBinaryDataProperties) + { + GroupId = groupId; + RequiredMembers = requiredMembers; + RequiredZoneNames = requiredZoneNames; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The private link resource group id. + public string GroupId { get; } + + /// The private link resource required member names. + public IReadOnlyList RequiredMembers { get; } + + /// The private link resource private link DNS zone name. + public IList RequiredZoneNames { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkServiceConnectionState.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkServiceConnectionState.Serialization.cs new file mode 100644 index 000000000000..5c33b97678c3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkServiceConnectionState.Serialization.cs @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// A collection of information about the state of the connection between service consumer and provider. + public partial class DiscoveryPrivateLinkServiceConnectionState : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual DiscoveryPrivateLinkServiceConnectionState PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeDiscoveryPrivateLinkServiceConnectionState(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkServiceConnectionState)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkServiceConnectionState)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + DiscoveryPrivateLinkServiceConnectionState IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkServiceConnectionState)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(Status)) + { + writer.WritePropertyName("status"u8); + writer.WriteStringValue(Status.Value.ToString()); + } + if (Optional.IsDefined(Description)) + { + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + } + if (Optional.IsDefined(ActionsRequired)) + { + writer.WritePropertyName("actionsRequired"u8); + writer.WriteStringValue(ActionsRequired); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + DiscoveryPrivateLinkServiceConnectionState IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual DiscoveryPrivateLinkServiceConnectionState JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(DiscoveryPrivateLinkServiceConnectionState)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeDiscoveryPrivateLinkServiceConnectionState(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static DiscoveryPrivateLinkServiceConnectionState DeserializeDiscoveryPrivateLinkServiceConnectionState(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + DiscoveryPrivateEndpointServiceConnectionStatus? status = default; + string description = default; + string actionsRequired = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("status"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + status = new DiscoveryPrivateEndpointServiceConnectionStatus(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("description"u8)) + { + description = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("actionsRequired"u8)) + { + actionsRequired = prop.Value.GetString(); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new DiscoveryPrivateLinkServiceConnectionState(status, description, actionsRequired, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkServiceConnectionState.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkServiceConnectionState.cs new file mode 100644 index 000000000000..fa1ff90bf4bf --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/DiscoveryPrivateLinkServiceConnectionState.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// A collection of information about the state of the connection between service consumer and provider. + public partial class DiscoveryPrivateLinkServiceConnectionState + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public DiscoveryPrivateLinkServiceConnectionState() + { + } + + /// Initializes a new instance of . + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + /// The reason for approval/rejection of the connection. + /// A message indicating if changes on the service provider require any updates on the consumer. + /// Keeps track of any properties unknown to the library. + internal DiscoveryPrivateLinkServiceConnectionState(DiscoveryPrivateEndpointServiceConnectionStatus? status, string description, string actionsRequired, IDictionary additionalBinaryDataProperties) + { + Status = status; + Description = description; + ActionsRequired = actionsRequired; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + public DiscoveryPrivateEndpointServiceConnectionStatus? Status { get; set; } + + /// The reason for approval/rejection of the connection. + public string Description { get; set; } + + /// A message indicating if changes on the service provider require any updates on the consumer. + public string ActionsRequired { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/Identity.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/Identity.Serialization.cs new file mode 100644 index 000000000000..94c17a9c35f2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/Identity.Serialization.cs @@ -0,0 +1,174 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// For user assigned identity resource property. + public partial class Identity : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal Identity() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual Identity PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeIdentity(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(Identity)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(Identity)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + Identity IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Identity)} does not support writing '{format}' format."); + } + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + if (options.Format != "W" && Optional.IsDefined(PrincipalId)) + { + writer.WritePropertyName("principalId"u8); + writer.WriteStringValue(PrincipalId.Value); + } + if (options.Format != "W" && Optional.IsDefined(ClientId)) + { + writer.WritePropertyName("clientId"u8); + writer.WriteStringValue(ClientId.Value); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + Identity IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual Identity JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(Identity)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeIdentity(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static Identity DeserializeIdentity(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + Guid? principalId = default; + Guid? clientId = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("principalId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + principalId = new Guid(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("clientId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + clientId = new Guid(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new Identity(id, principalId, clientId, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/Identity.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/Identity.cs new file mode 100644 index 000000000000..84cd46bb182b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/Identity.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// For user assigned identity resource property. + public partial class Identity + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The resource ID of the user assigned identity. + /// is null. + public Identity(ResourceIdentifier id) + { + Argument.AssertNotNull(id, nameof(id)); + + Id = id; + } + + /// Initializes a new instance of . + /// The resource ID of the user assigned identity. + /// The principal ID of the assigned identity. + /// The client ID of the assigned identity. + /// Keeps track of any properties unknown to the library. + internal Identity(ResourceIdentifier id, Guid? principalId, Guid? clientId, IDictionary additionalBinaryDataProperties) + { + Id = id; + PrincipalId = principalId; + ClientId = clientId; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The resource ID of the user assigned identity. + public ResourceIdentifier Id { get; set; } + + /// The principal ID of the assigned identity. + public Guid? PrincipalId { get; } + + /// The client ID of the assigned identity. + public Guid? ClientId { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/KeyVaultProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/KeyVaultProperties.Serialization.cs new file mode 100644 index 000000000000..af57b7f42bb4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/KeyVaultProperties.Serialization.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// For Key Vault Key references. + public partial class KeyVaultProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal KeyVaultProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual KeyVaultProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeKeyVaultProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(KeyVaultProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(KeyVaultProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + KeyVaultProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(KeyVaultProperties)} does not support writing '{format}' format."); + } + writer.WritePropertyName("keyVaultUri"u8); + writer.WriteStringValue(KeyVaultUri.AbsoluteUri); + writer.WritePropertyName("keyName"u8); + writer.WriteStringValue(KeyName); + if (Optional.IsDefined(KeyVersion)) + { + writer.WritePropertyName("keyVersion"u8); + writer.WriteStringValue(KeyVersion); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + KeyVaultProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual KeyVaultProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(KeyVaultProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeKeyVaultProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static KeyVaultProperties DeserializeKeyVaultProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Uri keyVaultUri = default; + string keyName = default; + string keyVersion = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("keyVaultUri"u8)) + { + keyVaultUri = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (prop.NameEquals("keyName"u8)) + { + keyName = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("keyVersion"u8)) + { + keyVersion = prop.Value.GetString(); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new KeyVaultProperties(keyVaultUri, keyName, keyVersion, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/KeyVaultProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/KeyVaultProperties.cs new file mode 100644 index 000000000000..ca16981df1e1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/KeyVaultProperties.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// For Key Vault Key references. + public partial class KeyVaultProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Key Vault URI. + /// The Key Name in Key Vault. + /// or is null. + public KeyVaultProperties(Uri keyVaultUri, string keyName) + { + Argument.AssertNotNull(keyVaultUri, nameof(keyVaultUri)); + Argument.AssertNotNull(keyName, nameof(keyName)); + + KeyVaultUri = keyVaultUri; + KeyName = keyName; + } + + /// Initializes a new instance of . + /// The Key Vault URI. + /// The Key Name in Key Vault. + /// The Key Version in Key Vault. + /// Keeps track of any properties unknown to the library. + internal KeyVaultProperties(Uri keyVaultUri, string keyName, string keyVersion, IDictionary additionalBinaryDataProperties) + { + KeyVaultUri = keyVaultUri; + KeyName = keyName; + KeyVersion = keyVersion; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Key Vault URI. + public Uri KeyVaultUri { get; set; } + + /// The Key Name in Key Vault. + public string KeyName { get; set; } + + /// The Key Version in Key Vault. + public string KeyVersion { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/MoboBrokerResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/MoboBrokerResource.Serialization.cs new file mode 100644 index 000000000000..f2be3afc2cb6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/MoboBrokerResource.Serialization.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Managed-On-Behalf-Of broker resource. This resource is created by the Resource Provider to manage some resources on behalf of the user. + public partial class MoboBrokerResource : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual MoboBrokerResource PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeMoboBrokerResource(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(MoboBrokerResource)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(MoboBrokerResource)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + MoboBrokerResource IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MoboBrokerResource)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(Id)) + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + MoboBrokerResource IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual MoboBrokerResource JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(MoboBrokerResource)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeMoboBrokerResource(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static MoboBrokerResource DeserializeMoboBrokerResource(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new MoboBrokerResource(id, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/MoboBrokerResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/MoboBrokerResource.cs new file mode 100644 index 000000000000..b8769f407ef0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/MoboBrokerResource.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Managed-On-Behalf-Of broker resource. This resource is created by the Resource Provider to manage some resources on behalf of the user. + public partial class MoboBrokerResource + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + internal MoboBrokerResource() + { + } + + /// Initializes a new instance of . + /// Resource identifier of a Managed-On-Behalf-Of broker resource. + /// Keeps track of any properties unknown to the library. + internal MoboBrokerResource(ResourceIdentifier id, IDictionary additionalBinaryDataProperties) + { + Id = id; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// Resource identifier of a Managed-On-Behalf-Of broker resource. + public ResourceIdentifier Id { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NetworkEgressType.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NetworkEgressType.cs new file mode 100644 index 000000000000..6767096870b2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NetworkEgressType.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Supported network egress types. + public readonly partial struct NetworkEgressType : IEquatable + { + private readonly string _value; + /// Public outbound network via load balancer (Default). + private const string LoadBalancerValue = "LoadBalancer"; + /// No default outbound. + private const string NoneValue = "None"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public NetworkEgressType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Public outbound network via load balancer (Default). + public static NetworkEgressType LoadBalancer { get; } = new NetworkEgressType(LoadBalancerValue); + + /// No default outbound. + public static NetworkEgressType None { get; } = new NetworkEgressType(NoneValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(NetworkEgressType left, NetworkEgressType right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(NetworkEgressType left, NetworkEgressType right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator NetworkEgressType(string value) => new NetworkEgressType(value); + + /// Converts a string to a . + /// The value. + public static implicit operator NetworkEgressType?(string value) => value == null ? null : new NetworkEgressType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is NetworkEgressType other && Equals(other); + + /// + public bool Equals(NetworkEgressType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolListResult.Serialization.cs new file mode 100644 index 000000000000..10e39012211d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a NodePool list operation. + internal partial class NodePoolListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal NodePoolListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual NodePoolListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeNodePoolListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(NodePoolListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(NodePoolListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + NodePoolListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static NodePoolListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeNodePoolListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(NodePoolListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (NodePoolData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + NodePoolListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual NodePoolListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(NodePoolListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeNodePoolListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static NodePoolListResult DeserializeNodePoolListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(NodePoolData.DeserializeNodePoolData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new NodePoolListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolListResult.cs new file mode 100644 index 000000000000..19a19819a7b3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a NodePool list operation. + internal partial class NodePoolListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The NodePool items on this page. + internal NodePoolListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The NodePool items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal NodePoolListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The NodePool items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolProperties.Serialization.cs new file mode 100644 index 000000000000..4702b537c7ce --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolProperties.Serialization.cs @@ -0,0 +1,212 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// NodePool properties. + public partial class NodePoolProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal NodePoolProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual NodePoolProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeNodePoolProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(NodePoolProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(NodePoolProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + NodePoolProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(NodePoolProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("subnetId"u8); + writer.WriteStringValue(SubnetId); + writer.WritePropertyName("vmSize"u8); + writer.WriteStringValue(VmSize.ToString()); + writer.WritePropertyName("maxNodeCount"u8); + writer.WriteNumberValue(MaxNodeCount); + if (Optional.IsDefined(MinNodeCount)) + { + writer.WritePropertyName("minNodeCount"u8); + writer.WriteNumberValue(MinNodeCount.Value); + } + if (Optional.IsDefined(ScaleSetPriority)) + { + writer.WritePropertyName("scaleSetPriority"u8); + writer.WriteStringValue(ScaleSetPriority.Value.ToString()); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + NodePoolProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual NodePoolProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(NodePoolProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeNodePoolProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static NodePoolProperties DeserializeNodePoolProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + ResourceIdentifier subnetId = default; + VmSize vmSize = default; + int maxNodeCount = default; + int? minNodeCount = default; + ScaleSetPriority? scaleSetPriority = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("subnetId"u8)) + { + subnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("vmSize"u8)) + { + vmSize = new VmSize(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("maxNodeCount"u8)) + { + maxNodeCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("minNodeCount"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + minNodeCount = prop.Value.GetInt32(); + continue; + } + if (prop.NameEquals("scaleSetPriority"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + scaleSetPriority = new ScaleSetPriority(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new NodePoolProperties( + provisioningState, + subnetId, + vmSize, + maxNodeCount, + minNodeCount, + scaleSetPriority, + additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolProperties.cs new file mode 100644 index 000000000000..d78dc510dfb0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/NodePoolProperties.cs @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// NodePool properties. + public partial class NodePoolProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The node pool subnet. + /// The size of the underlying Azure VM. + /// The maximum number of nodes. + /// is null. + public NodePoolProperties(ResourceIdentifier subnetId, VmSize vmSize, int maxNodeCount) + { + Argument.AssertNotNull(subnetId, nameof(subnetId)); + + SubnetId = subnetId; + VmSize = vmSize; + MaxNodeCount = maxNodeCount; + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// The node pool subnet. + /// The size of the underlying Azure VM. + /// The maximum number of nodes. + /// The minimum number of nodes. + /// The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + /// Keeps track of any properties unknown to the library. + internal NodePoolProperties(ProvisioningState? provisioningState, ResourceIdentifier subnetId, VmSize vmSize, int maxNodeCount, int? minNodeCount, ScaleSetPriority? scaleSetPriority, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + SubnetId = subnetId; + VmSize = vmSize; + MaxNodeCount = maxNodeCount; + MinNodeCount = minNodeCount; + ScaleSetPriority = scaleSetPriority; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// The node pool subnet. + public ResourceIdentifier SubnetId { get; set; } + + /// The size of the underlying Azure VM. + public VmSize VmSize { get; set; } + + /// The maximum number of nodes. + public int MaxNodeCount { get; set; } + + /// The minimum number of nodes. + public int? MinNodeCount { get; set; } + + /// The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + public ScaleSetPriority? ScaleSetPriority { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpoint.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpoint.Serialization.cs new file mode 100644 index 000000000000..c3c9207e9cf0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpoint.Serialization.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The private endpoint resource. + internal partial class PrivateEndpoint : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual PrivateEndpoint PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializePrivateEndpoint(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(PrivateEndpoint)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(PrivateEndpoint)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + PrivateEndpoint IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(PrivateEndpoint)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(Id)) + { + writer.WritePropertyName("id"u8); + writer.WriteStringValue(Id); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + PrivateEndpoint IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual PrivateEndpoint JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(PrivateEndpoint)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializePrivateEndpoint(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static PrivateEndpoint DeserializePrivateEndpoint(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new PrivateEndpoint(id, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpoint.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpoint.cs new file mode 100644 index 000000000000..348add626d7f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpoint.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The private endpoint resource. + internal partial class PrivateEndpoint + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public PrivateEndpoint() + { + } + + /// Initializes a new instance of . + /// The resource identifier of the private endpoint. + /// Keeps track of any properties unknown to the library. + internal PrivateEndpoint(ResourceIdentifier id, IDictionary additionalBinaryDataProperties) + { + Id = id; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The resource identifier of the private endpoint. + public ResourceIdentifier Id { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpointConnectionProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpointConnectionProperties.Serialization.cs new file mode 100644 index 000000000000..3c41b18db3c3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpointConnectionProperties.Serialization.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Properties of the private endpoint connection. + public partial class PrivateEndpointConnectionProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal PrivateEndpointConnectionProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual PrivateEndpointConnectionProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializePrivateEndpointConnectionProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(PrivateEndpointConnectionProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(PrivateEndpointConnectionProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + PrivateEndpointConnectionProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(PrivateEndpointConnectionProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsCollectionDefined(GroupIds)) + { + writer.WritePropertyName("groupIds"u8); + writer.WriteStartArray(); + foreach (string item in GroupIds) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(PrivateEndpoint)) + { + writer.WritePropertyName("privateEndpoint"u8); + writer.WriteObjectValue(PrivateEndpoint, options); + } + writer.WritePropertyName("privateLinkServiceConnectionState"u8); + writer.WriteObjectValue(PrivateLinkServiceConnectionState, options); + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + PrivateEndpointConnectionProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual PrivateEndpointConnectionProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(PrivateEndpointConnectionProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializePrivateEndpointConnectionProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static PrivateEndpointConnectionProperties DeserializePrivateEndpointConnectionProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList groupIds = default; + PrivateEndpoint privateEndpoint = default; + DiscoveryPrivateLinkServiceConnectionState privateLinkServiceConnectionState = default; + DiscoveryPrivateEndpointConnectionProvisioningState? provisioningState = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("groupIds"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(item.GetString()); + } + } + groupIds = array; + continue; + } + if (prop.NameEquals("privateEndpoint"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + privateEndpoint = PrivateEndpoint.DeserializePrivateEndpoint(prop.Value, options); + continue; + } + if (prop.NameEquals("privateLinkServiceConnectionState"u8)) + { + privateLinkServiceConnectionState = DiscoveryPrivateLinkServiceConnectionState.DeserializeDiscoveryPrivateLinkServiceConnectionState(prop.Value, options); + continue; + } + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new DiscoveryPrivateEndpointConnectionProvisioningState(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new PrivateEndpointConnectionProperties(groupIds ?? new ChangeTrackingList(), privateEndpoint, privateLinkServiceConnectionState, provisioningState, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpointConnectionProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpointConnectionProperties.cs new file mode 100644 index 000000000000..b6c06c401c00 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PrivateEndpointConnectionProperties.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Properties of the private endpoint connection. + public partial class PrivateEndpointConnectionProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// A collection of information about the state of the connection between service consumer and provider. + /// is null. + public PrivateEndpointConnectionProperties(DiscoveryPrivateLinkServiceConnectionState privateLinkServiceConnectionState) + { + Argument.AssertNotNull(privateLinkServiceConnectionState, nameof(privateLinkServiceConnectionState)); + + GroupIds = new ChangeTrackingList(); + PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; + } + + /// Initializes a new instance of . + /// The group ids for the private endpoint resource. + /// The private endpoint resource. + /// A collection of information about the state of the connection between service consumer and provider. + /// The provisioning state of the private endpoint connection resource. + /// Keeps track of any properties unknown to the library. + internal PrivateEndpointConnectionProperties(IReadOnlyList groupIds, PrivateEndpoint privateEndpoint, DiscoveryPrivateLinkServiceConnectionState privateLinkServiceConnectionState, DiscoveryPrivateEndpointConnectionProvisioningState? provisioningState, IDictionary additionalBinaryDataProperties) + { + GroupIds = groupIds; + PrivateEndpoint = privateEndpoint; + PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; + ProvisioningState = provisioningState; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The group ids for the private endpoint resource. + public IReadOnlyList GroupIds { get; } + + /// The private endpoint resource. + internal PrivateEndpoint PrivateEndpoint { get; set; } + + /// A collection of information about the state of the connection between service consumer and provider. + public DiscoveryPrivateLinkServiceConnectionState PrivateLinkServiceConnectionState { get; set; } + + /// The provisioning state of the private endpoint connection resource. + public DiscoveryPrivateEndpointConnectionProvisioningState? ProvisioningState { get; } + + /// The resource identifier of the private endpoint. + public ResourceIdentifier PrivateEndpointId + { + get + { + return PrivateEndpoint is null ? default : PrivateEndpoint.Id; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectListResult.Serialization.cs new file mode 100644 index 000000000000..fe92765761cd --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Project list operation. + internal partial class ProjectListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ProjectListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ProjectListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeProjectListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ProjectListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ProjectListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ProjectListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static ProjectListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeProjectListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (ProjectData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ProjectListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ProjectListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeProjectListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ProjectListResult DeserializeProjectListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ProjectData.DeserializeProjectData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ProjectListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectListResult.cs new file mode 100644 index 000000000000..d30195fe679e --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Project list operation. + internal partial class ProjectListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Project items on this page. + internal ProjectListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Project items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal ProjectListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Project items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectProperties.Serialization.cs new file mode 100644 index 000000000000..fb2230eb00fa --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectProperties.Serialization.cs @@ -0,0 +1,213 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Project properties. + public partial class ProjectProperties : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ProjectProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeProjectProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ProjectProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ProjectProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ProjectProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + if (options.Format != "W" && Optional.IsDefined(FoundryProjectEndpoint)) + { + writer.WritePropertyName("foundryProjectEndpoint"u8); + writer.WriteStringValue(FoundryProjectEndpoint.AbsoluteUri); + } + if (Optional.IsCollectionDefined(StorageContainerIds)) + { + writer.WritePropertyName("storageContainerIds"u8); + writer.WriteStartArray(); + foreach (ResourceIdentifier item in StorageContainerIds) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(Settings)) + { + writer.WritePropertyName("settings"u8); + writer.WriteObjectValue(Settings, options); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ProjectProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ProjectProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeProjectProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ProjectProperties DeserializeProjectProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + Uri foundryProjectEndpoint = default; + IList storageContainerIds = default; + ProjectSettings settings = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("foundryProjectEndpoint"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + foundryProjectEndpoint = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (prop.NameEquals("storageContainerIds"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(new ResourceIdentifier(item.GetString())); + } + } + storageContainerIds = array; + continue; + } + if (prop.NameEquals("settings"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + settings = ProjectSettings.DeserializeProjectSettings(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ProjectProperties(provisioningState, foundryProjectEndpoint, storageContainerIds ?? new ChangeTrackingList(), settings, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectProperties.cs new file mode 100644 index 000000000000..1eacea6b163d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectProperties.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Project properties. + public partial class ProjectProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public ProjectProperties() + { + StorageContainerIds = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// Foundry project endpoint URI. + /// Allowed StorageContainers (Control plane resource references). + /// Settings for the project. + /// Keeps track of any properties unknown to the library. + internal ProjectProperties(ProvisioningState? provisioningState, Uri foundryProjectEndpoint, IList storageContainerIds, ProjectSettings settings, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + FoundryProjectEndpoint = foundryProjectEndpoint; + StorageContainerIds = storageContainerIds; + Settings = settings; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// Foundry project endpoint URI. + public Uri FoundryProjectEndpoint { get; } + + /// Allowed StorageContainers (Control plane resource references). + public IList StorageContainerIds { get; } + + /// Settings for the project. + internal ProjectSettings Settings { get; set; } + + /// Default preferences to guide AI behaviors in this project. + public string BehaviorPreferences + { + get + { + return Settings is null ? default : Settings.BehaviorPreferences; + } + set + { + if (Settings is null) + { + Settings = new ProjectSettings(); + } + Settings.BehaviorPreferences = value; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectSettings.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectSettings.Serialization.cs new file mode 100644 index 000000000000..95e8ab0bf7be --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectSettings.Serialization.cs @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Settings schema for the project. + internal partial class ProjectSettings : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ProjectSettings PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeProjectSettings(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ProjectSettings)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ProjectSettings)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ProjectSettings IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectSettings)} does not support writing '{format}' format."); + } + if (Optional.IsDefined(BehaviorPreferences)) + { + writer.WritePropertyName("behaviorPreferences"u8); + writer.WriteStringValue(BehaviorPreferences); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ProjectSettings IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ProjectSettings JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectSettings)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeProjectSettings(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ProjectSettings DeserializeProjectSettings(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string behaviorPreferences = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("behaviorPreferences"u8)) + { + behaviorPreferences = prop.Value.GetString(); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ProjectSettings(behaviorPreferences, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectSettings.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectSettings.cs new file mode 100644 index 000000000000..db8a3213e18d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProjectSettings.cs @@ -0,0 +1,36 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Settings schema for the project. + internal partial class ProjectSettings + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public ProjectSettings() + { + } + + /// Initializes a new instance of . + /// Default preferences to guide AI behaviors in this project. + /// Keeps track of any properties unknown to the library. + internal ProjectSettings(string behaviorPreferences, IDictionary additionalBinaryDataProperties) + { + BehaviorPreferences = behaviorPreferences; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// Default preferences to guide AI behaviors in this project. + public string BehaviorPreferences { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProvisioningState.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProvisioningState.cs new file mode 100644 index 000000000000..e1ff561b6c8a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ProvisioningState.cs @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The resource provisioning state. + public readonly partial struct ProvisioningState : IEquatable + { + private readonly string _value; + /// Resource has been created. + private const string SucceededValue = "Succeeded"; + /// Resource creation failed. + private const string FailedValue = "Failed"; + /// Resource creation was canceled. + private const string CanceledValue = "Canceled"; + /// The resource create request has been accepted. + private const string AcceptedValue = "Accepted"; + /// The resource is being provisioned. + private const string ProvisioningValue = "Provisioning"; + /// The resource is updating. + private const string UpdatingValue = "Updating"; + /// The resource is being deleted. + private const string DeletingValue = "Deleting"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public ProvisioningState(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Resource has been created. + public static ProvisioningState Succeeded { get; } = new ProvisioningState(SucceededValue); + + /// Resource creation failed. + public static ProvisioningState Failed { get; } = new ProvisioningState(FailedValue); + + /// Resource creation was canceled. + public static ProvisioningState Canceled { get; } = new ProvisioningState(CanceledValue); + + /// The resource create request has been accepted. + public static ProvisioningState Accepted { get; } = new ProvisioningState(AcceptedValue); + + /// The resource is being provisioned. + public static ProvisioningState Provisioning { get; } = new ProvisioningState(ProvisioningValue); + + /// The resource is updating. + public static ProvisioningState Updating { get; } = new ProvisioningState(UpdatingValue); + + /// The resource is being deleted. + public static ProvisioningState Deleting { get; } = new ProvisioningState(DeletingValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(ProvisioningState left, ProvisioningState right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(ProvisioningState left, ProvisioningState right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator ProvisioningState(string value) => new ProvisioningState(value); + + /// Converts a string to a . + /// The value. + public static implicit operator ProvisioningState?(string value) => value == null ? null : new ProvisioningState(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ProvisioningState other && Equals(other); + + /// + public bool Equals(ProvisioningState other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PublicNetworkAccess.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PublicNetworkAccess.cs new file mode 100644 index 000000000000..a593802d3396 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/PublicNetworkAccess.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// State of public network access. + public readonly partial struct PublicNetworkAccess : IEquatable + { + private readonly string _value; + /// Public network access is enabled. + private const string EnabledValue = "Enabled"; + /// Public network access is disabled. + private const string DisabledValue = "Disabled"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public PublicNetworkAccess(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Public network access is enabled. + public static PublicNetworkAccess Enabled { get; } = new PublicNetworkAccess(EnabledValue); + + /// Public network access is disabled. + public static PublicNetworkAccess Disabled { get; } = new PublicNetworkAccess(DisabledValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(PublicNetworkAccess left, PublicNetworkAccess right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(PublicNetworkAccess left, PublicNetworkAccess right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator PublicNetworkAccess(string value) => new PublicNetworkAccess(value); + + /// Converts a string to a . + /// The value. + public static implicit operator PublicNetworkAccess?(string value) => value == null ? null : new PublicNetworkAccess(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is PublicNetworkAccess other && Equals(other); + + /// + public bool Equals(PublicNetworkAccess other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ScaleSetPriority.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ScaleSetPriority.cs new file mode 100644 index 000000000000..fba909f0ed18 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ScaleSetPriority.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Supported Virtual Machine Scale Set priorities. + public readonly partial struct ScaleSetPriority : IEquatable + { + private readonly string _value; + /// Regular priority Virtual Machine Scale Set. + private const string RegularValue = "Regular"; + /// Spot priority Virtual Machine Scale Set. + private const string SpotValue = "Spot"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public ScaleSetPriority(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Regular priority Virtual Machine Scale Set. + public static ScaleSetPriority Regular { get; } = new ScaleSetPriority(RegularValue); + + /// Spot priority Virtual Machine Scale Set. + public static ScaleSetPriority Spot { get; } = new ScaleSetPriority(SpotValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(ScaleSetPriority left, ScaleSetPriority right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(ScaleSetPriority left, ScaleSetPriority right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator ScaleSetPriority(string value) => new ScaleSetPriority(value); + + /// Converts a string to a . + /// The value. + public static implicit operator ScaleSetPriority?(string value) => value == null ? null : new ScaleSetPriority(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is ScaleSetPriority other && Equals(other); + + /// + public bool Equals(ScaleSetPriority other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetListResult.Serialization.cs new file mode 100644 index 000000000000..a05ef561c603 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a StorageAsset list operation. + internal partial class StorageAssetListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageAssetListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual StorageAssetListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageAssetListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageAssetListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageAssetListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageAssetListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static StorageAssetListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeStorageAssetListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageAssetListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (StorageAssetData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageAssetListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual StorageAssetListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageAssetListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageAssetListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageAssetListResult DeserializeStorageAssetListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(StorageAssetData.DeserializeStorageAssetData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new StorageAssetListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetListResult.cs new file mode 100644 index 000000000000..25f7964a0660 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a StorageAsset list operation. + internal partial class StorageAssetListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The StorageAsset items on this page. + internal StorageAssetListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The StorageAsset items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal StorageAssetListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The StorageAsset items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetProperties.Serialization.cs new file mode 100644 index 000000000000..f3a629a7e738 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetProperties.Serialization.cs @@ -0,0 +1,169 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Storage Asset properties. + public partial class StorageAssetProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageAssetProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual StorageAssetProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageAssetProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageAssetProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageAssetProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageAssetProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageAssetProperties)} does not support writing '{format}' format."); + } + writer.WritePropertyName("description"u8); + writer.WriteStringValue(Description); + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + if (Optional.IsDefined(Path)) + { + writer.WritePropertyName("path"u8); + writer.WriteStringValue(Path); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageAssetProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual StorageAssetProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageAssetProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageAssetProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageAssetProperties DeserializeStorageAssetProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + string description = default; + ProvisioningState? provisioningState = default; + string path = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("description"u8)) + { + description = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("path"u8)) + { + path = prop.Value.GetString(); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new StorageAssetProperties(description, provisioningState, path, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetProperties.cs new file mode 100644 index 000000000000..e6edf31c3e75 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageAssetProperties.cs @@ -0,0 +1,52 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Storage Asset properties. + public partial class StorageAssetProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The description. + /// is null. + public StorageAssetProperties(string description) + { + Argument.AssertNotNull(description, nameof(description)); + + Description = description; + } + + /// Initializes a new instance of . + /// The description. + /// The status of the last operation. + /// The path to the data within its parent container. This should be relative to the root of the parent container. + /// Keeps track of any properties unknown to the library. + internal StorageAssetProperties(string description, ProvisioningState? provisioningState, string path, IDictionary additionalBinaryDataProperties) + { + Description = description; + ProvisioningState = provisioningState; + Path = path; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The description. + public string Description { get; set; } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// The path to the data within its parent container. This should be relative to the root of the parent container. + public string Path { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerListResult.Serialization.cs new file mode 100644 index 000000000000..c4d2e04860a1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a StorageContainer list operation. + internal partial class StorageContainerListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageContainerListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual StorageContainerListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageContainerListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageContainerListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageContainerListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageContainerListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static StorageContainerListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeStorageContainerListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageContainerListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (StorageContainerData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageContainerListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual StorageContainerListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageContainerListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageContainerListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageContainerListResult DeserializeStorageContainerListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(StorageContainerData.DeserializeStorageContainerData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new StorageContainerListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerListResult.cs new file mode 100644 index 000000000000..b54e52d3a103 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a StorageContainer list operation. + internal partial class StorageContainerListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The StorageContainer items on this page. + internal StorageContainerListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The StorageContainer items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal StorageContainerListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The StorageContainer items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerProperties.Serialization.cs new file mode 100644 index 000000000000..44c265fec479 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerProperties.Serialization.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Storage Container properties. + public partial class StorageContainerProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageContainerProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual StorageContainerProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageContainerProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageContainerProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageContainerProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageContainerProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageContainerProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("storageStore"u8); + writer.WriteObjectValue(StorageStore, options); + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageContainerProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual StorageContainerProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageContainerProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageContainerProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageContainerProperties DeserializeStorageContainerProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + StorageStore storageStore = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("storageStore"u8)) + { + storageStore = StorageStore.DeserializeStorageStore(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new StorageContainerProperties(provisioningState, storageStore, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerProperties.cs new file mode 100644 index 000000000000..e274150a9719 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageContainerProperties.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Storage Container properties. + public partial class StorageContainerProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// Storage store properties. + /// is null. + public StorageContainerProperties(StorageStore storageStore) + { + Argument.AssertNotNull(storageStore, nameof(storageStore)); + + StorageStore = storageStore; + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// Storage store properties. + /// Keeps track of any properties unknown to the library. + internal StorageContainerProperties(ProvisioningState? provisioningState, StorageStore storageStore, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + StorageStore = storageStore; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// Storage store properties. + public StorageStore StorageStore { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStore.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStore.Serialization.cs new file mode 100644 index 000000000000..11e21405faca --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStore.Serialization.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// + /// An abstract representation of storage store kind. + /// Please note this is the abstract base class. The derived classes available for instantiation are: and . + /// + [PersistableModelProxy(typeof(UnknownStorageStore))] + public abstract partial class StorageStore : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageStore() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual StorageStore PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageStore(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageStore)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageStore)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageStore IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageStore)} does not support writing '{format}' format."); + } + writer.WritePropertyName("kind"u8); + writer.WriteStringValue(Kind.ToString()); + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageStore IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual StorageStore JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageStore)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageStore(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageStore DeserializeStorageStore(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + if (element.TryGetProperty("kind"u8, out JsonElement discriminator)) + { + switch (discriminator.GetString()) + { + case "AzureStorageBlob": + return AzureStorageBlobStore.DeserializeAzureStorageBlobStore(element, options); + case "AzureNetAppFiles": + return AzureNetAppFilesStore.DeserializeAzureNetAppFilesStore(element, options); + } + } + return UnknownStorageStore.DeserializeUnknownStorageStore(element, options); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStore.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStore.cs new file mode 100644 index 000000000000..67a91c428e92 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStore.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// + /// An abstract representation of storage store kind. + /// Please note this is the abstract base class. The derived classes available for instantiation are: and . + /// + public abstract partial class StorageStore + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The storage store kind. + private protected StorageStore(StorageStoreType kind) + { + Kind = kind; + } + + /// Initializes a new instance of . + /// The storage store kind. + /// Keeps track of any properties unknown to the library. + internal StorageStore(StorageStoreType kind, IDictionary additionalBinaryDataProperties) + { + Kind = kind; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The storage store kind. + internal StorageStoreType Kind { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStoreType.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStoreType.cs new file mode 100644 index 000000000000..b689783dcbbc --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/StorageStoreType.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The kind of the backing storage store. + internal readonly partial struct StorageStoreType : IEquatable + { + private readonly string _value; + /// The Azure storage blob kind. + private const string AzureStorageBlobValue = "AzureStorageBlob"; + /// The Azure NetApp Files kind. + private const string AzureNetAppFilesValue = "AzureNetAppFiles"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public StorageStoreType(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// The Azure storage blob kind. + public static StorageStoreType AzureStorageBlob { get; } = new StorageStoreType(AzureStorageBlobValue); + + /// The Azure NetApp Files kind. + public static StorageStoreType AzureNetAppFiles { get; } = new StorageStoreType(AzureNetAppFilesValue); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(StorageStoreType left, StorageStoreType right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(StorageStoreType left, StorageStoreType right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator StorageStoreType(string value) => new StorageStoreType(value); + + /// Converts a string to a . + /// The value. + public static implicit operator StorageStoreType?(string value) => value == null ? null : new StorageStoreType(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is StorageStoreType other && Equals(other); + + /// + public bool Equals(StorageStoreType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerIdentities.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerIdentities.Serialization.cs new file mode 100644 index 000000000000..595c96ef1a44 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerIdentities.Serialization.cs @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Dictionary of identity properties for the Supercomputer. + public partial class SupercomputerIdentities : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal SupercomputerIdentities() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual SupercomputerIdentities PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeSupercomputerIdentities(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SupercomputerIdentities)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(SupercomputerIdentities)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + SupercomputerIdentities IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerIdentities)} does not support writing '{format}' format."); + } + writer.WritePropertyName("clusterIdentity"u8); + writer.WriteObjectValue(ClusterIdentity, options); + writer.WritePropertyName("kubeletIdentity"u8); + writer.WriteObjectValue(KubeletIdentity, options); + if (Optional.IsCollectionDefined(WorkloadIdentities)) + { + writer.WritePropertyName("workloadIdentities"u8); + writer.WriteStartObject(); + foreach (var item in WorkloadIdentities) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + ((IJsonModel)item.Value).Write(writer, options); + } + writer.WriteEndObject(); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + SupercomputerIdentities IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual SupercomputerIdentities JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerIdentities)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSupercomputerIdentities(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static SupercomputerIdentities DeserializeSupercomputerIdentities(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Identity clusterIdentity = default; + Identity kubeletIdentity = default; + IDictionary workloadIdentities = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("clusterIdentity"u8)) + { + clusterIdentity = Identity.DeserializeIdentity(prop.Value, options); + continue; + } + if (prop.NameEquals("kubeletIdentity"u8)) + { + kubeletIdentity = Identity.DeserializeIdentity(prop.Value, options); + continue; + } + if (prop.NameEquals("workloadIdentities"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop0.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default)); + } + } + workloadIdentities = dictionary; + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new SupercomputerIdentities(clusterIdentity, kubeletIdentity, workloadIdentities ?? new ChangeTrackingDictionary(), additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerIdentities.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerIdentities.cs new file mode 100644 index 000000000000..bd8770216952 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerIdentities.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Dictionary of identity properties for the Supercomputer. + public partial class SupercomputerIdentities + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// Cluster identity ID. + /// + /// Kubelet identity ID used by the supercomputer. + /// This identity is used by the supercomputer at node level to access Azure resources. + /// This identity must have ManagedIdentityOperator role on the clusterIdentity. + /// + /// or is null. + public SupercomputerIdentities(Identity clusterIdentity, Identity kubeletIdentity) + { + Argument.AssertNotNull(clusterIdentity, nameof(clusterIdentity)); + Argument.AssertNotNull(kubeletIdentity, nameof(kubeletIdentity)); + + ClusterIdentity = clusterIdentity; + KubeletIdentity = kubeletIdentity; + WorkloadIdentities = new ChangeTrackingDictionary(); + } + + /// Initializes a new instance of . + /// Cluster identity ID. + /// + /// Kubelet identity ID used by the supercomputer. + /// This identity is used by the supercomputer at node level to access Azure resources. + /// This identity must have ManagedIdentityOperator role on the clusterIdentity. + /// + /// User assigned identity IDs to be used by workloads as federated credentials running on supercomputer. The key value must be the resource ID of the identity resource. + /// Keeps track of any properties unknown to the library. + internal SupercomputerIdentities(Identity clusterIdentity, Identity kubeletIdentity, IDictionary workloadIdentities, IDictionary additionalBinaryDataProperties) + { + ClusterIdentity = clusterIdentity; + KubeletIdentity = kubeletIdentity; + WorkloadIdentities = workloadIdentities; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// Cluster identity ID. + public Identity ClusterIdentity { get; set; } + + /// + /// Kubelet identity ID used by the supercomputer. + /// This identity is used by the supercomputer at node level to access Azure resources. + /// This identity must have ManagedIdentityOperator role on the clusterIdentity. + /// + public Identity KubeletIdentity { get; set; } + + /// User assigned identity IDs to be used by workloads as federated credentials running on supercomputer. The key value must be the resource ID of the identity resource. + public IDictionary WorkloadIdentities { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerListResult.Serialization.cs new file mode 100644 index 000000000000..6cccf3e75b05 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Supercomputer list operation. + internal partial class SupercomputerListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal SupercomputerListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual SupercomputerListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeSupercomputerListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SupercomputerListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(SupercomputerListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + SupercomputerListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static SupercomputerListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSupercomputerListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (SupercomputerData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + SupercomputerListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual SupercomputerListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSupercomputerListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static SupercomputerListResult DeserializeSupercomputerListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(SupercomputerData.DeserializeSupercomputerData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new SupercomputerListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerListResult.cs new file mode 100644 index 000000000000..86c708a0c1dc --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Supercomputer list operation. + internal partial class SupercomputerListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Supercomputer items on this page. + internal SupercomputerListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Supercomputer items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal SupercomputerListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Supercomputer items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerProperties.Serialization.cs new file mode 100644 index 000000000000..b93b7f1b4aff --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerProperties.Serialization.cs @@ -0,0 +1,295 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Supercomputer properties. + public partial class SupercomputerProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal SupercomputerProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual SupercomputerProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeSupercomputerProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SupercomputerProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(SupercomputerProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + SupercomputerProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("subnetId"u8); + writer.WriteStringValue(SubnetId); + if (Optional.IsDefined(ManagementSubnetId)) + { + writer.WritePropertyName("managementSubnetId"u8); + writer.WriteStringValue(ManagementSubnetId); + } + if (Optional.IsDefined(OutboundType)) + { + writer.WritePropertyName("outboundType"u8); + writer.WriteStringValue(OutboundType.Value.ToString()); + } + if (Optional.IsDefined(SystemSku)) + { + writer.WritePropertyName("systemSku"u8); + writer.WriteStringValue(SystemSku.Value.ToString()); + } + writer.WritePropertyName("identities"u8); + writer.WriteObjectValue(Identities, options); + if (Optional.IsDefined(CustomerManagedKeys)) + { + writer.WritePropertyName("customerManagedKeys"u8); + writer.WriteStringValue(CustomerManagedKeys.Value.ToString()); + } + if (Optional.IsDefined(DiskEncryptionSetId)) + { + writer.WritePropertyName("diskEncryptionSetId"u8); + writer.WriteStringValue(DiskEncryptionSetId); + } + if (Optional.IsDefined(LogAnalyticsClusterId)) + { + writer.WritePropertyName("logAnalyticsClusterId"u8); + writer.WriteStringValue(LogAnalyticsClusterId); + } + if (options.Format != "W" && Optional.IsDefined(ManagedResourceGroup)) + { + writer.WritePropertyName("managedResourceGroup"u8); + writer.WriteStringValue(ManagedResourceGroup); + } + if (options.Format != "W" && Optional.IsDefined(ManagedOnBehalfOfConfiguration)) + { + writer.WritePropertyName("managedOnBehalfOfConfiguration"u8); + writer.WriteObjectValue(ManagedOnBehalfOfConfiguration, options); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + SupercomputerProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual SupercomputerProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSupercomputerProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static SupercomputerProperties DeserializeSupercomputerProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + ResourceIdentifier subnetId = default; + ResourceIdentifier managementSubnetId = default; + NetworkEgressType? outboundType = default; + SystemSku? systemSku = default; + SupercomputerIdentities identities = default; + CustomerManagedKeys? customerManagedKeys = default; + ResourceIdentifier diskEncryptionSetId = default; + ResourceIdentifier logAnalyticsClusterId = default; + string managedResourceGroup = default; + WithMoboBrokerResources managedOnBehalfOfConfiguration = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("subnetId"u8)) + { + subnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("managementSubnetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + managementSubnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("outboundType"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + outboundType = new NetworkEgressType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemSku"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemSku = new SystemSku(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("identities"u8)) + { + identities = SupercomputerIdentities.DeserializeSupercomputerIdentities(prop.Value, options); + continue; + } + if (prop.NameEquals("customerManagedKeys"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + customerManagedKeys = new CustomerManagedKeys(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("diskEncryptionSetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + diskEncryptionSetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("logAnalyticsClusterId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + logAnalyticsClusterId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("managedResourceGroup"u8)) + { + managedResourceGroup = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("managedOnBehalfOfConfiguration"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + managedOnBehalfOfConfiguration = WithMoboBrokerResources.DeserializeWithMoboBrokerResources(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new SupercomputerProperties( + provisioningState, + subnetId, + managementSubnetId, + outboundType, + systemSku, + identities, + customerManagedKeys, + diskEncryptionSetId, + logAnalyticsClusterId, + managedResourceGroup, + managedOnBehalfOfConfiguration, + additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerProperties.cs new file mode 100644 index 000000000000..4e112cc43f84 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SupercomputerProperties.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Supercomputer properties. + public partial class SupercomputerProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// + /// System Subnet ID associated with managed NodePool for system resources. + /// It should have connectivity to the child NodePool subnets. + /// + /// Dictionary of identity properties. + /// or is null. + public SupercomputerProperties(ResourceIdentifier subnetId, SupercomputerIdentities identities) + { + Argument.AssertNotNull(subnetId, nameof(subnetId)); + Argument.AssertNotNull(identities, nameof(identities)); + + SubnetId = subnetId; + Identities = identities; + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// + /// System Subnet ID associated with managed NodePool for system resources. + /// It should have connectivity to the child NodePool subnets. + /// + /// + /// System Subnet ID associated with AKS apiserver. Must be delegated to Microsoft.ContainerService/managedClusters. + /// It should have connectivity to the system subnet and nodepool subnets. + /// + /// + /// Network egress type provisioned for the supercomputer workloads. + /// Defaults to LoadBalancer if not specified. + /// If None is specified, the customer is responsible for providing outbound connectivity for Supercomputer functionality. + /// + /// The SKU to use for the system node pool. + /// Dictionary of identity properties. + /// Whether or not to use a customer managed key when encrypting data at rest. + /// Disk Encryption Set ID to use for Customer Managed Keys encryption. Required if Customer Managed Keys is enabled. + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + /// The resource group for resources managed on behalf of customer. + /// Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. + /// Keeps track of any properties unknown to the library. + internal SupercomputerProperties(ProvisioningState? provisioningState, ResourceIdentifier subnetId, ResourceIdentifier managementSubnetId, NetworkEgressType? outboundType, SystemSku? systemSku, SupercomputerIdentities identities, CustomerManagedKeys? customerManagedKeys, ResourceIdentifier diskEncryptionSetId, ResourceIdentifier logAnalyticsClusterId, string managedResourceGroup, WithMoboBrokerResources managedOnBehalfOfConfiguration, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + SubnetId = subnetId; + ManagementSubnetId = managementSubnetId; + OutboundType = outboundType; + SystemSku = systemSku; + Identities = identities; + CustomerManagedKeys = customerManagedKeys; + DiskEncryptionSetId = diskEncryptionSetId; + LogAnalyticsClusterId = logAnalyticsClusterId; + ManagedResourceGroup = managedResourceGroup; + ManagedOnBehalfOfConfiguration = managedOnBehalfOfConfiguration; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// + /// System Subnet ID associated with managed NodePool for system resources. + /// It should have connectivity to the child NodePool subnets. + /// + public ResourceIdentifier SubnetId { get; set; } + + /// + /// System Subnet ID associated with AKS apiserver. Must be delegated to Microsoft.ContainerService/managedClusters. + /// It should have connectivity to the system subnet and nodepool subnets. + /// + public ResourceIdentifier ManagementSubnetId { get; set; } + + /// + /// Network egress type provisioned for the supercomputer workloads. + /// Defaults to LoadBalancer if not specified. + /// If None is specified, the customer is responsible for providing outbound connectivity for Supercomputer functionality. + /// + public NetworkEgressType? OutboundType { get; set; } + + /// The SKU to use for the system node pool. + public SystemSku? SystemSku { get; set; } + + /// Dictionary of identity properties. + public SupercomputerIdentities Identities { get; set; } + + /// Whether or not to use a customer managed key when encrypting data at rest. + public CustomerManagedKeys? CustomerManagedKeys { get; set; } + + /// Disk Encryption Set ID to use for Customer Managed Keys encryption. Required if Customer Managed Keys is enabled. + public ResourceIdentifier DiskEncryptionSetId { get; set; } + + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + public ResourceIdentifier LogAnalyticsClusterId { get; set; } + + /// The resource group for resources managed on behalf of customer. + public string ManagedResourceGroup { get; } + + /// Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. + internal WithMoboBrokerResources ManagedOnBehalfOfConfiguration { get; } + + /// Managed-On-Behalf-Of broker resources. + public IReadOnlyList ManagedOnBehalfOfMoboBrokerResources + { + get + { + return ManagedOnBehalfOfConfiguration.MoboBrokerResources; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SystemSku.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SystemSku.cs new file mode 100644 index 000000000000..03aba2f43d8d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/SystemSku.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Supported System SKU Sizes. + public readonly partial struct SystemSku : IEquatable + { + private readonly string _value; + /// Standard_D4s_v6 basic compute VM (default). + private const string StandardD4sV6Value = "Standard_D4s_v6"; + /// Standard_D4s_v5 SKU. + private const string StandardD4sV5Value = "Standard_D4s_v5"; + /// Standard_D4s_v4 SKU. + private const string StandardD4sV4Value = "Standard_D4s_v4"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public SystemSku(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Standard_D4s_v6 basic compute VM (default). + public static SystemSku StandardD4sV6 { get; } = new SystemSku(StandardD4sV6Value); + + /// Standard_D4s_v5 SKU. + public static SystemSku StandardD4sV5 { get; } = new SystemSku(StandardD4sV5Value); + + /// Standard_D4s_v4 SKU. + public static SystemSku StandardD4sV4 { get; } = new SystemSku(StandardD4sV4Value); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(SystemSku left, SystemSku right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(SystemSku left, SystemSku right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator SystemSku(string value) => new SystemSku(value); + + /// Converts a string to a . + /// The value. + public static implicit operator SystemSku?(string value) => value == null ? null : new SystemSku(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is SystemSku other && Equals(other); + + /// + public bool Equals(SystemSku other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolListResult.Serialization.cs new file mode 100644 index 000000000000..5a7973f4cd07 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Tool list operation. + internal partial class ToolListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ToolListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ToolListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeToolListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ToolListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ToolListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ToolListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static ToolListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeToolListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ToolListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (ToolData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ToolListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ToolListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ToolListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeToolListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ToolListResult DeserializeToolListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(ToolData.DeserializeToolData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ToolListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolListResult.cs new file mode 100644 index 000000000000..b6fb4d39ba81 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Tool list operation. + internal partial class ToolListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Tool items on this page. + internal ToolListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Tool items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal ToolListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Tool items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolProperties.Serialization.cs new file mode 100644 index 000000000000..51804baac858 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolProperties.Serialization.cs @@ -0,0 +1,234 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Discovery Tool list item properties. + public partial class ToolProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ToolProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ToolProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeToolProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ToolProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ToolProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ToolProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ToolProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + writer.WritePropertyName("version"u8); + writer.WriteStringValue(Version); + if (Optional.IsCollectionDefined(EnvironmentVariables)) + { + writer.WritePropertyName("environmentVariables"u8); + writer.WriteStartObject(); + foreach (var item in EnvironmentVariables) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item.Value); + } + writer.WriteEndObject(); + } + writer.WritePropertyName("definitionContent"u8); + writer.WriteStartObject(); + foreach (var item in DefinitionContent) + { + writer.WritePropertyName(item.Key); + if (item.Value == null) + { + writer.WriteNullValue(); + continue; + } +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + writer.WriteEndObject(); + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ToolProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ToolProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ToolProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeToolProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ToolProperties DeserializeToolProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + string version = default; + IDictionary environmentVariables = default; + IDictionary definitionContent = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("version"u8)) + { + version = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("environmentVariables"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + environmentVariables = dictionary; + continue; + } + if (prop.NameEquals("definitionContent"u8)) + { + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, BinaryData.FromString(prop0.Value.GetRawText())); + } + } + definitionContent = dictionary; + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ToolProperties(provisioningState, version, environmentVariables ?? new ChangeTrackingDictionary(), definitionContent, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolProperties.cs new file mode 100644 index 000000000000..17a62cd5ed79 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/ToolProperties.cs @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Discovery Tool list item properties. + public partial class ToolProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The version of a resource definition. + /// The JSON content for defining a resource. + /// or is null. + public ToolProperties(string version, IDictionary definitionContent) + { + Argument.AssertNotNull(version, nameof(version)); + Argument.AssertNotNull(definitionContent, nameof(definitionContent)); + + Version = version; + EnvironmentVariables = new ChangeTrackingDictionary(); + DefinitionContent = definitionContent; + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// The version of a resource definition. + /// Environment variables to make available. + /// The JSON content for defining a resource. + /// Keeps track of any properties unknown to the library. + internal ToolProperties(ProvisioningState? provisioningState, string version, IDictionary environmentVariables, IDictionary definitionContent, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + Version = version; + EnvironmentVariables = environmentVariables; + DefinitionContent = definitionContent; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// The version of a resource definition. + public string Version { get; set; } + + /// Environment variables to make available. + public IDictionary EnvironmentVariables { get; } + + /// + /// The JSON content for defining a resource + /// To assign an object to the value of this property use . + /// To assign an already formatted json string to this property use . + /// + /// Examples: + /// + /// + /// BinaryData.FromObjectAsJson("foo"). + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromString("\"foo\""). + /// Creates a payload of "foo". + /// + /// + /// BinaryData.FromObjectAsJson(new { key = "value" }). + /// Creates a payload of { "key": "value" }. + /// + /// + /// BinaryData.FromString("{\"key\": \"value\"}"). + /// Creates a payload of { "key": "value" }. + /// + /// + /// + /// + public IDictionary DefinitionContent { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/UnknownStorageStore.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/UnknownStorageStore.Serialization.cs new file mode 100644 index 000000000000..40267188e7d9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/UnknownStorageStore.Serialization.cs @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + internal partial class UnknownStorageStore : StorageStore, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal UnknownStorageStore() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected override StorageStore PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageStore(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageStore)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageStore)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageStore IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageStore)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageStore IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected override StorageStore JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageStore)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageStore(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static UnknownStorageStore DeserializeUnknownStorageStore(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + StorageStoreType kind = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("kind"u8)) + { + kind = new StorageStoreType(prop.Value.GetString()); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new UnknownStorageStore(kind, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/UnknownStorageStore.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/UnknownStorageStore.cs new file mode 100644 index 000000000000..58126bd31e80 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/UnknownStorageStore.cs @@ -0,0 +1,22 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; + +namespace Azure.ResourceManager.Discovery.Models +{ + internal partial class UnknownStorageStore : StorageStore + { + /// Initializes a new instance of . + /// The storage store kind. + /// Keeps track of any properties unknown to the library. + internal UnknownStorageStore(StorageStoreType kind, IDictionary additionalBinaryDataProperties) : base(kind != default ? kind : "unknown", additionalBinaryDataProperties) + { + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/VmSize.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/VmSize.cs new file mode 100644 index 000000000000..fa58235703ae --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/VmSize.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ComponentModel; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Supported Azure VM Sizes. + public readonly partial struct VmSize : IEquatable + { + private readonly string _value; + /// Standard_NC24ads_A100_v4 GPU-optimized Azure VM Size. + private const string StandardNC24adsA100V4Value = "Standard_NC24ads_A100_v4"; + /// Standard_NC48ads_A100_v4 GPU-optimized Azure VM Size. + private const string StandardNC48adsA100V4Value = "Standard_NC48ads_A100_v4"; + /// Standard_NC96ads_A100_v4 GPU-optimized Azure VM Size. + private const string StandardNC96adsA100V4Value = "Standard_NC96ads_A100_v4"; + /// Standard_NC4as_T4_v3 GPU-optimized Azure VM Size. + private const string StandardNC4asT4V3Value = "Standard_NC4as_T4_v3"; + /// Standard_NC8as_T4_v3 GPU-optimized Azure VM Size. + private const string StandardNC8asT4V3Value = "Standard_NC8as_T4_v3"; + /// Standard_NC16as_T4_v3 GPU-optimized Azure VM Size. + private const string StandardNC16asT4V3Value = "Standard_NC16as_T4_v3"; + /// Standard_NC64as_T4_v3 GPU-optimized Azure VM Size. + private const string StandardNC64asT4V3Value = "Standard_NC64as_T4_v3"; + /// Standard_NV6ads_A10_v5 GPU-optimized Azure VM Size. + private const string StandardNV6adsA10V5Value = "Standard_NV6ads_A10_v5"; + /// Standard_NV12ads_A10_v5 GPU-optimized Azure VM Size. + private const string StandardNV12adsA10V5Value = "Standard_NV12ads_A10_v5"; + /// Standard_NV24ads_A10_v5 GPU-optimized Azure VM Size. + private const string StandardNV24adsA10V5Value = "Standard_NV24ads_A10_v5"; + /// Standard_NV36ads_A10_v5 GPU-optimized Azure VM Size. + private const string StandardNV36adsA10V5Value = "Standard_NV36ads_A10_v5"; + /// Standard_NV36ads_A10_v5 GPU-optimized Azure VM Size. + private const string StandardNV36admsA10V5Value = "Standard_NV36adms_A10_v5"; + /// Standard_NV36ads_A10_v5 GPU-optimized Azure VM Size. + private const string StandardNV72adsA10V5Value = "Standard_NV72ads_A10_v5"; + /// Standard_ND40rs_v2 GPU-optimized Azure VM Size. + private const string StandardND40rsV2Value = "Standard_ND40rs_v2"; + + /// Initializes a new instance of . + /// The value. + /// is null. + public VmSize(string value) + { + Argument.AssertNotNull(value, nameof(value)); + + _value = value; + } + + /// Standard_NC24ads_A100_v4 GPU-optimized Azure VM Size. + public static VmSize StandardNC24adsA100V4 { get; } = new VmSize(StandardNC24adsA100V4Value); + + /// Standard_NC48ads_A100_v4 GPU-optimized Azure VM Size. + public static VmSize StandardNC48adsA100V4 { get; } = new VmSize(StandardNC48adsA100V4Value); + + /// Standard_NC96ads_A100_v4 GPU-optimized Azure VM Size. + public static VmSize StandardNC96adsA100V4 { get; } = new VmSize(StandardNC96adsA100V4Value); + + /// Standard_NC4as_T4_v3 GPU-optimized Azure VM Size. + public static VmSize StandardNC4asT4V3 { get; } = new VmSize(StandardNC4asT4V3Value); + + /// Standard_NC8as_T4_v3 GPU-optimized Azure VM Size. + public static VmSize StandardNC8asT4V3 { get; } = new VmSize(StandardNC8asT4V3Value); + + /// Standard_NC16as_T4_v3 GPU-optimized Azure VM Size. + public static VmSize StandardNC16asT4V3 { get; } = new VmSize(StandardNC16asT4V3Value); + + /// Standard_NC64as_T4_v3 GPU-optimized Azure VM Size. + public static VmSize StandardNC64asT4V3 { get; } = new VmSize(StandardNC64asT4V3Value); + + /// Standard_NV6ads_A10_v5 GPU-optimized Azure VM Size. + public static VmSize StandardNV6adsA10V5 { get; } = new VmSize(StandardNV6adsA10V5Value); + + /// Standard_NV12ads_A10_v5 GPU-optimized Azure VM Size. + public static VmSize StandardNV12adsA10V5 { get; } = new VmSize(StandardNV12adsA10V5Value); + + /// Standard_NV24ads_A10_v5 GPU-optimized Azure VM Size. + public static VmSize StandardNV24adsA10V5 { get; } = new VmSize(StandardNV24adsA10V5Value); + + /// Standard_NV36ads_A10_v5 GPU-optimized Azure VM Size. + public static VmSize StandardNV36adsA10V5 { get; } = new VmSize(StandardNV36adsA10V5Value); + + /// Standard_NV36ads_A10_v5 GPU-optimized Azure VM Size. + public static VmSize StandardNV36admsA10V5 { get; } = new VmSize(StandardNV36admsA10V5Value); + + /// Standard_NV36ads_A10_v5 GPU-optimized Azure VM Size. + public static VmSize StandardNV72adsA10V5 { get; } = new VmSize(StandardNV72adsA10V5Value); + + /// Standard_ND40rs_v2 GPU-optimized Azure VM Size. + public static VmSize StandardND40rsV2 { get; } = new VmSize(StandardND40rsV2Value); + + /// Determines if two values are the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator ==(VmSize left, VmSize right) => left.Equals(right); + + /// Determines if two values are not the same. + /// The left value to compare. + /// The right value to compare. + public static bool operator !=(VmSize left, VmSize right) => !left.Equals(right); + + /// Converts a string to a . + /// The value. + public static implicit operator VmSize(string value) => new VmSize(value); + + /// Converts a string to a . + /// The value. + public static implicit operator VmSize?(string value) => value == null ? null : new VmSize(value); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object obj) => obj is VmSize other && Equals(other); + + /// + public bool Equals(VmSize other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); + + /// + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value != null ? StringComparer.InvariantCultureIgnoreCase.GetHashCode(_value) : 0; + + /// + public override string ToString() => _value; + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WithMoboBrokerResources.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WithMoboBrokerResources.Serialization.cs new file mode 100644 index 000000000000..18f0a3fd80d6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WithMoboBrokerResources.Serialization.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// For tracking mobo resources. + internal partial class WithMoboBrokerResources : IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual WithMoboBrokerResources PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWithMoboBrokerResources(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WithMoboBrokerResources)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WithMoboBrokerResources)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WithMoboBrokerResources IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WithMoboBrokerResources)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsCollectionDefined(MoboBrokerResources)) + { + writer.WritePropertyName("moboBrokerResources"u8); + writer.WriteStartArray(); + foreach (MoboBrokerResource item in MoboBrokerResources) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WithMoboBrokerResources IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual WithMoboBrokerResources JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WithMoboBrokerResources)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWithMoboBrokerResources(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WithMoboBrokerResources DeserializeWithMoboBrokerResources(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IReadOnlyList moboBrokerResources = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("moboBrokerResources"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(MoboBrokerResource.DeserializeMoboBrokerResource(item, options)); + } + moboBrokerResources = array; + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WithMoboBrokerResources(moboBrokerResources ?? new ChangeTrackingList(), additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WithMoboBrokerResources.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WithMoboBrokerResources.cs new file mode 100644 index 000000000000..6d77175ec53f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WithMoboBrokerResources.cs @@ -0,0 +1,38 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// For tracking mobo resources. + internal partial class WithMoboBrokerResources + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + internal WithMoboBrokerResources() + { + MoboBrokerResources = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// Managed-On-Behalf-Of broker resources. + /// Keeps track of any properties unknown to the library. + internal WithMoboBrokerResources(IReadOnlyList moboBrokerResources, IDictionary additionalBinaryDataProperties) + { + MoboBrokerResources = moboBrokerResources; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// Managed-On-Behalf-Of broker resources. + public IReadOnlyList MoboBrokerResources { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceListResult.Serialization.cs new file mode 100644 index 000000000000..6840ce770ea2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Workspace list operation. + internal partial class WorkspaceListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal WorkspaceListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual WorkspaceListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspaceListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspaceListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspaceListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspaceListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static WorkspaceListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkspaceListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspaceListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (WorkspaceData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspaceListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual WorkspaceListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspaceListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspaceListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspaceListResult DeserializeWorkspaceListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(WorkspaceData.DeserializeWorkspaceData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspaceListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceListResult.cs new file mode 100644 index 000000000000..b156f7bef509 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a Workspace list operation. + internal partial class WorkspaceListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The Workspace items on this page. + internal WorkspaceListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The Workspace items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal WorkspaceListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The Workspace items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateEndpointConnectionListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateEndpointConnectionListResult.Serialization.cs new file mode 100644 index 000000000000..534ed00ec037 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateEndpointConnectionListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a WorkspacePrivateEndpointConnection list operation. + internal partial class WorkspacePrivateEndpointConnectionListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal WorkspacePrivateEndpointConnectionListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual WorkspacePrivateEndpointConnectionListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspacePrivateEndpointConnectionListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspacePrivateEndpointConnectionListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static WorkspacePrivateEndpointConnectionListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkspacePrivateEndpointConnectionListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (WorkspacePrivateEndpointConnectionData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspacePrivateEndpointConnectionListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual WorkspacePrivateEndpointConnectionListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspacePrivateEndpointConnectionListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspacePrivateEndpointConnectionListResult DeserializeWorkspacePrivateEndpointConnectionListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(WorkspacePrivateEndpointConnectionData.DeserializeWorkspacePrivateEndpointConnectionData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspacePrivateEndpointConnectionListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateEndpointConnectionListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateEndpointConnectionListResult.cs new file mode 100644 index 000000000000..49661b6c37da --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateEndpointConnectionListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a WorkspacePrivateEndpointConnection list operation. + internal partial class WorkspacePrivateEndpointConnectionListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The WorkspacePrivateEndpointConnection items on this page. + internal WorkspacePrivateEndpointConnectionListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The WorkspacePrivateEndpointConnection items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal WorkspacePrivateEndpointConnectionListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The WorkspacePrivateEndpointConnection items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateLinkResourceListResult.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateLinkResourceListResult.Serialization.cs new file mode 100644 index 000000000000..3b41f87cb2a2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateLinkResourceListResult.Serialization.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a WorkspacePrivateLinkResource list operation. + internal partial class WorkspacePrivateLinkResourceListResult : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal WorkspacePrivateLinkResourceListResult() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual WorkspacePrivateLinkResourceListResult PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspacePrivateLinkResourceListResult(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceListResult)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceListResult)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspacePrivateLinkResourceListResult IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static WorkspacePrivateLinkResourceListResult FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkspacePrivateLinkResourceListResult(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceListResult)} does not support writing '{format}' format."); + } + writer.WritePropertyName("value"u8); + writer.WriteStartArray(); + foreach (WorkspacePrivateLinkResourceData item in Value) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + if (Optional.IsDefined(NextLink)) + { + writer.WritePropertyName("nextLink"u8); + writer.WriteStringValue(NextLink.AbsoluteUri); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspacePrivateLinkResourceListResult IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual WorkspacePrivateLinkResourceListResult JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceListResult)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspacePrivateLinkResourceListResult(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspacePrivateLinkResourceListResult DeserializeWorkspacePrivateLinkResourceListResult(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + IList value = default; + Uri nextLink = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("value"u8)) + { + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(WorkspacePrivateLinkResourceData.DeserializeWorkspacePrivateLinkResourceData(item, options)); + } + value = array; + continue; + } + if (prop.NameEquals("nextLink"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + nextLink = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspacePrivateLinkResourceListResult(value, nextLink, additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateLinkResourceListResult.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateLinkResourceListResult.cs new file mode 100644 index 000000000000..766d2b478920 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspacePrivateLinkResourceListResult.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// The response of a WorkspacePrivateLinkResource list operation. + internal partial class WorkspacePrivateLinkResourceListResult + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The WorkspacePrivateLinkResource items on this page. + internal WorkspacePrivateLinkResourceListResult(IEnumerable value) + { + Value = value.ToList(); + } + + /// Initializes a new instance of . + /// The WorkspacePrivateLinkResource items on this page. + /// The link to the next page of items. + /// Keeps track of any properties unknown to the library. + internal WorkspacePrivateLinkResourceListResult(IList value, Uri nextLink, IDictionary additionalBinaryDataProperties) + { + Value = value; + NextLink = nextLink; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The WorkspacePrivateLinkResource items on this page. + public IList Value { get; } + + /// The link to the next page of items. + public Uri NextLink { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceProperties.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceProperties.Serialization.cs new file mode 100644 index 000000000000..4ad8776496e4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceProperties.Serialization.cs @@ -0,0 +1,398 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Workspace properties. + public partial class WorkspaceProperties : IJsonModel + { + /// Initializes a new instance of for deserialization. + internal WorkspaceProperties() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual WorkspaceProperties PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspaceProperties(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspaceProperties)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspaceProperties)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspaceProperties IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspaceProperties)} does not support writing '{format}' format."); + } + if (options.Format != "W" && Optional.IsDefined(ProvisioningState)) + { + writer.WritePropertyName("provisioningState"u8); + writer.WriteStringValue(ProvisioningState.Value.ToString()); + } + if (Optional.IsCollectionDefined(SupercomputerIds)) + { + writer.WritePropertyName("supercomputerIds"u8); + writer.WriteStartArray(); + foreach (ResourceIdentifier item in SupercomputerIds) + { + if (item == null) + { + writer.WriteNullValue(); + continue; + } + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (options.Format != "W" && Optional.IsDefined(WorkspaceApiUri)) + { + writer.WritePropertyName("workspaceApiUri"u8); + writer.WriteStringValue(WorkspaceApiUri.AbsoluteUri); + } + if (options.Format != "W" && Optional.IsDefined(WorkspaceUiUri)) + { + writer.WritePropertyName("workspaceUiUri"u8); + writer.WriteStringValue(WorkspaceUiUri.AbsoluteUri); + } + writer.WritePropertyName("workspaceIdentity"u8); + writer.WriteObjectValue(WorkspaceIdentity, options); + if (Optional.IsDefined(CustomerManagedKeys)) + { + writer.WritePropertyName("customerManagedKeys"u8); + writer.WriteStringValue(CustomerManagedKeys.Value.ToString()); + } + if (Optional.IsDefined(KeyVaultProperties)) + { + writer.WritePropertyName("keyVaultProperties"u8); + writer.WriteObjectValue(KeyVaultProperties, options); + } + if (Optional.IsDefined(LogAnalyticsClusterId)) + { + writer.WritePropertyName("logAnalyticsClusterId"u8); + writer.WriteStringValue(LogAnalyticsClusterId); + } + if (options.Format != "W" && Optional.IsCollectionDefined(PrivateEndpointConnections)) + { + writer.WritePropertyName("privateEndpointConnections"u8); + writer.WriteStartArray(); + foreach (DiscoveryPrivateEndpointConnection item in PrivateEndpointConnections) + { + writer.WriteObjectValue(item, options); + } + writer.WriteEndArray(); + } + if (Optional.IsDefined(PublicNetworkAccess)) + { + writer.WritePropertyName("publicNetworkAccess"u8); + writer.WriteStringValue(PublicNetworkAccess.Value.ToString()); + } + if (Optional.IsDefined(AgentSubnetId)) + { + writer.WritePropertyName("agentSubnetId"u8); + writer.WriteStringValue(AgentSubnetId); + } + if (Optional.IsDefined(PrivateEndpointSubnetId)) + { + writer.WritePropertyName("privateEndpointSubnetId"u8); + writer.WriteStringValue(PrivateEndpointSubnetId); + } + if (Optional.IsDefined(WorkspaceSubnetId)) + { + writer.WritePropertyName("workspaceSubnetId"u8); + writer.WriteStringValue(WorkspaceSubnetId); + } + if (options.Format != "W" && Optional.IsDefined(ManagedResourceGroup)) + { + writer.WritePropertyName("managedResourceGroup"u8); + writer.WriteStringValue(ManagedResourceGroup); + } + if (options.Format != "W" && Optional.IsDefined(ManagedOnBehalfOfConfiguration)) + { + writer.WritePropertyName("managedOnBehalfOfConfiguration"u8); + writer.WriteObjectValue(ManagedOnBehalfOfConfiguration, options); + } + if (options.Format != "W" && _additionalBinaryDataProperties != null) + { + foreach (var item in _additionalBinaryDataProperties) + { + writer.WritePropertyName(item.Key); +#if NET6_0_OR_GREATER + writer.WriteRawValue(item.Value); +#else + using (JsonDocument document = JsonDocument.Parse(item.Value)) + { + JsonSerializer.Serialize(writer, document.RootElement); + } +#endif + } + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspaceProperties IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual WorkspaceProperties JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspaceProperties)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspaceProperties(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspaceProperties DeserializeWorkspaceProperties(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ProvisioningState? provisioningState = default; + IList supercomputerIds = default; + Uri workspaceApiUri = default; + Uri workspaceUiUri = default; + Identity workspaceIdentity = default; + CustomerManagedKeys? customerManagedKeys = default; + KeyVaultProperties keyVaultProperties = default; + ResourceIdentifier logAnalyticsClusterId = default; + IReadOnlyList privateEndpointConnections = default; + PublicNetworkAccess? publicNetworkAccess = default; + ResourceIdentifier agentSubnetId = default; + ResourceIdentifier privateEndpointSubnetId = default; + ResourceIdentifier workspaceSubnetId = default; + string managedResourceGroup = default; + WithMoboBrokerResources managedOnBehalfOfConfiguration = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("provisioningState"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + provisioningState = new ProvisioningState(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("supercomputerIds"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + if (item.ValueKind == JsonValueKind.Null) + { + array.Add(null); + } + else + { + array.Add(new ResourceIdentifier(item.GetString())); + } + } + supercomputerIds = array; + continue; + } + if (prop.NameEquals("workspaceApiUri"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + workspaceApiUri = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (prop.NameEquals("workspaceUiUri"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + workspaceUiUri = string.IsNullOrEmpty(prop.Value.GetString()) ? null : new Uri(prop.Value.GetString(), UriKind.RelativeOrAbsolute); + continue; + } + if (prop.NameEquals("workspaceIdentity"u8)) + { + workspaceIdentity = Identity.DeserializeIdentity(prop.Value, options); + continue; + } + if (prop.NameEquals("customerManagedKeys"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + customerManagedKeys = new CustomerManagedKeys(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("keyVaultProperties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + keyVaultProperties = KeyVaultProperties.DeserializeKeyVaultProperties(prop.Value, options); + continue; + } + if (prop.NameEquals("logAnalyticsClusterId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + logAnalyticsClusterId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("privateEndpointConnections"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in prop.Value.EnumerateArray()) + { + array.Add(DiscoveryPrivateEndpointConnection.DeserializeDiscoveryPrivateEndpointConnection(item, options)); + } + privateEndpointConnections = array; + continue; + } + if (prop.NameEquals("publicNetworkAccess"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + publicNetworkAccess = new PublicNetworkAccess(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("agentSubnetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + agentSubnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("privateEndpointSubnetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + privateEndpointSubnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("workspaceSubnetId"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + workspaceSubnetId = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("managedResourceGroup"u8)) + { + managedResourceGroup = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("managedOnBehalfOfConfiguration"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + managedOnBehalfOfConfiguration = WithMoboBrokerResources.DeserializeWithMoboBrokerResources(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspaceProperties( + provisioningState, + supercomputerIds ?? new ChangeTrackingList(), + workspaceApiUri, + workspaceUiUri, + workspaceIdentity, + customerManagedKeys, + keyVaultProperties, + logAnalyticsClusterId, + privateEndpointConnections ?? new ChangeTrackingList(), + publicNetworkAccess, + agentSubnetId, + privateEndpointSubnetId, + workspaceSubnetId, + managedResourceGroup, + managedOnBehalfOfConfiguration, + additionalBinaryDataProperties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceProperties.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceProperties.cs new file mode 100644 index 000000000000..00594fcf4548 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/Models/WorkspaceProperties.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery; + +namespace Azure.ResourceManager.Discovery.Models +{ + /// Workspace properties. + public partial class WorkspaceProperties + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// Identity IDs used for leveraging Workspace resources. + /// is null. + public WorkspaceProperties(Identity workspaceIdentity) + { + Argument.AssertNotNull(workspaceIdentity, nameof(workspaceIdentity)); + + SupercomputerIds = new ChangeTrackingList(); + WorkspaceIdentity = workspaceIdentity; + PrivateEndpointConnections = new ChangeTrackingList(); + } + + /// Initializes a new instance of . + /// The status of the last operation. + /// List of linked SuperComputers. + /// workspace API endpoint Uri. + /// workspace User Interface Uri. + /// Identity IDs used for leveraging Workspace resources. + /// Whether or not to use a customer managed key when encrypting data at rest. + /// The key to use for encrypting data at rest when customer managed keys are enabled. + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + /// List of private endpoint connections. + /// Whether or not public network access is allowed for this resource. For security reasons, it is recommended to disable it whenever possible. + /// Agent Subnet ID for agent resources. + /// Private Endpoint Subnet ID for private endpoint connections. + /// Function Subnet ID for workspace resources. + /// The resource group for resources managed on behalf of customer. + /// Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. + /// Keeps track of any properties unknown to the library. + internal WorkspaceProperties(ProvisioningState? provisioningState, IList supercomputerIds, Uri workspaceApiUri, Uri workspaceUiUri, Identity workspaceIdentity, CustomerManagedKeys? customerManagedKeys, KeyVaultProperties keyVaultProperties, ResourceIdentifier logAnalyticsClusterId, IReadOnlyList privateEndpointConnections, PublicNetworkAccess? publicNetworkAccess, ResourceIdentifier agentSubnetId, ResourceIdentifier privateEndpointSubnetId, ResourceIdentifier workspaceSubnetId, string managedResourceGroup, WithMoboBrokerResources managedOnBehalfOfConfiguration, IDictionary additionalBinaryDataProperties) + { + ProvisioningState = provisioningState; + SupercomputerIds = supercomputerIds; + WorkspaceApiUri = workspaceApiUri; + WorkspaceUiUri = workspaceUiUri; + WorkspaceIdentity = workspaceIdentity; + CustomerManagedKeys = customerManagedKeys; + KeyVaultProperties = keyVaultProperties; + LogAnalyticsClusterId = logAnalyticsClusterId; + PrivateEndpointConnections = privateEndpointConnections; + PublicNetworkAccess = publicNetworkAccess; + AgentSubnetId = agentSubnetId; + PrivateEndpointSubnetId = privateEndpointSubnetId; + WorkspaceSubnetId = workspaceSubnetId; + ManagedResourceGroup = managedResourceGroup; + ManagedOnBehalfOfConfiguration = managedOnBehalfOfConfiguration; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + /// The status of the last operation. + public ProvisioningState? ProvisioningState { get; } + + /// List of linked SuperComputers. + public IList SupercomputerIds { get; } + + /// workspace API endpoint Uri. + public Uri WorkspaceApiUri { get; } + + /// workspace User Interface Uri. + public Uri WorkspaceUiUri { get; } + + /// Identity IDs used for leveraging Workspace resources. + public Identity WorkspaceIdentity { get; set; } + + /// Whether or not to use a customer managed key when encrypting data at rest. + public CustomerManagedKeys? CustomerManagedKeys { get; set; } + + /// The key to use for encrypting data at rest when customer managed keys are enabled. + public KeyVaultProperties KeyVaultProperties { get; set; } + + /// The Log Analytics Cluster to use for debug logs. This is required when Customer Managed Keys are enabled. + public ResourceIdentifier LogAnalyticsClusterId { get; set; } + + /// List of private endpoint connections. + public IReadOnlyList PrivateEndpointConnections { get; } + + /// Whether or not public network access is allowed for this resource. For security reasons, it is recommended to disable it whenever possible. + public PublicNetworkAccess? PublicNetworkAccess { get; set; } + + /// Agent Subnet ID for agent resources. + public ResourceIdentifier AgentSubnetId { get; set; } + + /// Private Endpoint Subnet ID for private endpoint connections. + public ResourceIdentifier PrivateEndpointSubnetId { get; set; } + + /// Function Subnet ID for workspace resources. + public ResourceIdentifier WorkspaceSubnetId { get; set; } + + /// The resource group for resources managed on behalf of customer. + public string ManagedResourceGroup { get; } + + /// Managed-On-Behalf-Of configuration properties. This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. + internal WithMoboBrokerResources ManagedOnBehalfOfConfiguration { get; } + + /// Managed-On-Behalf-Of broker resources. + public IReadOnlyList ManagedOnBehalfOfMoboBrokerResources + { + get + { + return ManagedOnBehalfOfConfiguration.MoboBrokerResources; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolCollection.cs new file mode 100644 index 000000000000..73d47118b135 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolCollection.cs @@ -0,0 +1,579 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetNodePools method from an instance of . + /// + public partial class NodePoolCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _nodePoolsClientDiagnostics; + private readonly NodePools _nodePoolsRestClient; + + /// Initializes a new instance of NodePoolCollection for mocking. + protected NodePoolCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal NodePoolCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(NodePoolResource.ResourceType, out string nodePoolApiVersion); + _nodePoolsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", NodePoolResource.ResourceType.Namespace, Diagnostics); + _nodePoolsRestClient = new NodePools(_nodePoolsClientDiagnostics, Pipeline, Endpoint, nodePoolApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != SupercomputerResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, SupercomputerResource.ResourceType), id); + } + } + + /// + /// Create a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the NodePool. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string nodePoolName, NodePoolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, NodePoolData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new NodePoolOperationSource(Client), + _nodePoolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the NodePool. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string nodePoolName, NodePoolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, NodePoolData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new NodePoolOperationSource(Client), + _nodePoolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List NodePool resources by Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools. + /// + /// + /// Operation Id. + /// NodePools_ListBySupercomputer. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new NodePoolsGetBySupercomputerAsyncCollectionResultOfT(_nodePoolsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new NodePoolResource(Client, data)); + } + + /// + /// List NodePool resources by Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools. + /// + /// + /// Operation Id. + /// NodePools_ListBySupercomputer. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new NodePoolsGetBySupercomputerCollectionResultOfT(_nodePoolsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new NodePoolResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(NodePoolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((NodePoolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(NodePoolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((NodePoolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(NodePoolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((NodePoolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, nodePoolName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(NodePoolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((NodePoolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolData.Serialization.cs new file mode 100644 index 000000000000..cac3ecf8b46f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// NodePool tracked resource. + public partial class NodePoolData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal NodePoolData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeNodePoolData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(NodePoolData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(NodePoolData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + NodePoolData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (NodePoolData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(NodePoolData nodePoolData) + { + if (nodePoolData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(nodePoolData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static NodePoolData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeNodePoolData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(NodePoolData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + NodePoolData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (NodePoolData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(NodePoolData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeNodePoolData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static NodePoolData DeserializeNodePoolData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + NodePoolProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = NodePoolProperties.DeserializeNodePoolProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new NodePoolData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolData.cs new file mode 100644 index 000000000000..99541e4caea4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// NodePool tracked resource. + public partial class NodePoolData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public NodePoolData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal NodePoolData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, NodePoolProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public NodePoolProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolResource.Serialization.cs new file mode 100644 index 000000000000..6a03411f7571 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class NodePoolResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new NodePoolData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + NodePoolData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + NodePoolData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolResource.cs new file mode 100644 index 000000000000..3cf8e7cc36f3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/NodePoolResource.cs @@ -0,0 +1,682 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a NodePool along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetNodePools method. + /// + public partial class NodePoolResource : ArmResource + { + private readonly ClientDiagnostics _nodePoolsClientDiagnostics; + private readonly NodePools _nodePoolsRestClient; + private readonly NodePoolData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/supercomputers/nodePools"; + + /// Initializes a new instance of NodePoolResource for mocking. + protected NodePoolResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal NodePoolResource(ArmClient client, NodePoolData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal NodePoolResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string nodePoolApiVersion); + _nodePoolsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _nodePoolsRestClient = new NodePools(_nodePoolsClientDiagnostics, Pipeline, Endpoint, nodePoolApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual NodePoolData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The supercomputerName. + /// The nodePoolName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string supercomputerName, string nodePoolName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, NodePoolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, NodePoolData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new NodePoolOperationSource(Client), + _nodePoolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, NodePoolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, NodePoolData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new NodePoolOperationSource(Client), + _nodePoolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_nodePoolsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a NodePool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}/nodePools/{nodePoolName}. + /// + /// + /// Operation Id. + /// NodePools_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_nodePoolsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + NodePoolData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + NodePoolData patch = new NodePoolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + NodePoolData current = Get(cancellationToken: cancellationToken).Value.Data; + NodePoolData patch = new NodePoolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + NodePoolData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + NodePoolData patch = new NodePoolData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + NodePoolData current = Get(cancellationToken: cancellationToken).Value.Data; + NodePoolData patch = new NodePoolData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + NodePoolData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + NodePoolData patch = new NodePoolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _nodePoolsClientDiagnostics.CreateScope("NodePoolResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _nodePoolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(NodePoolData.FromResponse(result), result); + return Response.FromValue(new NodePoolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + NodePoolData current = Get(cancellationToken: cancellationToken).Value.Data; + NodePoolData patch = new NodePoolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectCollection.cs new file mode 100644 index 000000000000..76059de3c7be --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectCollection.cs @@ -0,0 +1,579 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetProjects method from an instance of . + /// + public partial class ProjectCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _projectsClientDiagnostics; + private readonly Projects _projectsRestClient; + + /// Initializes a new instance of ProjectCollection for mocking. + protected ProjectCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ProjectCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ProjectResource.ResourceType, out string projectApiVersion); + _projectsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ProjectResource.ResourceType.Namespace, Diagnostics); + _projectsRestClient = new Projects(_projectsClientDiagnostics, Pipeline, Endpoint, projectApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != WorkspaceResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, WorkspaceResource.ResourceType), id); + } + } + + /// + /// Create a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Project. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string projectName, ProjectData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, ProjectData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ProjectOperationSource(Client), + _projectsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Project. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string projectName, ProjectData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, ProjectData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ProjectOperationSource(Client), + _projectsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Project resources by Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects. + /// + /// + /// Operation Id. + /// Projects_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new ProjectsGetByWorkspaceAsyncCollectionResultOfT(_projectsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new ProjectResource(Client, data)); + } + + /// + /// List Project resources by Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects. + /// + /// + /// Operation Id. + /// Projects_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new ProjectsGetByWorkspaceCollectionResultOfT(_projectsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new ProjectResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ProjectData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ProjectData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ProjectData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ProjectData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ProjectData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ProjectData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, projectName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ProjectData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ProjectData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectData.Serialization.cs new file mode 100644 index 000000000000..9d27381fcaee --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Project tracked resource. + public partial class ProjectData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ProjectData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeProjectData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ProjectData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ProjectData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ProjectData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ProjectData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(ProjectData projectData) + { + if (projectData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(projectData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static ProjectData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeProjectData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ProjectData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ProjectData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ProjectData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeProjectData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ProjectData DeserializeProjectData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + ProjectProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = ProjectProperties.DeserializeProjectProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ProjectData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectData.cs new file mode 100644 index 000000000000..af759c781a78 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Project tracked resource. + public partial class ProjectData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public ProjectData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal ProjectData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, ProjectProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public ProjectProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectResource.Serialization.cs new file mode 100644 index 000000000000..87380deaa285 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class ProjectResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new ProjectData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + ProjectData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + ProjectData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectResource.cs new file mode 100644 index 000000000000..fbbd02dd2820 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProjectResource.cs @@ -0,0 +1,682 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a Project along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetProjects method. + /// + public partial class ProjectResource : ArmResource + { + private readonly ClientDiagnostics _projectsClientDiagnostics; + private readonly Projects _projectsRestClient; + private readonly ProjectData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/workspaces/projects"; + + /// Initializes a new instance of ProjectResource for mocking. + protected ProjectResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal ProjectResource(ArmClient client, ProjectData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ProjectResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string projectApiVersion); + _projectsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _projectsRestClient = new Projects(_projectsClientDiagnostics, Pipeline, Endpoint, projectApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual ProjectData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The workspaceName. + /// The projectName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string workspaceName, string projectName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, ProjectData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, ProjectData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ProjectOperationSource(Client), + _projectsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, ProjectData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, ProjectData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ProjectOperationSource(Client), + _projectsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_projectsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Project + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/projects/{projectName}. + /// + /// + /// Operation Id. + /// Projects_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_projectsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ProjectData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ProjectData patch = new ProjectData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ProjectData current = Get(cancellationToken: cancellationToken).Value.Data; + ProjectData patch = new ProjectData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ProjectData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ProjectData patch = new ProjectData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ProjectData current = Get(cancellationToken: cancellationToken).Value.Data; + ProjectData patch = new ProjectData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ProjectData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ProjectData patch = new ProjectData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _projectsClientDiagnostics.CreateScope("ProjectResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _projectsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ProjectData.FromResponse(result), result); + return Response.FromValue(new ProjectResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ProjectData current = Get(cancellationToken: cancellationToken).Value.Data; + ProjectData patch = new ProjectData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProviderConstants.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProviderConstants.cs new file mode 100644 index 000000000000..8d1658f4d1a1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ProviderConstants.cs @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal static partial class ProviderConstants + { + /// Gets the DefaultProviderNamespace. + public static string DefaultProviderNamespace { get; } = ClientDiagnostics.GetResourceProviderNamespace(typeof(ProviderConstants).Assembly); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelfPrivateEndpointConnectionsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelfPrivateEndpointConnectionsRestOperations.cs new file mode 100644 index 000000000000..ded0fc2e8e8d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelfPrivateEndpointConnectionsRestOperations.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelfPrivateEndpointConnections + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of BookshelfPrivateEndpointConnections for mocking. + protected BookshelfPrivateEndpointConnections() + { + } + + /// Initializes a new instance of BookshelfPrivateEndpointConnections. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal BookshelfPrivateEndpointConnections(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, string privateEndpointConnectionName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + uri.AppendPath("/privateEndpointConnections/", false); + uri.AppendPath(privateEndpointConnectionName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, string privateEndpointConnectionName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + uri.AppendPath("/privateEndpointConnections/", false); + uri.AppendPath(privateEndpointConnectionName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, string privateEndpointConnectionName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + uri.AppendPath("/privateEndpointConnections/", false); + uri.AppendPath(privateEndpointConnectionName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByBookshelfRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + uri.AppendPath("/privateEndpointConnections", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByBookshelfRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelfPrivateLinkResourcesRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelfPrivateLinkResourcesRestOperations.cs new file mode 100644 index 000000000000..ae3b8fb78f28 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelfPrivateLinkResourcesRestOperations.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class BookshelfPrivateLinkResources + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of BookshelfPrivateLinkResources for mocking. + protected BookshelfPrivateLinkResources() + { + } + + /// Initializes a new instance of BookshelfPrivateLinkResources. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal BookshelfPrivateLinkResources(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, string privateLinkResourceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + uri.AppendPath("/privateLinkResources/", false); + uri.AppendPath(privateLinkResourceName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetByBookshelfRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + uri.AppendPath("/privateLinkResources", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByBookshelfRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelvesRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelvesRestOperations.cs new file mode 100644 index 000000000000..b582151bf507 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/BookshelvesRestOperations.cs @@ -0,0 +1,221 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class Bookshelves + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of Bookshelves for mocking. + protected Bookshelves() + { + } + + /// Initializes a new instance of Bookshelves. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal Bookshelves(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string bookshelfName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves/", false); + uri.AppendPath(bookshelfName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByResourceGroupRequest(Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByResourceGroupRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetBySubscriptionRequest(Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/providers/Microsoft.Discovery/bookshelves", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetBySubscriptionRequest(Uri nextPage, Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ChatModelDeploymentsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ChatModelDeploymentsRestOperations.cs new file mode 100644 index 000000000000..8840fd494545 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ChatModelDeploymentsRestOperations.cs @@ -0,0 +1,189 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class ChatModelDeployments + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of ChatModelDeployments for mocking. + protected ChatModelDeployments() + { + } + + /// Initializes a new instance of ChatModelDeployments. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal ChatModelDeployments(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string chatModelDeploymentName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/chatModelDeployments/", false); + uri.AppendPath(chatModelDeploymentName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string chatModelDeploymentName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/chatModelDeployments/", false); + uri.AppendPath(chatModelDeploymentName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string chatModelDeploymentName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/chatModelDeployments/", false); + uri.AppendPath(chatModelDeploymentName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string chatModelDeploymentName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/chatModelDeployments/", false); + uri.AppendPath(chatModelDeploymentName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByWorkspaceRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/chatModelDeployments", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByWorkspaceRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/NodePoolsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/NodePoolsRestOperations.cs new file mode 100644 index 000000000000..a0e0573949e1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/NodePoolsRestOperations.cs @@ -0,0 +1,189 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class NodePools + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of NodePools for mocking. + protected NodePools() + { + } + + /// Initializes a new instance of NodePools. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal NodePools(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, string nodePoolName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + uri.AppendPath("/nodePools/", false); + uri.AppendPath(nodePoolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, string nodePoolName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + uri.AppendPath("/nodePools/", false); + uri.AppendPath(nodePoolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, string nodePoolName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + uri.AppendPath("/nodePools/", false); + uri.AppendPath(nodePoolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, string nodePoolName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + uri.AppendPath("/nodePools/", false); + uri.AppendPath(nodePoolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetBySupercomputerRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + uri.AppendPath("/nodePools", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetBySupercomputerRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ProjectsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ProjectsRestOperations.cs new file mode 100644 index 000000000000..c74b0a2f1534 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ProjectsRestOperations.cs @@ -0,0 +1,189 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class Projects + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of Projects for mocking. + protected Projects() + { + } + + /// Initializes a new instance of Projects. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal Projects(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string projectName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/projects/", false); + uri.AppendPath(projectName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string projectName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/projects/", false); + uri.AppendPath(projectName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string projectName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/projects/", false); + uri.AppendPath(projectName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string projectName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/projects/", false); + uri.AppendPath(projectName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByWorkspaceRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/projects", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByWorkspaceRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/StorageAssetsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/StorageAssetsRestOperations.cs new file mode 100644 index 000000000000..e5303cf6b1e0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/StorageAssetsRestOperations.cs @@ -0,0 +1,189 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageAssets + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of StorageAssets for mocking. + protected StorageAssets() + { + } + + /// Initializes a new instance of StorageAssets. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal StorageAssets(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, string storageAssetName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + uri.AppendPath("/storageAssets/", false); + uri.AppendPath(storageAssetName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, string storageAssetName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + uri.AppendPath("/storageAssets/", false); + uri.AppendPath(storageAssetName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, string storageAssetName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + uri.AppendPath("/storageAssets/", false); + uri.AppendPath(storageAssetName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, string storageAssetName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + uri.AppendPath("/storageAssets/", false); + uri.AppendPath(storageAssetName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByStorageContainerRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + uri.AppendPath("/storageAssets", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByStorageContainerRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/StorageContainersRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/StorageContainersRestOperations.cs new file mode 100644 index 000000000000..c7c2a103aeb1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/StorageContainersRestOperations.cs @@ -0,0 +1,221 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class StorageContainers + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of StorageContainers for mocking. + protected StorageContainers() + { + } + + /// Initializes a new instance of StorageContainers. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal StorageContainers(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string storageContainerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers/", false); + uri.AppendPath(storageContainerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByResourceGroupRequest(Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByResourceGroupRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetBySubscriptionRequest(Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/providers/Microsoft.Discovery/storageContainers", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetBySubscriptionRequest(Uri nextPage, Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/SupercomputersRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/SupercomputersRestOperations.cs new file mode 100644 index 000000000000..3a31abe5287d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/SupercomputersRestOperations.cs @@ -0,0 +1,221 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class Supercomputers + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of Supercomputers for mocking. + protected Supercomputers() + { + } + + /// Initializes a new instance of Supercomputers. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal Supercomputers(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string supercomputerName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers/", false); + uri.AppendPath(supercomputerName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByResourceGroupRequest(Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByResourceGroupRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetBySubscriptionRequest(Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/providers/Microsoft.Discovery/supercomputers", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetBySubscriptionRequest(Uri nextPage, Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ToolsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ToolsRestOperations.cs new file mode 100644 index 000000000000..cc5cfdc2f206 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/ToolsRestOperations.cs @@ -0,0 +1,221 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class Tools + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of Tools for mocking. + protected Tools() + { + } + + /// Initializes a new instance of Tools. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal Tools(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string toolName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/tools/", false); + uri.AppendPath(toolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string toolName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/tools/", false); + uri.AppendPath(toolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string toolName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/tools/", false); + uri.AppendPath(toolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string toolName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/tools/", false); + uri.AppendPath(toolName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByResourceGroupRequest(Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/tools", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByResourceGroupRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetBySubscriptionRequest(Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/providers/Microsoft.Discovery/tools", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetBySubscriptionRequest(Uri nextPage, Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacePrivateEndpointConnectionsRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacePrivateEndpointConnectionsRestOperations.cs new file mode 100644 index 000000000000..f537f929648f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacePrivateEndpointConnectionsRestOperations.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacePrivateEndpointConnections + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of WorkspacePrivateEndpointConnections for mocking. + protected WorkspacePrivateEndpointConnections() + { + } + + /// Initializes a new instance of WorkspacePrivateEndpointConnections. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal WorkspacePrivateEndpointConnections(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/privateEndpointConnections/", false); + uri.AppendPath(privateEndpointConnectionName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/privateEndpointConnections/", false); + uri.AppendPath(privateEndpointConnectionName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/privateEndpointConnections/", false); + uri.AppendPath(privateEndpointConnectionName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByWorkspaceRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/privateEndpointConnections", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByWorkspaceRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacePrivateLinkResourcesRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacePrivateLinkResourcesRestOperations.cs new file mode 100644 index 000000000000..a033e6e2880d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacePrivateLinkResourcesRestOperations.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class WorkspacePrivateLinkResources + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of WorkspacePrivateLinkResources for mocking. + protected WorkspacePrivateLinkResources() + { + } + + /// Initializes a new instance of WorkspacePrivateLinkResources. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal WorkspacePrivateLinkResources(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, string privateLinkResourceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/privateLinkResources/", false); + uri.AppendPath(privateLinkResourceName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetByWorkspaceRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + uri.AppendPath("/privateLinkResources", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByWorkspaceRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacesRestOperations.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacesRestOperations.cs new file mode 100644 index 000000000000..8a896d15ad8a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/RestOperations/WorkspacesRestOperations.cs @@ -0,0 +1,221 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery +{ + internal partial class Workspaces + { + private readonly Uri _endpoint; + private readonly string _apiVersion; + + /// Initializes a new instance of Workspaces for mocking. + protected Workspaces() + { + } + + /// Initializes a new instance of Workspaces. + /// The ClientDiagnostics is used to provide tracing support for the client library. + /// The HTTP pipeline for sending and receiving REST requests and responses. + /// Service endpoint. + /// + internal Workspaces(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion) + { + ClientDiagnostics = clientDiagnostics; + _endpoint = endpoint; + Pipeline = pipeline; + _apiVersion = apiVersion; + } + + /// The HTTP pipeline for sending and receiving REST requests and responses. + public virtual HttpPipeline Pipeline { get; } + + /// The ClientDiagnostics is used to provide tracing support for the client library. + internal ClientDiagnostics ClientDiagnostics { get; } + + internal HttpMessage CreateGetRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateCreateOrUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Put; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateUpdateRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContent content, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Patch; + request.Headers.SetValue("Content-Type", "application/json"); + request.Headers.SetValue("Accept", "application/json"); + request.Content = content; + return message; + } + + internal HttpMessage CreateDeleteRequest(Guid subscriptionId, string resourceGroupName, string workspaceName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces/", false); + uri.AppendPath(workspaceName, true); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Delete; + return message; + } + + internal HttpMessage CreateGetByResourceGroupRequest(Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/resourceGroups/", false); + uri.AppendPath(resourceGroupName, true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetByResourceGroupRequest(Uri nextPage, Guid subscriptionId, string resourceGroupName, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateGetBySubscriptionRequest(Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + uri.Reset(_endpoint); + uri.AppendPath("/subscriptions/", false); + uri.AppendPath(subscriptionId.ToString(), true); + uri.AppendPath("/providers/Microsoft.Discovery/workspaces", false); + if (_apiVersion != null) + { + uri.AppendQuery("api-version", _apiVersion, true); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + + internal HttpMessage CreateNextGetBySubscriptionRequest(Uri nextPage, Guid subscriptionId, RequestContext context) + { + RawRequestUriBuilder uri = new RawRequestUriBuilder(); + if (nextPage.IsAbsoluteUri) + { + uri.Reset(nextPage); + } + else + { + uri.Reset(new Uri(_endpoint, nextPage)); + } + if (_apiVersion != null) + { + uri.UpdateQuery("api-version", _apiVersion); + } + HttpMessage message = Pipeline.CreateMessage(); + Request request = message.Request; + request.Uri = uri; + request.Method = RequestMethod.Get; + request.Headers.SetValue("Accept", "application/json"); + return message; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetCollection.cs new file mode 100644 index 000000000000..117dc33adb47 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetCollection.cs @@ -0,0 +1,579 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetStorageAssets method from an instance of . + /// + public partial class StorageAssetCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _storageAssetsClientDiagnostics; + private readonly StorageAssets _storageAssetsRestClient; + + /// Initializes a new instance of StorageAssetCollection for mocking. + protected StorageAssetCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal StorageAssetCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(StorageAssetResource.ResourceType, out string storageAssetApiVersion); + _storageAssetsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", StorageAssetResource.ResourceType.Namespace, Diagnostics); + _storageAssetsRestClient = new StorageAssets(_storageAssetsClientDiagnostics, Pipeline, Endpoint, storageAssetApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != StorageContainerResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, StorageContainerResource.ResourceType), id); + } + } + + /// + /// Create a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the StorageAsset. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string storageAssetName, StorageAssetData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, StorageAssetData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageAssetOperationSource(Client), + _storageAssetsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the StorageAsset. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string storageAssetName, StorageAssetData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, StorageAssetData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageAssetOperationSource(Client), + _storageAssetsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List StorageAsset resources by StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets. + /// + /// + /// Operation Id. + /// StorageAssets_ListByStorageContainer. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new StorageAssetsGetByStorageContainerAsyncCollectionResultOfT(_storageAssetsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new StorageAssetResource(Client, data)); + } + + /// + /// List StorageAsset resources by StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets. + /// + /// + /// Operation Id. + /// StorageAssets_ListByStorageContainer. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new StorageAssetsGetByStorageContainerCollectionResultOfT(_storageAssetsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new StorageAssetResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageAssetData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageAssetData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageAssetData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageAssetData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageAssetData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageAssetData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, storageAssetName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageAssetData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageAssetData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetData.Serialization.cs new file mode 100644 index 000000000000..543dd2517853 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Storage Asset tracked resource. + public partial class StorageAssetData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageAssetData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageAssetData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageAssetData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageAssetData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageAssetData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (StorageAssetData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(StorageAssetData storageAssetData) + { + if (storageAssetData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(storageAssetData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static StorageAssetData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeStorageAssetData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageAssetData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageAssetData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (StorageAssetData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageAssetData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageAssetData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageAssetData DeserializeStorageAssetData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + StorageAssetProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = StorageAssetProperties.DeserializeStorageAssetProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new StorageAssetData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetData.cs new file mode 100644 index 000000000000..f1d20de0ddba --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Storage Asset tracked resource. + public partial class StorageAssetData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public StorageAssetData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal StorageAssetData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, StorageAssetProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public StorageAssetProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetResource.Serialization.cs new file mode 100644 index 000000000000..a4a554b211bb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class StorageAssetResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new StorageAssetData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + StorageAssetData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + StorageAssetData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetResource.cs new file mode 100644 index 000000000000..f89e714d86ad --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageAssetResource.cs @@ -0,0 +1,682 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a StorageAsset along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetStorageAssets method. + /// + public partial class StorageAssetResource : ArmResource + { + private readonly ClientDiagnostics _storageAssetsClientDiagnostics; + private readonly StorageAssets _storageAssetsRestClient; + private readonly StorageAssetData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/storageContainers/storageAssets"; + + /// Initializes a new instance of StorageAssetResource for mocking. + protected StorageAssetResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal StorageAssetResource(ArmClient client, StorageAssetData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal StorageAssetResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string storageAssetApiVersion); + _storageAssetsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _storageAssetsRestClient = new StorageAssets(_storageAssetsClientDiagnostics, Pipeline, Endpoint, storageAssetApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual StorageAssetData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The storageContainerName. + /// The storageAssetName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string storageContainerName, string storageAssetName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, StorageAssetData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, StorageAssetData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageAssetOperationSource(Client), + _storageAssetsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, StorageAssetData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, StorageAssetData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageAssetOperationSource(Client), + _storageAssetsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_storageAssetsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a StorageAsset + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}/storageAssets/{storageAssetName}. + /// + /// + /// Operation Id. + /// StorageAssets_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_storageAssetsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageAssetData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + StorageAssetData patch = new StorageAssetData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageAssetData current = Get(cancellationToken: cancellationToken).Value.Data; + StorageAssetData patch = new StorageAssetData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageAssetData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + StorageAssetData patch = new StorageAssetData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageAssetData current = Get(cancellationToken: cancellationToken).Value.Data; + StorageAssetData patch = new StorageAssetData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageAssetData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + StorageAssetData patch = new StorageAssetData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _storageAssetsClientDiagnostics.CreateScope("StorageAssetResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageAssetsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageAssetData.FromResponse(result), result); + return Response.FromValue(new StorageAssetResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageAssetData current = Get(cancellationToken: cancellationToken).Value.Data; + StorageAssetData patch = new StorageAssetData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerCollection.cs new file mode 100644 index 000000000000..445b25ca1c3a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerCollection.cs @@ -0,0 +1,580 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetStorageContainers method from an instance of . + /// + public partial class StorageContainerCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _storageContainersClientDiagnostics; + private readonly StorageContainers _storageContainersRestClient; + + /// Initializes a new instance of StorageContainerCollection for mocking. + protected StorageContainerCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal StorageContainerCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(StorageContainerResource.ResourceType, out string storageContainerApiVersion); + _storageContainersClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", StorageContainerResource.ResourceType.Namespace, Diagnostics); + _storageContainersRestClient = new StorageContainers(_storageContainersClientDiagnostics, Pipeline, Endpoint, storageContainerApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceGroupResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceGroupResource.ResourceType), id); + } + } + + /// + /// Create a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the StorageContainer. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string storageContainerName, StorageContainerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, StorageContainerData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageContainerOperationSource(Client), + _storageContainersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the StorageContainer. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string storageContainerName, StorageContainerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, StorageContainerData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageContainerOperationSource(Client), + _storageContainersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List StorageContainer resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers. + /// + /// + /// Operation Id. + /// StorageContainers_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new StorageContainersGetByResourceGroupAsyncCollectionResultOfT(_storageContainersRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new StorageContainerResource(Client, data)); + } + + /// + /// List StorageContainer resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers. + /// + /// + /// Operation Id. + /// StorageContainers_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new StorageContainersGetByResourceGroupCollectionResultOfT(_storageContainersRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new StorageContainerResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageContainerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageContainerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageContainerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageContainerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageContainerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageContainerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the StorageContainer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string storageContainerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageContainerName, nameof(storageContainerName)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, storageContainerName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(StorageContainerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((StorageContainerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerData.Serialization.cs new file mode 100644 index 000000000000..6afad2346e04 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Storage Container tracked resource. + public partial class StorageContainerData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal StorageContainerData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeStorageContainerData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(StorageContainerData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(StorageContainerData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + StorageContainerData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (StorageContainerData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(StorageContainerData storageContainerData) + { + if (storageContainerData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(storageContainerData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static StorageContainerData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeStorageContainerData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageContainerData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + StorageContainerData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (StorageContainerData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(StorageContainerData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeStorageContainerData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static StorageContainerData DeserializeStorageContainerData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + StorageContainerProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = StorageContainerProperties.DeserializeStorageContainerProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new StorageContainerData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerData.cs new file mode 100644 index 000000000000..86d3170e014a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Storage Container tracked resource. + public partial class StorageContainerData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public StorageContainerData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal StorageContainerData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, StorageContainerProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public StorageContainerProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerResource.Serialization.cs new file mode 100644 index 000000000000..d5fbbc888f87 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class StorageContainerResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new StorageContainerData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + StorageContainerData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + StorageContainerData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerResource.cs new file mode 100644 index 000000000000..36e24965dfa6 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/StorageContainerResource.cs @@ -0,0 +1,714 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a StorageContainer along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetStorageContainers method. + /// + public partial class StorageContainerResource : ArmResource + { + private readonly ClientDiagnostics _storageContainersClientDiagnostics; + private readonly StorageContainers _storageContainersRestClient; + private readonly StorageContainerData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/storageContainers"; + + /// Initializes a new instance of StorageContainerResource for mocking. + protected StorageContainerResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal StorageContainerResource(ArmClient client, StorageContainerData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal StorageContainerResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string storageContainerApiVersion); + _storageContainersClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _storageContainersRestClient = new StorageContainers(_storageContainersClientDiagnostics, Pipeline, Endpoint, storageContainerApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual StorageContainerData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The storageContainerName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string storageContainerName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, StorageContainerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, StorageContainerData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageContainerOperationSource(Client), + _storageContainersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, StorageContainerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, StorageContainerData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new StorageContainerOperationSource(Client), + _storageContainersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_storageContainersClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a StorageContainer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/storageContainers/{storageContainerName}. + /// + /// + /// Operation Id. + /// StorageContainers_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_storageContainersClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageContainerData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + StorageContainerData patch = new StorageContainerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageContainerData current = Get(cancellationToken: cancellationToken).Value.Data; + StorageContainerData patch = new StorageContainerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageContainerData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + StorageContainerData patch = new StorageContainerData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageContainerData current = Get(cancellationToken: cancellationToken).Value.Data; + StorageContainerData patch = new StorageContainerData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageContainerData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + StorageContainerData patch = new StorageContainerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _storageContainersClientDiagnostics.CreateScope("StorageContainerResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _storageContainersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(StorageContainerData.FromResponse(result), result); + return Response.FromValue(new StorageContainerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + StorageContainerData current = Get(cancellationToken: cancellationToken).Value.Data; + StorageContainerData patch = new StorageContainerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a collection of StorageAssets in the . + /// An object representing collection of StorageAssets and their operations over a StorageAssetResource. + public virtual StorageAssetCollection GetStorageAssets() + { + return GetCachedClient(client => new StorageAssetCollection(client, Id)); + } + + /// Get a StorageAsset. + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetStorageAssetAsync(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + return await GetStorageAssets().GetAsync(storageAssetName, cancellationToken).ConfigureAwait(false); + } + + /// Get a StorageAsset. + /// The name of the StorageAsset. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetStorageAsset(string storageAssetName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(storageAssetName, nameof(storageAssetName)); + + return GetStorageAssets().Get(storageAssetName, cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerCollection.cs new file mode 100644 index 000000000000..ed85c0b89984 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerCollection.cs @@ -0,0 +1,580 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetSupercomputers method from an instance of . + /// + public partial class SupercomputerCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _supercomputersClientDiagnostics; + private readonly Supercomputers _supercomputersRestClient; + + /// Initializes a new instance of SupercomputerCollection for mocking. + protected SupercomputerCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal SupercomputerCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(SupercomputerResource.ResourceType, out string supercomputerApiVersion); + _supercomputersClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", SupercomputerResource.ResourceType.Namespace, Diagnostics); + _supercomputersRestClient = new Supercomputers(_supercomputersClientDiagnostics, Pipeline, Endpoint, supercomputerApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceGroupResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceGroupResource.ResourceType), id); + } + } + + /// + /// Create a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Supercomputer. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string supercomputerName, SupercomputerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, SupercomputerData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new SupercomputerOperationSource(Client), + _supercomputersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Supercomputer. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string supercomputerName, SupercomputerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, SupercomputerData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new SupercomputerOperationSource(Client), + _supercomputersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Supercomputer resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers. + /// + /// + /// Operation Id. + /// Supercomputers_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new SupercomputersGetByResourceGroupAsyncCollectionResultOfT(_supercomputersRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new SupercomputerResource(Client, data)); + } + + /// + /// List Supercomputer resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers. + /// + /// + /// Operation Id. + /// Supercomputers_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new SupercomputersGetByResourceGroupCollectionResultOfT(_supercomputersRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new SupercomputerResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(SupercomputerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((SupercomputerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(SupercomputerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((SupercomputerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(SupercomputerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((SupercomputerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Supercomputer. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string supercomputerName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(supercomputerName, nameof(supercomputerName)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, supercomputerName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(SupercomputerData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((SupercomputerData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerData.Serialization.cs new file mode 100644 index 000000000000..d2df64ae6df9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Supercomputer tracked resource. + public partial class SupercomputerData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal SupercomputerData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeSupercomputerData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(SupercomputerData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(SupercomputerData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + SupercomputerData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (SupercomputerData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(SupercomputerData supercomputerData) + { + if (supercomputerData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(supercomputerData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static SupercomputerData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeSupercomputerData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + SupercomputerData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (SupercomputerData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(SupercomputerData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeSupercomputerData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static SupercomputerData DeserializeSupercomputerData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + SupercomputerProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = SupercomputerProperties.DeserializeSupercomputerProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new SupercomputerData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerData.cs new file mode 100644 index 000000000000..52c9807b7c04 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Supercomputer tracked resource. + public partial class SupercomputerData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public SupercomputerData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal SupercomputerData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, SupercomputerProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public SupercomputerProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerResource.Serialization.cs new file mode 100644 index 000000000000..949cda614dba --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class SupercomputerResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new SupercomputerData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + SupercomputerData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + SupercomputerData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerResource.cs new file mode 100644 index 000000000000..d521477c5007 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/SupercomputerResource.cs @@ -0,0 +1,714 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a Supercomputer along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetSupercomputers method. + /// + public partial class SupercomputerResource : ArmResource + { + private readonly ClientDiagnostics _supercomputersClientDiagnostics; + private readonly Supercomputers _supercomputersRestClient; + private readonly SupercomputerData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/supercomputers"; + + /// Initializes a new instance of SupercomputerResource for mocking. + protected SupercomputerResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal SupercomputerResource(ArmClient client, SupercomputerData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal SupercomputerResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string supercomputerApiVersion); + _supercomputersClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _supercomputersRestClient = new Supercomputers(_supercomputersClientDiagnostics, Pipeline, Endpoint, supercomputerApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual SupercomputerData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The supercomputerName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string supercomputerName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, SupercomputerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, SupercomputerData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new SupercomputerOperationSource(Client), + _supercomputersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, SupercomputerData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, SupercomputerData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new SupercomputerOperationSource(Client), + _supercomputersClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_supercomputersClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Supercomputer + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/supercomputers/{supercomputerName}. + /// + /// + /// Operation Id. + /// Supercomputers_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_supercomputersClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + SupercomputerData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + SupercomputerData patch = new SupercomputerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + SupercomputerData current = Get(cancellationToken: cancellationToken).Value.Data; + SupercomputerData patch = new SupercomputerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + SupercomputerData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + SupercomputerData patch = new SupercomputerData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + SupercomputerData current = Get(cancellationToken: cancellationToken).Value.Data; + SupercomputerData patch = new SupercomputerData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + SupercomputerData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + SupercomputerData patch = new SupercomputerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _supercomputersClientDiagnostics.CreateScope("SupercomputerResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _supercomputersRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(SupercomputerData.FromResponse(result), result); + return Response.FromValue(new SupercomputerResource(Client, response.Value), response.GetRawResponse()); + } + else + { + SupercomputerData current = Get(cancellationToken: cancellationToken).Value.Data; + SupercomputerData patch = new SupercomputerData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a collection of NodePools in the . + /// An object representing collection of NodePools and their operations over a NodePoolResource. + public virtual NodePoolCollection GetNodePools() + { + return GetCachedClient(client => new NodePoolCollection(client, Id)); + } + + /// Get a NodePool. + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetNodePoolAsync(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + return await GetNodePools().GetAsync(nodePoolName, cancellationToken).ConfigureAwait(false); + } + + /// Get a NodePool. + /// The name of the NodePool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetNodePool(string nodePoolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(nodePoolName, nameof(nodePoolName)); + + return GetNodePools().Get(nodePoolName, cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolCollection.cs new file mode 100644 index 000000000000..5b4efdb67d11 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolCollection.cs @@ -0,0 +1,580 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetTools method from an instance of . + /// + public partial class ToolCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _toolsClientDiagnostics; + private readonly Tools _toolsRestClient; + + /// Initializes a new instance of ToolCollection for mocking. + protected ToolCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ToolCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ToolResource.ResourceType, out string toolApiVersion); + _toolsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ToolResource.ResourceType.Namespace, Diagnostics); + _toolsRestClient = new Tools(_toolsClientDiagnostics, Pipeline, Endpoint, toolApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceGroupResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceGroupResource.ResourceType), id); + } + } + + /// + /// Create a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Tool. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string toolName, ToolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, ToolData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ToolOperationSource(Client), + _toolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Tool. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string toolName, ToolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, ToolData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ToolOperationSource(Client), + _toolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Tool resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools. + /// + /// + /// Operation Id. + /// Tools_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new ToolsGetByResourceGroupAsyncCollectionResultOfT(_toolsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new ToolResource(Client, data)); + } + + /// + /// List Tool resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools. + /// + /// + /// Operation Id. + /// Tools_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new ToolsGetByResourceGroupCollectionResultOfT(_toolsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new ToolResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ToolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ToolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ToolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ToolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ToolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ToolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Tool. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string toolName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(toolName, nameof(toolName)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, toolName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(ToolData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((ToolData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolData.Serialization.cs new file mode 100644 index 000000000000..30695806dc0f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Tool tracked resource. + public partial class ToolData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal ToolData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeToolData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(ToolData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(ToolData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + ToolData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (ToolData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(ToolData toolData) + { + if (toolData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(toolData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static ToolData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeToolData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ToolData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + ToolData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (ToolData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(ToolData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeToolData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static ToolData DeserializeToolData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + ToolProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = ToolProperties.DeserializeToolProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new ToolData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolData.cs new file mode 100644 index 000000000000..2372e91be518 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Tool tracked resource. + public partial class ToolData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public ToolData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal ToolData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, ToolProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public ToolProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolResource.Serialization.cs new file mode 100644 index 000000000000..b15963160cd0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class ToolResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new ToolData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + ToolData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + ToolData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolResource.cs new file mode 100644 index 000000000000..a7bb26c3c8ec --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/ToolResource.cs @@ -0,0 +1,681 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a Tool along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetTools method. + /// + public partial class ToolResource : ArmResource + { + private readonly ClientDiagnostics _toolsClientDiagnostics; + private readonly Tools _toolsRestClient; + private readonly ToolData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/tools"; + + /// Initializes a new instance of ToolResource for mocking. + protected ToolResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal ToolResource(ArmClient client, ToolData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal ToolResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string toolApiVersion); + _toolsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _toolsRestClient = new Tools(_toolsClientDiagnostics, Pipeline, Endpoint, toolApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual ToolData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The toolName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string toolName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, ToolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, ToolData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ToolOperationSource(Client), + _toolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, ToolData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, ToolData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new ToolOperationSource(Client), + _toolsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_toolsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Tool + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/tools/{toolName}. + /// + /// + /// Operation Id. + /// Tools_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_toolsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ToolData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ToolData patch = new ToolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ToolData current = Get(cancellationToken: cancellationToken).Value.Data; + ToolData patch = new ToolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ToolData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ToolData patch = new ToolData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ToolData current = Get(cancellationToken: cancellationToken).Value.Data; + ToolData patch = new ToolData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ToolData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + ToolData patch = new ToolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _toolsClientDiagnostics.CreateScope("ToolResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _toolsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(ToolData.FromResponse(result), result); + return Response.FromValue(new ToolResource(Client, response.Value), response.GetRawResponse()); + } + else + { + ToolData current = Get(cancellationToken: cancellationToken).Value.Data; + ToolData patch = new ToolData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceCollection.cs new file mode 100644 index 000000000000..8350aca40187 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceCollection.cs @@ -0,0 +1,580 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetWorkspaces method from an instance of . + /// + public partial class WorkspaceCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _workspacesClientDiagnostics; + private readonly Workspaces _workspacesRestClient; + + /// Initializes a new instance of WorkspaceCollection for mocking. + protected WorkspaceCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkspaceCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(WorkspaceResource.ResourceType, out string workspaceApiVersion); + _workspacesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", WorkspaceResource.ResourceType.Namespace, Diagnostics); + _workspacesRestClient = new Workspaces(_workspacesClientDiagnostics, Pipeline, Endpoint, workspaceApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceGroupResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceGroupResource.ResourceType), id); + } + } + + /// + /// Create a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Workspace. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string workspaceName, WorkspaceData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, WorkspaceData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspaceOperationSource(Client), + _workspacesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Create a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the Workspace. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string workspaceName, WorkspaceData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, WorkspaceData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspaceOperationSource(Client), + _workspacesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// List Workspace resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces. + /// + /// + /// Operation Id. + /// Workspaces_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new WorkspacesGetByResourceGroupAsyncCollectionResultOfT(_workspacesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new WorkspaceResource(Client, data)); + } + + /// + /// List Workspace resources by resource group + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces. + /// + /// + /// Operation Id. + /// Workspaces_ListByResourceGroup. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new WorkspacesGetByResourceGroupCollectionResultOfT(_workspacesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, context), data => new WorkspaceResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspaceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspaceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspaceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspaceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspaceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspaceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the Workspace. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string workspaceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(workspaceName, nameof(workspaceName)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, workspaceName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspaceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspaceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceData.Serialization.cs new file mode 100644 index 000000000000..543db74de66c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceData.Serialization.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Workspace tracked resource. + public partial class WorkspaceData : TrackedResourceData, IJsonModel + { + /// Initializes a new instance of for deserialization. + internal WorkspaceData() + { + } + + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspaceData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspaceData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspaceData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspaceData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (WorkspaceData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(WorkspaceData workspaceData) + { + if (workspaceData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(workspaceData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static WorkspaceData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkspaceData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspaceData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspaceData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (WorkspaceData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspaceData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspaceData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspaceData DeserializeWorkspaceData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + IDictionary tags = default; + AzureLocation location = default; + WorkspaceProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("tags"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + Dictionary dictionary = new Dictionary(); + foreach (var prop0 in prop.Value.EnumerateObject()) + { + if (prop0.Value.ValueKind == JsonValueKind.Null) + { + dictionary.Add(prop0.Name, null); + } + else + { + dictionary.Add(prop0.Name, prop0.Value.GetString()); + } + } + tags = dictionary; + continue; + } + if (prop.NameEquals("location"u8)) + { + location = new AzureLocation(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = WorkspaceProperties.DeserializeWorkspaceProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspaceData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + tags ?? new ChangeTrackingDictionary(), + location, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceData.cs new file mode 100644 index 000000000000..a763d7a3af72 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceData.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// Workspace tracked resource. + public partial class WorkspaceData : TrackedResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + /// The geo-location where the resource lives. + public WorkspaceData(AzureLocation location) : base(location) + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// Resource tags. + /// The geo-location where the resource lives. + /// The resource-specific properties for this resource. + internal WorkspaceData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, IDictionary tags, AzureLocation location, WorkspaceProperties properties) : base(id, name, resourceType, systemData, tags, location) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public WorkspaceProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionCollection.cs new file mode 100644 index 000000000000..47ca69e4f66c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionCollection.cs @@ -0,0 +1,579 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetWorkspacePrivateEndpointConnections method from an instance of . + /// + public partial class WorkspacePrivateEndpointConnectionCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _workspacePrivateEndpointConnectionsClientDiagnostics; + private readonly WorkspacePrivateEndpointConnections _workspacePrivateEndpointConnectionsRestClient; + + /// Initializes a new instance of WorkspacePrivateEndpointConnectionCollection for mocking. + protected WorkspacePrivateEndpointConnectionCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkspacePrivateEndpointConnectionCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(WorkspacePrivateEndpointConnectionResource.ResourceType, out string workspacePrivateEndpointConnectionApiVersion); + _workspacePrivateEndpointConnectionsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", WorkspacePrivateEndpointConnectionResource.ResourceType.Namespace, Diagnostics); + _workspacePrivateEndpointConnectionsRestClient = new WorkspacePrivateEndpointConnections(_workspacePrivateEndpointConnectionsClientDiagnostics, Pipeline, Endpoint, workspacePrivateEndpointConnectionApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != WorkspaceResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, WorkspaceResource.ResourceType), id); + } + } + + /// + /// Approves or updates the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the private endpoint connection associated with the Azure resource. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> CreateOrUpdateAsync(WaitUntil waitUntil, string privateEndpointConnectionName, WorkspacePrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, WorkspacePrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspacePrivateEndpointConnectionOperationSource(Client), + _workspacePrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Approves or updates the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The name of the private endpoint connection associated with the Azure resource. + /// Resource create parameters. + /// The cancellation token to use. + /// or is null. + /// is an empty string, and was expected to be non-empty. + public virtual ArmOperation CreateOrUpdate(WaitUntil waitUntil, string privateEndpointConnectionName, WorkspacePrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.CreateOrUpdate"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, WorkspacePrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspacePrivateEndpointConnectionOperationSource(Client), + _workspacePrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private endpoint connection associated with the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private endpoint connection associated with the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Lists all private endpoint connections for a workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new WorkspacePrivateEndpointConnectionsGetByWorkspaceAsyncCollectionResultOfT(_workspacePrivateEndpointConnectionsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new WorkspacePrivateEndpointConnectionResource(Client, data)); + } + + /// + /// Lists all private endpoint connections for a workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new WorkspacePrivateEndpointConnectionsGetByWorkspaceCollectionResultOfT(_workspacePrivateEndpointConnectionsRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new WorkspacePrivateEndpointConnectionResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateEndpointConnectionName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateEndpointConnectionData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionData.Serialization.cs new file mode 100644 index 000000000000..a2abe262d746 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionData.Serialization.cs @@ -0,0 +1,196 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// The Private Endpoint Connection resource for Workspace. + public partial class WorkspacePrivateEndpointConnectionData : ResourceData, IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspacePrivateEndpointConnectionData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspacePrivateEndpointConnectionData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (WorkspacePrivateEndpointConnectionData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to serialize into . + internal static RequestContent ToRequestContent(WorkspacePrivateEndpointConnectionData workspacePrivateEndpointConnectionData) + { + if (workspacePrivateEndpointConnectionData == null) + { + return null; + } + Utf8JsonRequestContent content = new Utf8JsonRequestContent(); + content.JsonWriter.WriteObjectValue(workspacePrivateEndpointConnectionData, ModelSerializationExtensions.WireOptions); + return content; + } + + /// The to deserialize the from. + internal static WorkspacePrivateEndpointConnectionData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkspacePrivateEndpointConnectionData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspacePrivateEndpointConnectionData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (WorkspacePrivateEndpointConnectionData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateEndpointConnectionData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspacePrivateEndpointConnectionData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspacePrivateEndpointConnectionData DeserializeWorkspacePrivateEndpointConnectionData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + PrivateEndpointConnectionProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = PrivateEndpointConnectionProperties.DeserializePrivateEndpointConnectionProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspacePrivateEndpointConnectionData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionData.cs new file mode 100644 index 000000000000..9b580cf99e9f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionData.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// The Private Endpoint Connection resource for Workspace. + public partial class WorkspacePrivateEndpointConnectionData : ResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + public WorkspacePrivateEndpointConnectionData() + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// The resource-specific properties for this resource. + internal WorkspacePrivateEndpointConnectionData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, PrivateEndpointConnectionProperties properties) : base(id, name, resourceType, systemData) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public PrivateEndpointConnectionProperties Properties { get; set; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionResource.Serialization.cs new file mode 100644 index 000000000000..80a78cb088da --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class WorkspacePrivateEndpointConnectionResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new WorkspacePrivateEndpointConnectionData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + WorkspacePrivateEndpointConnectionData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + WorkspacePrivateEndpointConnectionData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionResource.cs new file mode 100644 index 000000000000..4ff5cbcd14b0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateEndpointConnectionResource.cs @@ -0,0 +1,406 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a WorkspacePrivateEndpointConnection along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetWorkspacePrivateEndpointConnections method. + /// + public partial class WorkspacePrivateEndpointConnectionResource : ArmResource + { + private readonly ClientDiagnostics _workspacePrivateEndpointConnectionsClientDiagnostics; + private readonly WorkspacePrivateEndpointConnections _workspacePrivateEndpointConnectionsRestClient; + private readonly WorkspacePrivateEndpointConnectionData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/workspaces/privateEndpointConnections"; + + /// Initializes a new instance of WorkspacePrivateEndpointConnectionResource for mocking. + protected WorkspacePrivateEndpointConnectionResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal WorkspacePrivateEndpointConnectionResource(ArmClient client, WorkspacePrivateEndpointConnectionData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkspacePrivateEndpointConnectionResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string workspacePrivateEndpointConnectionApiVersion); + _workspacePrivateEndpointConnectionsClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _workspacePrivateEndpointConnectionsRestClient = new WorkspacePrivateEndpointConnections(_workspacePrivateEndpointConnectionsClientDiagnostics, Pipeline, Endpoint, workspacePrivateEndpointConnectionApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual WorkspacePrivateEndpointConnectionData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The workspaceName. + /// The privateEndpointConnectionName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string workspaceName, string privateEndpointConnectionName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Gets the specified private endpoint connection associated with the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private endpoint connection associated with the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspacePrivateEndpointConnectionData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateEndpointConnectionResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Deletes the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_workspacePrivateEndpointConnectionsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Deletes the specified private endpoint connection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_workspacePrivateEndpointConnectionsClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a WorkspacePrivateEndpointConnection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, WorkspacePrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, WorkspacePrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspacePrivateEndpointConnectionOperationSource(Client), + _workspacePrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a WorkspacePrivateEndpointConnection. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateEndpointConnections_CreateOrUpdate. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// Resource create parameters. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, WorkspacePrivateEndpointConnectionData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacePrivateEndpointConnectionsClientDiagnostics.CreateScope("WorkspacePrivateEndpointConnectionResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateEndpointConnectionsRestClient.CreateCreateOrUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, WorkspacePrivateEndpointConnectionData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspacePrivateEndpointConnectionOperationSource(Client), + _workspacePrivateEndpointConnectionsClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.AzureAsyncOperation); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResource.Serialization.cs new file mode 100644 index 000000000000..4096401af076 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class WorkspacePrivateLinkResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new WorkspacePrivateLinkResourceData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + WorkspacePrivateLinkResourceData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + WorkspacePrivateLinkResourceData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResource.cs new file mode 100644 index 000000000000..d63c6539995a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResource.cs @@ -0,0 +1,190 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a WorkspacePrivateLinkResource along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetWorkspacePrivateLinkResources method. + /// + public partial class WorkspacePrivateLinkResource : ArmResource + { + private readonly ClientDiagnostics _workspacePrivateLinkResourcesClientDiagnostics; + private readonly WorkspacePrivateLinkResources _workspacePrivateLinkResourcesRestClient; + private readonly WorkspacePrivateLinkResourceData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/workspaces/privateLinkResources"; + + /// Initializes a new instance of WorkspacePrivateLinkResource for mocking. + protected WorkspacePrivateLinkResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal WorkspacePrivateLinkResource(ArmClient client, WorkspacePrivateLinkResourceData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkspacePrivateLinkResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string workspacePrivateLinkResourceApiVersion); + _workspacePrivateLinkResourcesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _workspacePrivateLinkResourcesRestClient = new WorkspacePrivateLinkResources(_workspacePrivateLinkResourcesClientDiagnostics, Pipeline, Endpoint, workspacePrivateLinkResourceApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual WorkspacePrivateLinkResourceData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The workspaceName. + /// The privateLinkResourceName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string workspaceName, string privateLinkResourceName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Gets the specified private link resource for the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private link resource for the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Parent.Name, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceCollection.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceCollection.cs new file mode 100644 index 000000000000..1be19cbf54a5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceCollection.cs @@ -0,0 +1,463 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a collection of and their operations. + /// Each in the collection will belong to the same instance of . + /// To get a instance call the GetWorkspacePrivateLinkResources method from an instance of . + /// + public partial class WorkspacePrivateLinkResourceCollection : ArmCollection, IEnumerable, IAsyncEnumerable + { + private readonly ClientDiagnostics _workspacePrivateLinkResourcesClientDiagnostics; + private readonly WorkspacePrivateLinkResources _workspacePrivateLinkResourcesRestClient; + + /// Initializes a new instance of WorkspacePrivateLinkResourceCollection for mocking. + protected WorkspacePrivateLinkResourceCollection() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkspacePrivateLinkResourceCollection(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(WorkspacePrivateLinkResource.ResourceType, out string workspacePrivateLinkResourceApiVersion); + _workspacePrivateLinkResourcesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", WorkspacePrivateLinkResource.ResourceType.Namespace, Diagnostics); + _workspacePrivateLinkResourcesRestClient = new WorkspacePrivateLinkResources(_workspacePrivateLinkResourcesClientDiagnostics, Pipeline, Endpoint, workspacePrivateLinkResourceApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != WorkspaceResource.ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, WorkspaceResource.ResourceType), id); + } + } + + /// + /// Gets the specified private link resource for the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Gets the specified private link resource for the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Get(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Lists all private link resources for the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual AsyncPageable GetAllAsync(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new AsyncPageableWrapper(new WorkspacePrivateLinkResourcesGetByWorkspaceAsyncCollectionResultOfT(_workspacePrivateLinkResourcesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new WorkspacePrivateLinkResource(Client, data)); + } + + /// + /// Lists all private link resources for the workspace. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_ListByWorkspace. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The cancellation token to use. + /// A collection of that may take multiple service requests to iterate over. + public virtual Pageable GetAll(CancellationToken cancellationToken = default) + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + return new PageableWrapper(new WorkspacePrivateLinkResourcesGetByWorkspaceCollectionResultOfT(_workspacePrivateLinkResourcesRestClient, Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context), data => new WorkspacePrivateLinkResource(Client, data)); + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> ExistsAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Checks to see if the resource exists in azure. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual Response Exists(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.Exists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + return Response.FromValue(response.Value != null, response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual async Task> GetIfExistsAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + await Pipeline.SendAsync(message, context.CancellationToken).ConfigureAwait(false); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Tries to get details for this resource from the service. + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}/privateLinkResources/{privateLinkResourceName}. + /// + /// + /// Operation Id. + /// WorkspacePrivateLinkResources_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + public virtual NullableResponse GetIfExists(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + using DiagnosticScope scope = _workspacePrivateLinkResourcesClientDiagnostics.CreateScope("WorkspacePrivateLinkResourceCollection.GetIfExists"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacePrivateLinkResourcesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, privateLinkResourceName, context); + Pipeline.Send(message, context.CancellationToken); + Response result = message.Response; + Response response = default; + switch (result.Status) + { + case 200: + response = Response.FromValue(WorkspacePrivateLinkResourceData.FromResponse(result), result); + break; + case 404: + response = Response.FromValue((WorkspacePrivateLinkResourceData)null, result); + break; + default: + throw new RequestFailedException(result); + } + if (response.Value == null) + { + return new NoValueResponse(response.GetRawResponse()); + } + return Response.FromValue(new WorkspacePrivateLinkResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetAll().GetEnumerator(); + } + + /// The cancellation token to use. + IAsyncEnumerator IAsyncEnumerable.GetAsyncEnumerator(CancellationToken cancellationToken) + { + return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceData.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceData.Serialization.cs new file mode 100644 index 000000000000..915e7c98cfc1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceData.Serialization.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Collections.Generic; +using System.Text; +using System.Text.Json; +using Azure; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// A private link resource for Workspace. + public partial class WorkspacePrivateLinkResourceData : ResourceData, IJsonModel + { + /// The data to parse. + /// The client options for reading and writing models. + protected virtual ResourceData PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + using (JsonDocument document = JsonDocument.Parse(data, ModelSerializationExtensions.JsonDocumentOptions)) + { + return DeserializeWorkspacePrivateLinkResourceData(document.RootElement, options); + } + default: + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceData)} does not support reading '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + switch (format) + { + case "J": + return ModelReaderWriter.Write(this, options, AzureResourceManagerDiscoveryContext.Default); + default: + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceData)} does not support writing '{options.Format}' format."); + } + } + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); + + /// The data to parse. + /// The client options for reading and writing models. + WorkspacePrivateLinkResourceData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => (WorkspacePrivateLinkResourceData)PersistableModelCreateCore(data, options); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => "J"; + + /// The to deserialize the from. + internal static WorkspacePrivateLinkResourceData FromResponse(Response response) + { + using JsonDocument document = JsonDocument.Parse(response.Content, ModelSerializationExtensions.JsonDocumentOptions); + return DeserializeWorkspacePrivateLinkResourceData(document.RootElement, ModelSerializationExtensions.WireOptions); + } + + /// The JSON writer. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + writer.WriteStartObject(); + JsonModelWriteCore(writer, options); + writer.WriteEndObject(); + } + + /// The JSON writer. + /// The client options for reading and writing models. + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceData)} does not support writing '{format}' format."); + } + base.JsonModelWriteCore(writer, options); + if (Optional.IsDefined(Properties)) + { + writer.WritePropertyName("properties"u8); + writer.WriteObjectValue(Properties, options); + } + } + + /// The JSON reader. + /// The client options for reading and writing models. + WorkspacePrivateLinkResourceData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => (WorkspacePrivateLinkResourceData)JsonModelCreateCore(ref reader, options); + + /// The JSON reader. + /// The client options for reading and writing models. + protected virtual ResourceData JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) + { + string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; + if (format != "J") + { + throw new FormatException($"The model {nameof(WorkspacePrivateLinkResourceData)} does not support reading '{format}' format."); + } + using JsonDocument document = JsonDocument.ParseValue(ref reader); + return DeserializeWorkspacePrivateLinkResourceData(document.RootElement, options); + } + + /// The JSON element to deserialize. + /// The client options for reading and writing models. + internal static WorkspacePrivateLinkResourceData DeserializeWorkspacePrivateLinkResourceData(JsonElement element, ModelReaderWriterOptions options) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + ResourceIdentifier id = default; + string name = default; + ResourceType resourceType = default; + SystemData systemData = default; + IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); + DiscoveryPrivateLinkResourceProperties properties = default; + foreach (var prop in element.EnumerateObject()) + { + if (prop.NameEquals("id"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + id = new ResourceIdentifier(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("name"u8)) + { + name = prop.Value.GetString(); + continue; + } + if (prop.NameEquals("type"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + resourceType = new ResourceType(prop.Value.GetString()); + continue; + } + if (prop.NameEquals("systemData"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + systemData = ModelReaderWriter.Read(new BinaryData(Encoding.UTF8.GetBytes(prop.Value.GetRawText())), ModelSerializationExtensions.WireOptions, AzureResourceManagerDiscoveryContext.Default); + continue; + } + if (prop.NameEquals("properties"u8)) + { + if (prop.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + properties = DiscoveryPrivateLinkResourceProperties.DeserializeDiscoveryPrivateLinkResourceProperties(prop.Value, options); + continue; + } + if (options.Format != "W") + { + additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); + } + } + return new WorkspacePrivateLinkResourceData( + id, + name, + resourceType, + systemData, + additionalBinaryDataProperties, + properties); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceData.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceData.cs new file mode 100644 index 000000000000..783e8c567045 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspacePrivateLinkResourceData.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Models; + +namespace Azure.ResourceManager.Discovery +{ + /// A private link resource for Workspace. + public partial class WorkspacePrivateLinkResourceData : ResourceData + { + /// Keeps track of any properties unknown to the library. + private protected readonly IDictionary _additionalBinaryDataProperties; + + /// Initializes a new instance of . + internal WorkspacePrivateLinkResourceData() + { + } + + /// Initializes a new instance of . + /// Fully qualified resource ID for the resource. Ex - /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. + /// Keeps track of any properties unknown to the library. + /// The resource-specific properties for this resource. + internal WorkspacePrivateLinkResourceData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IDictionary additionalBinaryDataProperties, DiscoveryPrivateLinkResourceProperties properties) : base(id, name, resourceType, systemData) + { + _additionalBinaryDataProperties = additionalBinaryDataProperties; + Properties = properties; + } + + /// The resource-specific properties for this resource. + public DiscoveryPrivateLinkResourceProperties Properties { get; } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceResource.Serialization.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceResource.Serialization.cs new file mode 100644 index 000000000000..f53ee35b2b9f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceResource.Serialization.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.ClientModel.Primitives; +using System.Text.Json; + +namespace Azure.ResourceManager.Discovery +{ + /// + public partial class WorkspaceResource : IJsonModel + { + private static IJsonModel s_dataDeserializationInstance; + + private static IJsonModel DataDeserializationInstance => s_dataDeserializationInstance ??= new WorkspaceData(); + + /// The writer to serialize the model to. + /// The client options for reading and writing models. + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => ((IJsonModel)Data).Write(writer, options); + + /// The reader for deserializing the model. + /// The client options for reading and writing models. + WorkspaceData IJsonModel.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => DataDeserializationInstance.Create(ref reader, options); + + /// The client options for reading and writing models. + BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => ModelReaderWriter.Write(Data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The binary data to be processed. + /// The client options for reading and writing models. + WorkspaceData IPersistableModel.Create(BinaryData data, ModelReaderWriterOptions options) => ModelReaderWriter.Read(data, options, AzureResourceManagerDiscoveryContext.Default); + + /// The client options for reading and writing models. + string IPersistableModel.GetFormatFromOptions(ModelReaderWriterOptions options) => DataDeserializationInstance.GetFormatFromOptions(options); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceResource.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceResource.cs new file mode 100644 index 000000000000..513d7544aad5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Generated/WorkspaceResource.cs @@ -0,0 +1,813 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using Azure; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.ResourceManager; +using Azure.ResourceManager.Resources; + +namespace Azure.ResourceManager.Discovery +{ + /// + /// A class representing a Workspace along with the instance operations that can be performed on it. + /// If you have a you can construct a from an instance of using the GetResource method. + /// Otherwise you can get one from its parent resource using the GetWorkspaces method. + /// + public partial class WorkspaceResource : ArmResource + { + private readonly ClientDiagnostics _workspacesClientDiagnostics; + private readonly Workspaces _workspacesRestClient; + private readonly WorkspaceData _data; + /// Gets the resource type for the operations. + public static readonly ResourceType ResourceType = "Microsoft.Discovery/workspaces"; + + /// Initializes a new instance of WorkspaceResource for mocking. + protected WorkspaceResource() + { + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The resource that is the target of operations. + internal WorkspaceResource(ArmClient client, WorkspaceData data) : this(client, data.Id) + { + HasData = true; + _data = data; + } + + /// Initializes a new instance of class. + /// The client parameters to use in these operations. + /// The identifier of the resource that is the target of operations. + internal WorkspaceResource(ArmClient client, ResourceIdentifier id) : base(client, id) + { + TryGetApiVersion(ResourceType, out string workspaceApiVersion); + _workspacesClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.Discovery", ResourceType.Namespace, Diagnostics); + _workspacesRestClient = new Workspaces(_workspacesClientDiagnostics, Pipeline, Endpoint, workspaceApiVersion ?? "2026-02-01-preview"); + ValidateResourceId(id); + } + + /// Gets whether or not the current instance has data. + public virtual bool HasData { get; } + + /// Gets the data representing this Feature. + public virtual WorkspaceData Data + { + get + { + if (!HasData) + { + throw new InvalidOperationException("The current instance does not have data, you must call Get first."); + } + return _data; + } + } + + /// Generate the resource identifier for this resource. + /// The subscriptionId. + /// The resourceGroupName. + /// The workspaceName. + public static ResourceIdentifier CreateResourceIdentifier(string subscriptionId, string resourceGroupName, string workspaceName) + { + string resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}"; + return new ResourceIdentifier(resourceId); + } + + /// + [Conditional("DEBUG")] + internal static void ValidateResourceId(ResourceIdentifier id) + { + if (id.ResourceType != ResourceType) + { + throw new ArgumentException(string.Format("Invalid resource type {0} expected {1}", id.ResourceType, ResourceType), id); + } + } + + /// + /// Get a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual async Task> GetAsync(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Get a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Get. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// The cancellation token to use. + public virtual Response Get(CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.Get"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + if (response.Value == null) + { + throw new RequestFailedException(response.GetRawResponse()); + } + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual async Task> UpdateAsync(WaitUntil waitUntil, WorkspaceData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, WorkspaceData.ToRequestContent(data), context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspaceOperationSource(Client), + _workspacesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Update a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Update. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The resource properties to be updated. + /// The cancellation token to use. + /// is null. + public virtual ArmOperation Update(WaitUntil waitUntil, WorkspaceData data, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(data, nameof(data)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.Update"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateUpdateRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, WorkspaceData.ToRequestContent(data), context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation( + new WorkspaceOperationSource(Client), + _workspacesClientDiagnostics, + Pipeline, + message.Request, + response, + OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletion(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual async Task DeleteAsync(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_workspacesClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + await operation.WaitForCompletionResponseAsync(cancellationToken).ConfigureAwait(false); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// + /// Delete a Workspace + /// + /// + /// Request Path. + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Discovery/workspaces/{workspaceName}. + /// + /// + /// Operation Id. + /// Workspaces_Delete. + /// + /// + /// Default Api Version. + /// 2026-02-01-preview. + /// + /// + /// Resource. + /// . + /// + /// + /// + /// if the method should wait to return until the long-running operation has completed on the service; if it should return after starting the operation. For more information on long-running operations, please see Azure.Core Long-Running Operation samples. + /// The cancellation token to use. + public virtual ArmOperation Delete(WaitUntil waitUntil, CancellationToken cancellationToken = default) + { + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.Delete"); + scope.Start(); + try + { + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateDeleteRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response response = Pipeline.ProcessMessage(message, context); + DiscoveryArmOperation operation = new DiscoveryArmOperation(_workspacesClientDiagnostics, Pipeline, message.Request, response, OperationFinalStateVia.Location); + if (waitUntil == WaitUntil.Completed) + { + operation.WaitForCompletionResponse(cancellationToken); + } + return operation; + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual async Task> AddTagAsync(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.AddTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues[key] = value; + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + else + { + WorkspaceData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + WorkspaceData patch = new WorkspaceData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Add a tag to the current resource. + /// The key for the tag. + /// The value for the tag. + /// The cancellation token to use. + /// or is null. + public virtual Response AddTag(string key, string value, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + Argument.AssertNotNull(value, nameof(value)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.AddTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues[key] = value; + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + else + { + WorkspaceData current = Get(cancellationToken: cancellationToken).Value.Data; + WorkspaceData patch = new WorkspaceData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags[key] = value; + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual async Task> SetTagsAsync(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.SetTags"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + await GetTagResource().DeleteAsync(WaitUntil.Completed, cancellationToken).ConfigureAwait(false); + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + else + { + WorkspaceData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + WorkspaceData patch = new WorkspaceData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Replace the tags on the resource with the given set. + /// The tags to set on the resource. + /// The cancellation token to use. + /// is null. + public virtual Response SetTags(IDictionary tags, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(tags, nameof(tags)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.SetTags"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + GetTagResource().Delete(WaitUntil.Completed, cancellationToken); + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.ReplaceWith(tags); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + else + { + WorkspaceData current = Get(cancellationToken: cancellationToken).Value.Data; + WorkspaceData patch = new WorkspaceData(); + patch.Tags.ReplaceWith(tags); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual async Task> RemoveTagAsync(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.RemoveTag"); + scope.Start(); + try + { + if (await CanUseTagResourceAsync(cancellationToken).ConfigureAwait(false)) + { + Response originalTags = await GetTagResource().GetAsync(cancellationToken).ConfigureAwait(false); + originalTags.Value.Data.TagValues.Remove(key); + await GetTagResource().CreateOrUpdateAsync(WaitUntil.Completed, originalTags.Value.Data, cancellationToken).ConfigureAwait(false); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = await Pipeline.ProcessMessageAsync(message, context).ConfigureAwait(false); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + else + { + WorkspaceData current = (await GetAsync(cancellationToken: cancellationToken).ConfigureAwait(false)).Value.Data; + WorkspaceData patch = new WorkspaceData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = await UpdateAsync(WaitUntil.Completed, patch, cancellationToken: cancellationToken).ConfigureAwait(false); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Removes a tag by key from the resource. + /// The key for the tag. + /// The cancellation token to use. + /// is null. + public virtual Response RemoveTag(string key, CancellationToken cancellationToken = default) + { + Argument.AssertNotNull(key, nameof(key)); + + using DiagnosticScope scope = _workspacesClientDiagnostics.CreateScope("WorkspaceResource.RemoveTag"); + scope.Start(); + try + { + if (CanUseTagResource(cancellationToken)) + { + Response originalTags = GetTagResource().Get(cancellationToken); + originalTags.Value.Data.TagValues.Remove(key); + GetTagResource().CreateOrUpdate(WaitUntil.Completed, originalTags.Value.Data, cancellationToken); + RequestContext context = new RequestContext + { + CancellationToken = cancellationToken + }; + HttpMessage message = _workspacesRestClient.CreateGetRequest(Guid.Parse(Id.SubscriptionId), Id.ResourceGroupName, Id.Name, context); + Response result = Pipeline.ProcessMessage(message, context); + Response response = Response.FromValue(WorkspaceData.FromResponse(result), result); + return Response.FromValue(new WorkspaceResource(Client, response.Value), response.GetRawResponse()); + } + else + { + WorkspaceData current = Get(cancellationToken: cancellationToken).Value.Data; + WorkspaceData patch = new WorkspaceData(); + foreach (KeyValuePair tag in current.Tags) + { + patch.Tags.Add(tag); + } + patch.Tags.Remove(key); + ArmOperation result = Update(WaitUntil.Completed, patch, cancellationToken: cancellationToken); + return Response.FromValue(result.Value, result.GetRawResponse()); + } + } + catch (Exception e) + { + scope.Failed(e); + throw; + } + } + + /// Gets a collection of Projects in the . + /// An object representing collection of Projects and their operations over a ProjectResource. + public virtual ProjectCollection GetProjects() + { + return GetCachedClient(client => new ProjectCollection(client, Id)); + } + + /// Get a Project. + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetProjectAsync(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + return await GetProjects().GetAsync(projectName, cancellationToken).ConfigureAwait(false); + } + + /// Get a Project. + /// The name of the Project. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetProject(string projectName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(projectName, nameof(projectName)); + + return GetProjects().Get(projectName, cancellationToken); + } + + /// Gets a collection of WorkspacePrivateEndpointConnections in the . + /// An object representing collection of WorkspacePrivateEndpointConnections and their operations over a WorkspacePrivateEndpointConnectionResource. + public virtual WorkspacePrivateEndpointConnectionCollection GetWorkspacePrivateEndpointConnections() + { + return GetCachedClient(client => new WorkspacePrivateEndpointConnectionCollection(client, Id)); + } + + /// Gets the specified private endpoint connection associated with the workspace. + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetWorkspacePrivateEndpointConnectionAsync(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + return await GetWorkspacePrivateEndpointConnections().GetAsync(privateEndpointConnectionName, cancellationToken).ConfigureAwait(false); + } + + /// Gets the specified private endpoint connection associated with the workspace. + /// The name of the private endpoint connection associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetWorkspacePrivateEndpointConnection(string privateEndpointConnectionName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateEndpointConnectionName, nameof(privateEndpointConnectionName)); + + return GetWorkspacePrivateEndpointConnections().Get(privateEndpointConnectionName, cancellationToken); + } + + /// Gets a collection of ChatModelDeployments in the . + /// An object representing collection of ChatModelDeployments and their operations over a ChatModelDeploymentResource. + public virtual ChatModelDeploymentCollection GetChatModelDeployments() + { + return GetCachedClient(client => new ChatModelDeploymentCollection(client, Id)); + } + + /// Get a ChatModelDeployment. + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetChatModelDeploymentAsync(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + return await GetChatModelDeployments().GetAsync(chatModelDeploymentName, cancellationToken).ConfigureAwait(false); + } + + /// Get a ChatModelDeployment. + /// The name of the ChatModelDeployment. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetChatModelDeployment(string chatModelDeploymentName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(chatModelDeploymentName, nameof(chatModelDeploymentName)); + + return GetChatModelDeployments().Get(chatModelDeploymentName, cancellationToken); + } + + /// Gets a collection of WorkspacePrivateLinkResources in the . + /// An object representing collection of WorkspacePrivateLinkResources and their operations over a WorkspacePrivateLinkResource. + public virtual WorkspacePrivateLinkResourceCollection GetWorkspacePrivateLinkResources() + { + return GetCachedClient(client => new WorkspacePrivateLinkResourceCollection(client, Id)); + } + + /// Gets the specified private link resource for the workspace. + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual async Task> GetWorkspacePrivateLinkResourceAsync(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + return await GetWorkspacePrivateLinkResources().GetAsync(privateLinkResourceName, cancellationToken).ConfigureAwait(false); + } + + /// Gets the specified private link resource for the workspace. + /// The name of the private link associated with the Azure resource. + /// The cancellation token to use. + /// is null. + /// is an empty string, and was expected to be non-empty. + [ForwardsClientCalls] + public virtual Response GetWorkspacePrivateLinkResource(string privateLinkResourceName, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(privateLinkResourceName, nameof(privateLinkResourceName)); + + return GetWorkspacePrivateLinkResources().Get(privateLinkResourceName, cancellationToken); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/src/Properties/AssemblyInfo.cs b/sdk/discovery/Azure.ResourceManager.Discovery/src/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..ff3b13052d80 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/src/Properties/AssemblyInfo.cs @@ -0,0 +1,9 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; + +[assembly: Azure.Core.AzureResourceProviderNamespace("Microsoft.Discovery")] + +[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] +[assembly: InternalsVisibleTo("Azure.ResourceManager.Discovery.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100d15ddcb29688295338af4b7686603fe614abd555e09efba8fb88ee09e1f7b1ccaeed2e8f823fa9eef3fdd60217fc012ea67d2479751a0b8c087a4185541b851bd8b16f8d91b840e51b1cb0ba6fe647997e57429265e85ef62d565db50a69ae1647d54d7bd855e4db3d8a91510e5bcbd0edfbbecaa20a7bd9ae74593daa7b11b4")] diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/Azure.ResourceManager.Discovery.Tests.csproj b/sdk/discovery/Azure.ResourceManager.Discovery/tests/Azure.ResourceManager.Discovery.Tests.csproj new file mode 100644 index 000000000000..1d248585fcc3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/Azure.ResourceManager.Discovery.Tests.csproj @@ -0,0 +1,23 @@ + + + $(RequiredTargetFrameworks) + + $(NoWarn);CS1591 + + + + + + + + + + + + + + + + + + diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/BookshelfResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/BookshelfResourceTests.cs new file mode 100644 index 000000000000..4d3072b28ec7 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/BookshelfResourceTests.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for Bookshelf resource operations. + /// + public class BookshelfResourceTests : DiscoveryManagementTestBase + { + public BookshelfResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + public async Task ListBookshelvesBySubscription() + { + // Arrange & Act + var bookshelves = new List(); + await foreach (var bookshelf in DefaultSubscription.GetBookshelvesAsync()) + { + bookshelves.Add(bookshelf); + } + + // Assert + Assert.That(bookshelves, Is.Not.Null); + // List may be empty but should not throw + } + + [RecordedTest] + public async Task ListBookshelvesByResourceGroup() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + // Act + var bookshelves = new List(); + await foreach (var bookshelf in resourceGroup.GetBookshelves().GetAllAsync()) + { + bookshelves.Add(bookshelf); + } + + // Assert + Assert.That(bookshelves, Is.Not.Null); + } + + [RecordedTest] + public async Task GetBookshelf() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelfName = TestEnvironment.BookshelfName; + + // Act + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(bookshelfName); + + // Assert + Assert.That(bookshelf.Value, Is.Not.Null); + Assert.That(bookshelf.Value.Data.Name, Is.EqualTo(bookshelfName)); + } + + [RecordedTest] + [Ignore("Recording not yet captured")] + public async Task CreateBookshelf() + { + // Arrange - Bookshelf only requires location (matching Python/Java) + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelfName = TestEnvironment.BookshelfName; + + var bookshelfData = new BookshelfData(DefaultLocation); + + // Act + var operation = await resourceGroup.GetBookshelves().CreateOrUpdateAsync( + WaitUntil.Completed, + bookshelfName, + bookshelfData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(bookshelfName)); + } + + [RecordedTest] + [Ignore("Requires existing bookshelf to delete - should create first then delete")] + public async Task DeleteBookshelf() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelfName = TestEnvironment.BookshelfName; + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(bookshelfName); + + // Act + var operation = await bookshelf.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + + [RecordedTest] + [Ignore("Requires existing bookshelf with properties that can be updated")] + public async Task UpdateBookshelf() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelfName = TestEnvironment.BookshelfName; + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(bookshelfName); + + // Update tags matching Python/Java pattern + var updateData = bookshelf.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await resourceGroup.GetBookshelves().CreateOrUpdateAsync( + WaitUntil.Completed, + bookshelfName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/ChatModelDeploymentResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/ChatModelDeploymentResourceTests.cs new file mode 100644 index 000000000000..e9d5ce7b3e63 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/ChatModelDeploymentResourceTests.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for ChatModelDeployment resource operations. + /// ChatModelDeployment is a child resource of Workspace. + /// + public class ChatModelDeploymentResourceTests : DiscoveryManagementTestBase + { + public ChatModelDeploymentResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + [Ignore("Requires existing ChatModelDeployment in the workspace")] + public async Task ListChatModelDeploymentsByWorkspace() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // Act + var chatModelDeployments = new List(); + await foreach (var chatModelDeployment in workspace.Value.GetChatModelDeployments().GetAllAsync()) + { + chatModelDeployments.Add(chatModelDeployment); + } + + // Assert + Assert.That(chatModelDeployments, Is.Not.Null); + } + + [RecordedTest] + [Ignore("Requires existing ChatModelDeployment in the workspace")] + public async Task GetChatModelDeployment() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var chatModelDeploymentName = TestEnvironment.ChatModelDeploymentName; + + // Act + var chatModelDeployment = await workspace.Value.GetChatModelDeployments().GetAsync(chatModelDeploymentName); + + // Assert + Assert.That(chatModelDeployment.Value, Is.Not.Null); + Assert.That(chatModelDeployment.Value.Data.Name, Is.EqualTo(chatModelDeploymentName)); + } + + [RecordedTest] + [Ignore("Requires ChatModelDeploymentProperties with model configuration")] + public async Task CreateChatModelDeployment() + { + // Arrange - matching Python/Java payload (modelFormat=OpenAI, modelName=gpt-4o) + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var chatModelDeploymentName = "test-cmd-dotnet01"; + + var chatModelDeploymentData = new ChatModelDeploymentData(DefaultLocation) + { + Properties = new ChatModelDeploymentProperties("OpenAI", "gpt-4o"), + }; + + // Act + var operation = await workspace.Value.GetChatModelDeployments().CreateOrUpdateAsync( + WaitUntil.Completed, + chatModelDeploymentName, + chatModelDeploymentData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(chatModelDeploymentName)); + } + + [RecordedTest] + [Ignore("Requires existing ChatModelDeployment to update")] + public async Task UpdateChatModelDeployment() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var chatModelDeploymentName = TestEnvironment.ChatModelDeploymentName; + var chatModelDeployment = await workspace.Value.GetChatModelDeployments().GetAsync(chatModelDeploymentName); + + // Update tags matching Python/Java pattern + var updateData = chatModelDeployment.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await workspace.Value.GetChatModelDeployments().CreateOrUpdateAsync( + WaitUntil.Completed, + chatModelDeploymentName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + + [RecordedTest] + [Ignore("Requires existing ChatModelDeployment to delete")] + public async Task DeleteChatModelDeployment() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var chatModelDeploymentName = "test-cmd-dotnet01"; + var chatModelDeployment = await workspace.Value.GetChatModelDeployments().GetAsync(chatModelDeploymentName); + + // Act + var operation = await chatModelDeployment.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryManagementTestBase.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryManagementTestBase.cs new file mode 100644 index 000000000000..9dbc8ae88fcc --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryManagementTestBase.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Resources; +using Azure.ResourceManager.Resources.Models; +using Azure.ResourceManager.TestFramework; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Base class for Azure.ResourceManager.Discovery tests. + /// Provides ARM client creation and common test utilities. + /// + // LRO operations (Create/Delete for Bookshelf, Workspace, Supercomputer) can take up to 2 hours. + [Timeout(9000000)] // 2.5 hours in ms + public class DiscoveryManagementTestBase : ManagementRecordedTestBase + { + private const string EuapHost = "eastus2euap.management.azure.com"; + protected const string SubscriptionId = "31b0b6a5-2647-47eb-8a38-7d12047ee8ec"; + protected AzureLocation DefaultLocation => new AzureLocation("uksouth"); + protected ArmClient Client { get; private set; } + protected SubscriptionResource DefaultSubscription { get; private set; } + + public DiscoveryManagementTestBase(bool isAsync) : base(isAsync) + { + } + + public DiscoveryManagementTestBase(bool isAsync, RecordedTestMode mode) : base(isAsync, mode) + { + } + + [SetUp] + public async Task SetUpAsync() + { + // Use EUAP endpoint for 2026-02-01-preview API + var armOptions = new ArmClientOptions(); + var euapEndpoint = Environment.GetEnvironmentVariable("AZURE_ARM_ENDPOINT") ?? $"https://{EuapHost}"; + armOptions.Environment = new ArmEnvironment(new Uri(euapEndpoint), "https://management.azure.com/.default"); + + // Add redirect policy to ensure all requests go to EUAP endpoint + // This is needed because the SDK routes based on resource location + armOptions.AddPolicy(new RedirectToEuapPolicy(EuapHost), HttpPipelinePosition.PerRetry); + + Client = GetArmClient(armOptions); + DefaultSubscription = await Client.GetDefaultSubscriptionAsync().ConfigureAwait(false); + } + + /// + /// Gets an existing resource group by name. + /// + protected async Task GetResourceGroupAsync(string resourceGroupName) + { + return await DefaultSubscription.GetResourceGroups().GetAsync(resourceGroupName); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryManagementTestEnvironment.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryManagementTestEnvironment.cs new file mode 100644 index 000000000000..3ee81375620a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryManagementTestEnvironment.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using Azure.Core.TestFramework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Test environment configuration for Azure.ResourceManager.Discovery tests. + /// + public class DiscoveryManagementTestEnvironment : TestEnvironment + { + /// + /// Gets the name of the resource group for testing. + /// + public string ResourceGroupName => GetRecordedVariable("AZURE_RESOURCE_GROUP_NAME"); + + /// + /// Gets the name of a Bookshelf resource for testing. + /// + public string BookshelfName => GetRecordedVariable("AZURE_DISCOVERY_BOOKSHELF_NAME"); + + /// + /// Gets the name of a Workspace resource for testing. + /// + public string WorkspaceName => GetRecordedVariable("AZURE_DISCOVERY_WORKSPACE_NAME"); + + /// + /// Gets the name of a Project resource for testing. + /// + public string ProjectName => GetRecordedVariable("AZURE_DISCOVERY_PROJECT_NAME"); + + /// + /// Gets the name of a Supercomputer resource for testing. + /// + public string SupercomputerName => GetRecordedVariable("AZURE_DISCOVERY_SUPERCOMPUTER_NAME"); + + /// + /// Gets the name of a Tool resource for testing. + /// + public string ToolName => GetRecordedVariable("AZURE_DISCOVERY_TOOL_NAME"); + + /// + /// Gets the name of a StorageContainer resource for testing. + /// + public string StorageContainerName => GetRecordedVariable("AZURE_DISCOVERY_STORAGE_CONTAINER_NAME"); + + /// + /// Gets the name of a StorageAsset resource for testing. + /// + public string StorageAssetName => GetRecordedVariable("AZURE_DISCOVERY_STORAGE_ASSET_NAME"); + + /// + /// Gets the name of a ChatModelDeployment resource for testing. + /// + public string ChatModelDeploymentName => GetRecordedVariable("AZURE_DISCOVERY_CHAT_MODEL_DEPLOYMENT_NAME"); + + /// + /// Gets the name of a NodePool resource for testing. + /// + public string NodePoolName => GetRecordedVariable("AZURE_DISCOVERY_NODE_POOL_NAME"); + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryModelsUnitTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryModelsUnitTests.cs new file mode 100644 index 000000000000..4c8afae3f94d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/DiscoveryModelsUnitTests.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using Azure.Core; +using Azure.ResourceManager.Discovery.Models; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Unit tests for Azure.ResourceManager.Discovery models. + /// These tests verify model initialization without making HTTP calls. + /// + public class DiscoveryModelsUnitTests + { + [Test] + public void BookshelfData_CanBeInitialized() + { + // Arrange & Act + var bookshelf = new BookshelfData(AzureLocation.EastUS); + + // Assert + Assert.That(bookshelf, Is.Not.Null); + Assert.That(bookshelf.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void WorkspaceData_CanBeInitialized() + { + // Arrange & Act + var workspace = new WorkspaceData(AzureLocation.EastUS); + + // Assert + Assert.That(workspace, Is.Not.Null); + Assert.That(workspace.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void ProjectData_CanBeInitialized() + { + // Arrange & Act + var project = new ProjectData(AzureLocation.EastUS); + + // Assert + Assert.That(project, Is.Not.Null); + Assert.That(project.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void SupercomputerData_CanBeInitialized() + { + // Arrange & Act + var supercomputer = new SupercomputerData(AzureLocation.EastUS); + + // Assert + Assert.That(supercomputer, Is.Not.Null); + Assert.That(supercomputer.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void NodePoolData_CanBeInitialized() + { + // Arrange & Act - NodePoolData requires AzureLocation + var nodePool = new NodePoolData(AzureLocation.EastUS); + + // Assert + Assert.That(nodePool, Is.Not.Null); + Assert.That(nodePool.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void StorageContainerData_CanBeInitialized() + { + // Arrange & Act - StorageContainerData requires AzureLocation + var storageContainer = new StorageContainerData(AzureLocation.EastUS); + + // Assert + Assert.That(storageContainer, Is.Not.Null); + Assert.That(storageContainer.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void StorageAssetData_CanBeInitialized() + { + // Arrange & Act - StorageAssetData requires AzureLocation + var storageAsset = new StorageAssetData(AzureLocation.EastUS); + + // Assert + Assert.That(storageAsset, Is.Not.Null); + Assert.That(storageAsset.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void ChatModelDeploymentData_CanBeInitialized() + { + // Arrange & Act - ChatModelDeploymentData requires AzureLocation + var deployment = new ChatModelDeploymentData(AzureLocation.EastUS); + + // Assert + Assert.That(deployment, Is.Not.Null); + Assert.That(deployment.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void ToolData_CanBeInitialized() + { + // Arrange & Act - ToolData requires AzureLocation + var tool = new ToolData(AzureLocation.EastUS); + + // Assert + Assert.That(tool, Is.Not.Null); + Assert.That(tool.Location.Name, Is.EqualTo("eastus")); + } + + [Test] + public void ProvisioningState_EnumValuesExist() + { + // Assert - verify enum values can be accessed (actual name is ProvisioningState, not DiscoveryProvisioningState) + Assert.That(ProvisioningState.Succeeded.ToString(), Is.EqualTo("Succeeded")); + Assert.That(ProvisioningState.Failed.ToString(), Is.EqualTo("Failed")); + Assert.That(ProvisioningState.Canceled.ToString(), Is.EqualTo("Canceled")); + } + + [Test] + public void ArmDiscoveryModelFactory_CanCreateBookshelfData() + { + // Arrange & Act + var bookshelf = ArmDiscoveryModelFactory.BookshelfData( + location: AzureLocation.EastUS); + + // Assert + Assert.That(bookshelf, Is.Not.Null); + } + + [Test] + public void ArmDiscoveryModelFactory_CanCreateWorkspaceData() + { + // Arrange & Act + var workspace = ArmDiscoveryModelFactory.WorkspaceData( + location: AzureLocation.EastUS); + + // Assert + Assert.That(workspace, Is.Not.Null); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/HeroScenarioTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/HeroScenarioTests.cs new file mode 100644 index 000000000000..5b5b0bf4afce --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/HeroScenarioTests.cs @@ -0,0 +1,323 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Azure.Core.TestFramework; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Hero Scenario Integration Tests: Run a Tool on Supercomputer + /// + /// This test class demonstrates the complete end-to-end hero scenario flow + /// for the Discovery service. These are recorded tests that can be run in + /// playback mode once recordings are available. + /// + /// HERO SCENARIO: "Run a Tool on Supercomputer" + /// This is the primary use case for the Discovery service - executing + /// scientific computing tools on Azure supercomputers. + /// + /// Prerequisites for recording: + /// - Azure subscription with Discovery service access + /// - Existing Supercomputer resource + /// - Available Node Pools + /// - Configured Tools + /// + /// For unit tests that validate the API surface without Azure resources, + /// see HeroScenarioUnitTests.cs. + /// + public class HeroScenarioTests : DiscoveryManagementTestBase + { + private string _testRunId; + private string _workspaceName; + private string _projectName; + private string _supercomputerName; + private string _toolName; + + public HeroScenarioTests(bool isAsync) : base(isAsync) + { + } + + [SetUp] + public void TestSetup() + { + _testRunId = Recording.GenerateAssetName("hero"); + _workspaceName = $"hero-workspace-{_testRunId}"; + _projectName = $"hero-project-{_testRunId}"; + _supercomputerName = TestEnvironment.SupercomputerName ?? "test-supercomputer"; + _toolName = TestEnvironment.ToolName ?? "test-tool"; + } + + // ========================================================================= + // COMPLETE HERO SCENARIO - RECORDED TEST + // This test demonstrates the full 10-step hero scenario flow. + // Skipped until recordings are available. + // ========================================================================= + + /// + /// Complete Hero Scenario: Run a Tool on Supercomputer + /// + /// This recorded test demonstrates the full end-to-end workflow: + /// 1. Create a Workspace + /// 2. Create a Project + /// 3. Get/Verify Supercomputer + /// 4. Get Node Pool from Supercomputer + /// 5. Get Tool Definition + /// 6. Create Investigation (via Workspace client) + /// 7. Run Tool on Supercomputer (THE HERO!) + /// 8. Monitor Run Status + /// 9. Create Task for Results + /// 10. Query Knowledge Base + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task HeroScenario_RunToolOnSupercomputer() + { + // ===== STEP 1: Create a Workspace ===== + TestContext.WriteLine("Step 1: Creating Workspace..."); + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspaces = resourceGroup.GetWorkspaces(); + + var workspaceData = new WorkspaceData(DefaultLocation) + { + // Configure workspace with required identity for supercomputer access + }; + var workspaceOperation = await workspaces.CreateOrUpdateAsync(WaitUntil.Completed, _workspaceName, workspaceData); + var workspace = workspaceOperation.Value; + Assert.That(workspace, Is.Not.Null, "Workspace should be created"); + Assert.That(workspace.Data.Name, Is.EqualTo(_workspaceName)); + TestContext.WriteLine($" ✓ Workspace '{_workspaceName}' created"); + + // ===== STEP 2: Create a Project ===== + TestContext.WriteLine("Step 2: Creating Project..."); + var projects = workspace.GetProjects(); + var projectData = new ProjectData(DefaultLocation); + var projectOperation = await projects.CreateOrUpdateAsync(WaitUntil.Completed, _projectName, projectData); + var project = projectOperation.Value; + Assert.That(project, Is.Not.Null, "Project should be created"); + Assert.That(project.Data.Name, Is.EqualTo(_projectName)); + TestContext.WriteLine($" ✓ Project '{_projectName}' created"); + + // ===== STEP 3: Get/Verify Supercomputer ===== + TestContext.WriteLine("Step 3: Getting Supercomputer..."); + var supercomputers = new List(); + await foreach (var sc in resourceGroup.GetSupercomputers().GetAllAsync()) + { + supercomputers.Add(sc); + } + Assert.That(supercomputers.Count, Is.GreaterThan(0), "At least one Supercomputer should exist"); + var supercomputer = supercomputers.First(); + TestContext.WriteLine($" ✓ Found Supercomputer: {supercomputer.Data.Name}"); + + // ===== STEP 4: Get Node Pool from Supercomputer ===== + TestContext.WriteLine("Step 4: Getting Node Pools..."); + var nodePools = new List(); + await foreach (var np in supercomputer.GetNodePools().GetAllAsync()) + { + nodePools.Add(np); + } + Assert.That(nodePools.Count, Is.GreaterThan(0), "At least one Node Pool should exist"); + var nodePool = nodePools.First(); + TestContext.WriteLine($" ✓ Found Node Pool: {nodePool.Data.Name}"); + + // ===== STEP 5: Get Tool Definition ===== + TestContext.WriteLine("Step 5: Getting Tool..."); + var tools = new List(); + await foreach (var tool in resourceGroup.GetTools().GetAllAsync()) + { + tools.Add(tool); + } + Assert.That(tools.Count, Is.GreaterThan(0), "At least one Tool should exist"); + var selectedTool = tools.First(); + TestContext.WriteLine($" ✓ Found Tool: {selectedTool.Data.Name}"); + + // ===== STEPS 6-10: Workspace and Bookshelf Client Operations ===== + // These steps require the Azure.Discovery.Workspace and Azure.Discovery.Bookshelf packages + // which provide the WorkspaceClient and BookshelfClient respectively. + + TestContext.WriteLine("Step 6: Create Investigation - requires WorkspaceClient"); + TestContext.WriteLine("Step 7: Run Tool on Supercomputer (THE HERO!) - requires WorkspaceClient"); + TestContext.WriteLine("Step 8: Monitor Run Status - requires WorkspaceClient"); + TestContext.WriteLine("Step 9: Create Task for Results - requires WorkspaceClient"); + TestContext.WriteLine("Step 10: Query Knowledge Base - requires BookshelfClient"); + + // For the complete hero scenario with Workspace and Bookshelf operations, + // see the integration tests in: + // - Azure.Discovery.Workspace.Tests + // - Azure.Discovery.Bookshelf.Tests + + TestContext.WriteLine("\n=== HERO SCENARIO COMPLETE (ARM portion) ==="); + } + + // ========================================================================= + // INDIVIDUAL STEP TESTS - For granular testing + // ========================================================================= + + /// + /// Step 1: Create a Workspace via ARM. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step1_CreateWorkspace() + { + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspaces = resourceGroup.GetWorkspaces(); + + var workspaceData = new WorkspaceData(DefaultLocation); + var operation = await workspaces.CreateOrUpdateAsync(WaitUntil.Completed, _workspaceName, workspaceData); + var workspace = operation.Value; + + Assert.That(workspace, Is.Not.Null); + Assert.That(workspace.Data.Name, Is.EqualTo(_workspaceName)); + } + + /// + /// Step 2: Create a Project in the Workspace via ARM. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step2_CreateProject() + { + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = (await resourceGroup.GetWorkspaces().CreateOrUpdateAsync( + WaitUntil.Completed, + _workspaceName, + new WorkspaceData(DefaultLocation))).Value; + + var projects = workspace.GetProjects(); + var projectData = new ProjectData(DefaultLocation); + var operation = await projects.CreateOrUpdateAsync(WaitUntil.Completed, _projectName, projectData); + var project = operation.Value; + + Assert.That(project, Is.Not.Null); + Assert.That(project.Data.Name, Is.EqualTo(_projectName)); + } + + /// + /// Step 3: Verify Supercomputer exists. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step3_GetSupercomputer() + { + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + var supercomputers = new List(); + await foreach (var sc in resourceGroup.GetSupercomputers().GetAllAsync()) + { + supercomputers.Add(sc); + } + + Assert.That(supercomputers, Is.Not.Empty, "Should have at least one Supercomputer"); + TestContext.WriteLine($"Found {supercomputers.Count} supercomputers"); + } + + /// + /// Step 4: Get Node Pool from Supercomputer. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step4_GetNodePool() + { + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + // Get first supercomputer + SupercomputerResource supercomputer = null; + await foreach (var sc in resourceGroup.GetSupercomputers().GetAllAsync()) + { + supercomputer = sc; + break; + } + Assert.That(supercomputer, Is.Not.Null, "Should have at least one Supercomputer"); + + // Get node pools + var nodePools = new List(); + await foreach (var np in supercomputer.GetNodePools().GetAllAsync()) + { + nodePools.Add(np); + } + + Assert.That(nodePools, Is.Not.Empty, "Supercomputer should have at least one Node Pool"); + TestContext.WriteLine($"Found {nodePools.Count} node pools"); + } + + /// + /// Step 5: Get Tool Definition. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step5_GetTool() + { + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + var tools = new List(); + await foreach (var tool in resourceGroup.GetTools().GetAllAsync()) + { + tools.Add(tool); + } + + Assert.That(tools, Is.Not.Empty, "Should have at least one Tool"); + TestContext.WriteLine($"Found {tools.Count} tools"); + } + + /// + /// Step 6-7: Create Investigation and Run Tool (THE HERO!). + /// This requires the WorkspaceClient from Azure.Discovery.Workspace. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step6And7_CreateInvestigationAndRunTool() + { + // This test would: + // 1. Create a WorkspaceClient using the workspace endpoint + // 2. Create an Investigation + // 3. Run a Tool on the Supercomputer (THE HERO!) + + // Example (pseudo-code): + // var workspaceClient = new WorkspaceClient(workspaceEndpoint, credential); + // var investigation = await workspaceClient.GetInvestigations().CreateAsync(...); + // var toolRun = await workspaceClient.GetTools().RunAsync(toolId, nodePoolIds, ...); + + await Task.CompletedTask; + } + + /// + /// Step 8: Monitor Run Status. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step8_MonitorRunStatus() + { + // This test would poll the tool run status using WorkspaceClient + await Task.CompletedTask; + } + + /// + /// Step 9: Create Task for Results. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step9_CreateTask() + { + // This test would create a task to process results + await Task.CompletedTask; + } + + /// + /// Step 10: Query Knowledge Base for insights. + /// + [RecordedTest] + [Ignore("No session recordings available")] + public async Task Step10_QueryKnowledgeBase() + { + // This test would search the knowledge base using BookshelfClient + await Task.CompletedTask; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/HeroScenarioUnitTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/HeroScenarioUnitTests.cs new file mode 100644 index 000000000000..4c7c87fe5865 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/HeroScenarioUnitTests.cs @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Unit tests for the Discovery SDK Hero Scenario. + /// These tests validate the API surface without requiring Azure resources or recorded sessions. + /// + /// HERO SCENARIO: "Run a Tool on Supercomputer" + /// This is the primary use case for the Discovery service - executing + /// scientific computing tools on Azure supercomputers. + /// + [TestFixture] + public class HeroScenarioUnitTests + { + // ========================================================================= + // HERO SCENARIO FLOW DOCUMENTATION + // ========================================================================= + + /// + /// Document the complete hero scenario flow. + /// This test serves as executable documentation of the 10-step + /// hero scenario for running a tool on a supercomputer. + /// + [Test] + public void HeroScenarioFlowDocumentation() + { + var heroScenarioSteps = new[] + { + new { Step = 1, Name = "Create Workspace", Client = "ARM (ArmClient)", Operation = "GetWorkspaces().CreateOrUpdate()", Description = "Create an Azure Discovery Workspace to organize resources" }, + new { Step = 2, Name = "Create Project", Client = "ARM (ArmClient)", Operation = "GetProjects().CreateOrUpdate()", Description = "Create a Project within the Workspace for logical grouping" }, + new { Step = 3, Name = "Get Supercomputer", Client = "ARM (ArmClient)", Operation = "GetSupercomputer()", Description = "Get reference to an existing Supercomputer for compute" }, + new { Step = 4, Name = "Get Node Pool", Client = "ARM (ArmClient)", Operation = "GetNodePools()", Description = "Get available node pools for running tools" }, + new { Step = 5, Name = "Get Tool Definition", Client = "ARM (ArmClient)", Operation = "GetTool()", Description = "Get the tool to run (e.g., molecular dynamics simulation)" }, + new { Step = 6, Name = "Create Investigation", Client = "Workspace (WorkspaceClient)", Operation = "GetInvestigations().CreateOrUpdate()", Description = "Create an Investigation to track the scientific workflow" }, + new { Step = 7, Name = "Run Tool on Supercomputer", Client = "Workspace (WorkspaceClient)", Operation = "GetTools().Run()", Description = "THE HERO - Execute the tool on supercomputer nodes" }, + new { Step = 8, Name = "Monitor Run Status", Client = "Workspace (WorkspaceClient)", Operation = "GetTools().GetRunStatus()", Description = "Poll for completion of the tool run" }, + new { Step = 9, Name = "Create Task for Results", Client = "Workspace (WorkspaceClient)", Operation = "GetTasks().Create()", Description = "Create a task to process and analyze results" }, + new { Step = 10, Name = "Query Knowledge Base", Client = "Bookshelf (BookshelfClient)", Operation = "GetKnowledgeBaseVersions().Search()", Description = "Search knowledge base for insights from the run" }, + }; + + // Validate all steps are documented + Assert.That(heroScenarioSteps.Length, Is.EqualTo(10), "Hero scenario has 10 steps"); + + // Print the flow for documentation + TestContext.WriteLine("\n=== HERO SCENARIO: Run Tool on Supercomputer ===\n"); + foreach (var step in heroScenarioSteps) + { + TestContext.WriteLine($"Step {step.Step}: {step.Name}"); + TestContext.WriteLine($" Client: {step.Client}"); + TestContext.WriteLine($" Operation: {step.Operation}"); + TestContext.WriteLine($" {step.Description}\n"); + } + } + + // ========================================================================= + // UNIT TESTS - Validate API Surface + // ========================================================================= + + /// + /// Validate ARM client exposes workspace operations. + /// + [Test] + public void ArmClientHasWorkspaceOperations() + { + // Verify WorkspaceResource type exists + var workspaceType = typeof(WorkspaceResource); + Assert.That(workspaceType, Is.Not.Null); + Assert.That(workspaceType.Name, Is.EqualTo("WorkspaceResource")); + } + + /// + /// Validate ARM client exposes project operations. + /// + [Test] + public void ArmClientHasProjectOperations() + { + // Verify ProjectResource type exists + var projectType = typeof(ProjectResource); + Assert.That(projectType, Is.Not.Null); + Assert.That(projectType.Name, Is.EqualTo("ProjectResource")); + } + + /// + /// Validate ARM client exposes supercomputer operations. + /// + [Test] + public void ArmClientHasSupercomputerOperations() + { + // Verify SupercomputerResource type exists + var supercomputerType = typeof(SupercomputerResource); + Assert.That(supercomputerType, Is.Not.Null); + Assert.That(supercomputerType.Name, Is.EqualTo("SupercomputerResource")); + } + + /// + /// Validate ARM client exposes tool operations. + /// + [Test] + public void ArmClientHasToolOperations() + { + // Verify ToolResource type exists + var toolType = typeof(ToolResource); + Assert.That(toolType, Is.Not.Null); + Assert.That(toolType.Name, Is.EqualTo("ToolResource")); + } + + /// + /// Validate ARM client exposes node pool operations. + /// + [Test] + public void ArmClientHasNodePoolOperations() + { + // Verify NodePoolResource type exists + var nodePoolType = typeof(NodePoolResource); + Assert.That(nodePoolType, Is.Not.Null); + Assert.That(nodePoolType.Name, Is.EqualTo("NodePoolResource")); + } + + /// + /// Validate ARM client exposes bookshelf operations. + /// + [Test] + public void ArmClientHasBookshelfOperations() + { + // Verify BookshelfResource type exists + var bookshelfType = typeof(BookshelfResource); + Assert.That(bookshelfType, Is.Not.Null); + Assert.That(bookshelfType.Name, Is.EqualTo("BookshelfResource")); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/InheritanceCheckTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/InheritanceCheckTests.cs new file mode 100644 index 000000000000..387b056919ab --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/InheritanceCheckTests.cs @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using NUnit.Framework; + +namespace Azure.ResourceManager.TestFramework +{ + public partial class InheritanceCheckTests + { + [OneTimeSetUp] + public void SetExceptionList() + { + // MoboBrokerResource is a model class that happens to end with "Resource" + // but is not an ARM resource, so it should be excluded from inheritance checks. + ExceptionList = new string[] { "MoboBrokerResource" }; + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/NodePoolResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/NodePoolResourceTests.cs new file mode 100644 index 000000000000..ab3654cdbd1d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/NodePoolResourceTests.cs @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for NodePool resource operations. + /// NodePool is a child resource of Supercomputer. + /// + public class NodePoolResourceTests : DiscoveryManagementTestBase + { + public NodePoolResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + [Ignore("Requires existing NodePool in the supercomputer")] + public async Task ListNodePoolsBySupercomputer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(TestEnvironment.SupercomputerName); + + // Act + var nodePools = new List(); + await foreach (var nodePool in supercomputer.Value.GetNodePools().GetAllAsync()) + { + nodePools.Add(nodePool); + } + + // Assert + Assert.That(nodePools, Is.Not.Null); + } + + [RecordedTest] + [Ignore("Requires existing NodePool in the supercomputer")] + public async Task GetNodePool() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(TestEnvironment.SupercomputerName); + var nodePoolName = TestEnvironment.NodePoolName; + + // Act + var nodePool = await supercomputer.Value.GetNodePools().GetAsync(nodePoolName); + + // Assert + Assert.That(nodePool.Value, Is.Not.Null); + Assert.That(nodePool.Value.Data.Name, Is.EqualTo(nodePoolName)); + } + + [RecordedTest] + [Ignore("Requires NodePoolProperties with VM size and network configuration")] + public async Task CreateNodePool() + { + // Arrange - matching Python/Java payload + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(TestEnvironment.SupercomputerName); + var nodePoolName = "test-np-dotnet01"; + + var subnetId = new ResourceIdentifier($"/subscriptions/{SubscriptionId}/resourceGroups/{TestEnvironment.ResourceGroupName}/providers/Microsoft.Network/virtualNetworks/newapiv/subnets/default"); + + var nodePoolData = new NodePoolData(DefaultLocation) + { + Properties = new NodePoolProperties(subnetId, new VmSize("Standard_D4s_v6"), 3) + { + MinNodeCount = 1, + ScaleSetPriority = ScaleSetPriority.Regular, + }, + }; + + // Act + var operation = await supercomputer.Value.GetNodePools().CreateOrUpdateAsync( + WaitUntil.Completed, + nodePoolName, + nodePoolData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(nodePoolName)); + } + + [RecordedTest] + [Ignore("Requires existing NodePool to update")] + public async Task UpdateNodePool() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(TestEnvironment.SupercomputerName); + var nodePoolName = TestEnvironment.NodePoolName; + var nodePool = await supercomputer.Value.GetNodePools().GetAsync(nodePoolName); + + // Update tags matching Python/Java pattern + var updateData = nodePool.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await supercomputer.Value.GetNodePools().CreateOrUpdateAsync( + WaitUntil.Completed, + nodePoolName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + + [RecordedTest] + [Ignore("Requires existing NodePool to delete")] + public async Task DeleteNodePool() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(TestEnvironment.SupercomputerName); + var nodePoolName = "test-np-dotnet01"; + var nodePool = await supercomputer.Value.GetNodePools().GetAsync(nodePoolName); + + // Act + var operation = await nodePool.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/PrivateEndpointResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/PrivateEndpointResourceTests.cs new file mode 100644 index 000000000000..0de9c700bcc4 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/PrivateEndpointResourceTests.cs @@ -0,0 +1,282 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for Private Endpoint related resource operations. + /// Includes: + /// - WorkspacePrivateEndpointConnection + /// - WorkspacePrivateLinkResource + /// - BookshelfPrivateEndpointConnection + /// - BookshelfPrivateLinkResource + /// + public class PrivateEndpointResourceTests : DiscoveryManagementTestBase + { + public PrivateEndpointResourceTests(bool isAsync) : base(isAsync) + { + } + + #region Workspace Private Endpoint Connection Tests + + [RecordedTest] + [Ignore("Requires existing private endpoint connections for the workspace")] + public async Task ListWorkspacePrivateEndpointConnections() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // Act + var connections = new List(); + await foreach (var connection in workspace.Value.GetWorkspacePrivateEndpointConnections().GetAllAsync()) + { + connections.Add(connection); + } + + // Assert + Assert.That(connections, Is.Not.Null); + } + + [RecordedTest] + [Ignore("Requires existing private endpoint connection")] + public async Task GetWorkspacePrivateEndpointConnection() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // TODO: Replace with actual private endpoint connection name + var connectionName = "test-pe-connection"; + + // Act + var connection = await workspace.Value.GetWorkspacePrivateEndpointConnections().GetAsync(connectionName); + + // Assert + Assert.That(connection.Value, Is.Not.Null); + Assert.That(connection.Value.Data.Name, Is.EqualTo(connectionName)); + } + + [RecordedTest] + [Ignore("Requires private endpoint configuration and network setup")] + public async Task CreateWorkspacePrivateEndpointConnection() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var connectionName = Recording.GenerateAssetName("pe-conn-"); + + // TODO: Private endpoint connection creation requires: + // 1. PrivateEndpointConnectionProperties with connection state + // 2. Existing private endpoint in a VNet + var connectionData = new WorkspacePrivateEndpointConnectionData(); + + // Act + var operation = await workspace.Value.GetWorkspacePrivateEndpointConnections().CreateOrUpdateAsync( + WaitUntil.Completed, + connectionName, + connectionData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(connectionName)); + } + + [RecordedTest] + [Ignore("Requires existing private endpoint connection to delete")] + public async Task DeleteWorkspacePrivateEndpointConnection() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // TODO: Replace with actual private endpoint connection name + var connectionName = "pe-conn-to-delete"; + var connection = await workspace.Value.GetWorkspacePrivateEndpointConnections().GetAsync(connectionName); + + // Act + var operation = await connection.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + + #endregion + + #region Workspace Private Link Resource Tests + + [RecordedTest] + [Ignore("Requires workspace configured for private endpoint")] + public async Task ListWorkspacePrivateLinkResources() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // Act + var linkResources = new List(); + await foreach (var linkResource in workspace.Value.GetWorkspacePrivateLinkResources().GetAllAsync()) + { + linkResources.Add(linkResource); + } + + // Assert + Assert.That(linkResources, Is.Not.Null); + } + + [RecordedTest] + [Ignore("Requires workspace configured for private endpoint")] + public async Task GetWorkspacePrivateLinkResource() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // TODO: Replace with actual private link resource name (typically "workspace" or similar) + var linkResourceName = "workspace"; + + // Act + var linkResource = await workspace.Value.GetWorkspacePrivateLinkResources().GetAsync(linkResourceName); + + // Assert + Assert.That(linkResource.Value, Is.Not.Null); + } + + #endregion + + #region Bookshelf Private Endpoint Connection Tests + + [RecordedTest] + [Ignore("Requires existing private endpoint connections for the bookshelf")] + public async Task ListBookshelfPrivateEndpointConnections() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(TestEnvironment.BookshelfName); + + // Act + var connections = new List(); + await foreach (var connection in bookshelf.Value.GetBookshelfPrivateEndpointConnections().GetAllAsync()) + { + connections.Add(connection); + } + + // Assert + Assert.That(connections, Is.Not.Null); + } + + [RecordedTest] + [Ignore("Requires existing private endpoint connection")] + public async Task GetBookshelfPrivateEndpointConnection() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(TestEnvironment.BookshelfName); + + // TODO: Replace with actual private endpoint connection name + var connectionName = "test-pe-connection"; + + // Act + var connection = await bookshelf.Value.GetBookshelfPrivateEndpointConnections().GetAsync(connectionName); + + // Assert + Assert.That(connection.Value, Is.Not.Null); + Assert.That(connection.Value.Data.Name, Is.EqualTo(connectionName)); + } + + [RecordedTest] + [Ignore("Requires private endpoint configuration and network setup")] + public async Task CreateBookshelfPrivateEndpointConnection() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(TestEnvironment.BookshelfName); + var connectionName = Recording.GenerateAssetName("pe-conn-"); + + // TODO: Private endpoint connection creation requires: + // 1. PrivateEndpointConnectionProperties with connection state + // 2. Existing private endpoint in a VNet + var connectionData = new BookshelfPrivateEndpointConnectionData(); + + // Act + var operation = await bookshelf.Value.GetBookshelfPrivateEndpointConnections().CreateOrUpdateAsync( + WaitUntil.Completed, + connectionName, + connectionData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(connectionName)); + } + + [RecordedTest] + [Ignore("Requires existing private endpoint connection to delete")] + public async Task DeleteBookshelfPrivateEndpointConnection() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(TestEnvironment.BookshelfName); + + // TODO: Replace with actual private endpoint connection name + var connectionName = "pe-conn-to-delete"; + var connection = await bookshelf.Value.GetBookshelfPrivateEndpointConnections().GetAsync(connectionName); + + // Act + var operation = await connection.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + + #endregion + + #region Bookshelf Private Link Resource Tests + + [RecordedTest] + [Ignore("Requires bookshelf configured for private endpoint")] + public async Task ListBookshelfPrivateLinkResources() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(TestEnvironment.BookshelfName); + + // Act + var linkResources = new List(); + await foreach (var linkResource in bookshelf.Value.GetBookshelfPrivateLinkResources().GetAllAsync()) + { + linkResources.Add(linkResource); + } + + // Assert + Assert.That(linkResources, Is.Not.Null); + } + + [RecordedTest] + [Ignore("Requires bookshelf configured for private endpoint")] + public async Task GetBookshelfPrivateLinkResource() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var bookshelf = await resourceGroup.GetBookshelves().GetAsync(TestEnvironment.BookshelfName); + + // TODO: Replace with actual private link resource name (typically "bookshelf" or similar) + var linkResourceName = "bookshelf"; + + // Act + var linkResource = await bookshelf.Value.GetBookshelfPrivateLinkResources().GetAsync(linkResourceName); + + // Assert + Assert.That(linkResource.Value, Is.Not.Null); + } + + #endregion + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/ProjectResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/ProjectResourceTests.cs new file mode 100644 index 000000000000..1886a94bf39c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/ProjectResourceTests.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for Project resource operations. + /// + public class ProjectResourceTests : DiscoveryManagementTestBase + { + public ProjectResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + public async Task ListProjectsByWorkspace() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + + // Act + var projects = new List(); + await foreach (var project in workspace.Value.GetProjects().GetAllAsync()) + { + projects.Add(project); + } + + // Assert + Assert.That(projects, Is.Not.Null); + // List may be empty but should not throw + } + + [RecordedTest] + public async Task GetProject() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var projectName = TestEnvironment.ProjectName; + + // Act + var project = await workspace.Value.GetProjects().GetAsync(projectName); + + // Assert + Assert.That(project.Value, Is.Not.Null); + Assert.That(project.Value.Data.Name, Is.EqualTo(projectName)); + } + + [RecordedTest] + [Ignore("Requires proper ProjectProperties configuration with settings")] + public async Task CreateProject() + { + // Arrange - matching Python/Java payload (location only) + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var projectName = "test-proj-dotnet01"; + + var projectData = new ProjectData(DefaultLocation); + + // Act + var operation = await workspace.Value.GetProjects().CreateOrUpdateAsync( + WaitUntil.Completed, + projectName, + projectData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(projectName)); + } + + [RecordedTest] + [Ignore("Requires existing project to delete - should create first then delete")] + public async Task DeleteProject() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var projectName = "test-proj-dotnet01"; + var project = await workspace.Value.GetProjects().GetAsync(projectName); + + // Act + var operation = await project.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + + [RecordedTest] + [Ignore("Requires existing project with properties that can be updated")] + public async Task UpdateProject() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspace = await resourceGroup.GetWorkspaces().GetAsync(TestEnvironment.WorkspaceName); + var projectName = TestEnvironment.ProjectName; + var project = await workspace.Value.GetProjects().GetAsync(projectName); + + // Update tags matching Python/Java pattern + var updateData = project.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await workspace.Value.GetProjects().CreateOrUpdateAsync( + WaitUntil.Completed, + projectName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/RedirectToEuapPolicy.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/RedirectToEuapPolicy.cs new file mode 100644 index 000000000000..39342b33cb64 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/RedirectToEuapPolicy.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.Pipeline; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// HTTP pipeline policy that redirects all requests to the EUAP endpoint. + /// This is required because the Discovery API 2026-02-01-preview is only available + /// in the EUAP environment, but the SDK may route requests based on resource location. + /// + internal class RedirectToEuapPolicy : HttpPipelinePolicy + { + private readonly string _euapHost; + + public RedirectToEuapPolicy(string euapHost) + { + _euapHost = euapHost; + } + + public override void Process(HttpMessage message, ReadOnlyMemory pipeline) + { + RedirectRequest(message); + ProcessNext(message, pipeline); + } + + public override ValueTask ProcessAsync(HttpMessage message, ReadOnlyMemory pipeline) + { + RedirectRequest(message); + return ProcessNextAsync(message, pipeline); + } + + private void RedirectRequest(HttpMessage message) + { + var request = message.Request; + var uri = request.Uri; + + // Replace any management.azure.com host with EUAP endpoint + if (uri.Host == "management.azure.com" || uri.Host.EndsWith(".management.azure.com")) + { + var builder = new UriBuilder(uri.ToUri()) + { + Host = _euapHost + }; + request.Uri.Reset(builder.Uri); + } + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/GetBookshelf.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/GetBookshelf.json new file mode 100644 index 000000000000..e903d3f5da2b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/GetBookshelf.json @@ -0,0 +1,165 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-742ea6b41ef1f50b8d2cfefd0159a453-ce2b02fb974b2e7d-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "46e08f1e-488e-4eca-bc4e-f3dd75fb8c9a", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "46e08f1e-488e-4eca-bc4e-f3dd75fb8c9a", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175045Z:46e08f1e-488e-4eca-bc4e-f3dd75fb8c9a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: E589186702AF4EB1A010C32BC9C7006C Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-085895b8c9b9a6ca13b0a4e7aa35d489-a916ed6de6dcd791-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "a63d6919-8224-4458-ad83-4ad53b15835b", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "a63d6919-8224-4458-ad83-4ad53b15835b", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175045Z:a63d6919-8224-4458-ad83-4ad53b15835b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C8E77003F5F94884B63F53C215F01C07 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-8c9714b6cd13b6fdbcebc82eb14e1c43-314202c90fa2b149-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "848", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:46 GMT", + "ETag": "\"0500b654-0000-1100-0000-696834bb0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "9bb4e11c-456c-4a7e-a36b-c80663baea65", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "7ca28db7-a951-4bb8-a361-75f7b1395d2a", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175046Z:9bb4e11c-456c-4a7e-a36b-c80663baea65", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: FB5F7A48BB5D4EDFAF68F676755D98EF Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114", + "name": "itbshlfrp114", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:20:20.0965772Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:20:20.0965772Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-itbshlfrp114-v9zm2i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-itbshlfrp114-v9zm2i" + } + ] + }, + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfrp114.bookshelf-dev.discovery.azure.com" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_BOOKSHELF_NAME": "itbshlfrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "2081731814", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/GetBookshelfAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/GetBookshelfAsync.json new file mode 100644 index 000000000000..809ff16d6be5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/GetBookshelfAsync.json @@ -0,0 +1,165 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-00fcc1e388ff0ff7752f00a2dc406e04-6b8ec9a61ef1006c-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "12806105-11ef-4937-b664-9559dbd75870", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "12806105-11ef-4937-b664-9559dbd75870", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175122Z:12806105-11ef-4937-b664-9559dbd75870", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 14B3CAD3070948D5AA47D7F35B3DA6FC Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fcf1e23a633f813c8a994a8bb521b6ff-1898dbe16bc52ccd-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "08c82ca2-1062-4774-9cc8-bd34691a2618", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "08c82ca2-1062-4774-9cc8-bd34691a2618", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175123Z:08c82ca2-1062-4774-9cc8-bd34691a2618", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 50E98730F511467186106DD7E5E2492E Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:23Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-4195dc2588173d3b4bc450cc02e01b76-c6b186e23663167c-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "848", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:23 GMT", + "ETag": "\"0500b654-0000-1100-0000-696834bb0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "02a0d235-080c-4227-afe6-5b1382fa9807", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "c5c31937-9fb4-48e4-94dd-e8630cfcb404", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175123Z:02a0d235-080c-4227-afe6-5b1382fa9807", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: FBCE5393438D4B48A1B86B649036D0D6 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:23Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114", + "name": "itbshlfrp114", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:20:20.0965772Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:20:20.0965772Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-itbshlfrp114-v9zm2i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-itbshlfrp114-v9zm2i" + } + ] + }, + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfrp114.bookshelf-dev.discovery.azure.com" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_BOOKSHELF_NAME": "itbshlfrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "935041542", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesByResourceGroup.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesByResourceGroup.json new file mode 100644 index 000000000000..6276c55bbccb --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesByResourceGroup.json @@ -0,0 +1,169 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-688ba2c11adbc80dd22740375cee0235-6f49393538cbf6b1-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "2bffc7ad-a59f-49ea-8ff9-a2d9c29ef6ab", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "2bffc7ad-a59f-49ea-8ff9-a2d9c29ef6ab", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175052Z:2bffc7ad-a59f-49ea-8ff9-a2d9c29ef6ab", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 4A775A91B18B4E2DADDBE2588BC6CB1A Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:52Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-95417c3fad84fd103cbed8f3751a38d4-92be88751114fb95-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "8b4cba66-6784-4d02-acc6-51c04fce0f17", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "8b4cba66-6784-4d02-acc6-51c04fce0f17", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175052Z:8b4cba66-6784-4d02-acc6-51c04fce0f17", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: A0E6D475F66B4B329DA264FAEE9F0BB5 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:52Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-d7a749ca00b6b0bfd100d10647703746-a21a88a22980704f-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "860", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:53 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "685addec-51b3-4ec7-89ad-0e8ec1fc5d01", + "x-ms-original-request-ids": [ + "64154b73-cfda-4f6b-bf9f-f0e048e9e9b4", + "40a3a1af-036d-49c4-8407-61ff0295af42" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "685addec-51b3-4ec7-89ad-0e8ec1fc5d01", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175053Z:685addec-51b3-4ec7-89ad-0e8ec1fc5d01", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 41821B943EBA4AEF873EF67F03F36AB3 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:52Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114", + "name": "itbshlfrp114", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:20:20.0965772Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:20:20.0965772Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-itbshlfrp114-v9zm2i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-itbshlfrp114-v9zm2i" + } + ] + }, + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfrp114.bookshelf-dev.discovery.azure.com" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "888327061", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesByResourceGroupAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesByResourceGroupAsync.json new file mode 100644 index 000000000000..83f5b5ec6f93 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesByResourceGroupAsync.json @@ -0,0 +1,169 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-237b22dcaf8b42033b13355ab8e73269-6eb2355f6221c4a9-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b4ec7be1-4d02-4571-805d-9ac89dc28cb8", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b4ec7be1-4d02-4571-805d-9ac89dc28cb8", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175129Z:b4ec7be1-4d02-4571-805d-9ac89dc28cb8", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 652D62982E8D473C8C926EB9709F2CC1 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c9226a865d8fcc422de8c6d036a8f168-e8185ab1f46e1bec-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "e9fe649a-62bd-4604-bdc4-4c73f538d11f", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "e9fe649a-62bd-4604-bdc4-4c73f538d11f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175129Z:e9fe649a-62bd-4604-bdc4-4c73f538d11f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 814755F3C8F04C36B3AE1726126B7A1F Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-29e2f4475951499c4623720ecd161ab0-b7169d0e7a254fff-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "860", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:30 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "05b75bb4-2ac1-4d97-be59-c67060f7e9b6", + "x-ms-original-request-ids": [ + "45758511-1131-4a5e-986c-2c09bbee16e6", + "55bf2e73-b9de-4220-be92-971f98325458" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "05b75bb4-2ac1-4d97-be59-c67060f7e9b6", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175130Z:05b75bb4-2ac1-4d97-be59-c67060f7e9b6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: E2B6502421874C429FCBDD61D941724B Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:30Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114", + "name": "itbshlfrp114", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:20:20.0965772Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:20:20.0965772Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-itbshlfrp114-v9zm2i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-itbshlfrp114-v9zm2i" + } + ] + }, + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfrp114.bookshelf-dev.discovery.azure.com" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "34443537", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesBySubscription.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesBySubscription.json new file mode 100644 index 000000000000..11f7c29e0f86 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesBySubscription.json @@ -0,0 +1,201 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-de597b88193fc82a739c17203788a4d9-a51298ece56632b6-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "4bbd12d8-a562-4fb5-8646-7711705bd3b4", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "4bbd12d8-a562-4fb5-8646-7711705bd3b4", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175058Z:4bbd12d8-a562-4fb5-8646-7711705bd3b4", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C521B6DFB5584B60986BF63AF18EF3F6 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:58Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/bookshelves?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-2858e83a451aabf95377033907f66d5e-4ce1e679243881db-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "3280", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:50:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b73c1302-9783-41aa-ac33-6f86d892d181", + "x-ms-original-request-ids": [ + "67a994ff-9301-4065-95f9-599c12ba0a40", + "3b9bafed-373d-4f58-8739-91bebb733452" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "b73c1302-9783-41aa-ac33-6f86d892d181", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175058Z:b73c1302-9783-41aa-ac33-6f86d892d181", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 2D4849BFE886444C9B6AEC2787E74450 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:50:58Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-devslice-uksouth/providers/Microsoft.Discovery/bookshelves/itbshlftmsq", + "name": "itbshlftmsq", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-10-26T06:16:37.1182676Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2025-10-26T06:16:37.1182676Z" + }, + "properties": { + "provisioningState": "Failed", + "bookshelfUri": "https://itbshlftmsq.bookshelf-dev.discovery.azure.com", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-devslice-uksouth/providers/Microsoft.Resources/moboBrokers/itbshlftmsq-mobobroker-bqv9h1" + } + ] + }, + "managedResourceGroup": "itbshlftmsq-mrg-bqv9h1" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/st-rg/providers/Microsoft.Discovery/bookshelves/itbshlfpsu11", + "name": "itbshlfpsu11", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-11-04T14:16:04.2743996Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2025-11-04T14:16:04.2743996Z" + }, + "properties": { + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfpsu11.bookshelf-dev.discovery.azure.com", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/st-rg/providers/Microsoft.Resources/moboBrokers/itbshlfpsu11-mobobroker-pf3i44" + } + ] + }, + "managedResourceGroup": "itbshlfpsu11-mrg-pf3i44" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114", + "name": "itbshlfrp114", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:20:20.0965772Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:20:20.0965772Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-itbshlfrp114-v9zm2i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-itbshlfrp114-v9zm2i" + } + ] + }, + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfrp114.bookshelf-dev.discovery.azure.com" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/bookshelves/newbooks", + "name": "newbooks", + "type": "microsoft.discovery/bookshelves", + "location": "centraluseuap", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-03T19:19:48.5868481Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-03T19:19:48.5868481Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-newbooks-ktgz9i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-newbooks-ktgz9i" + } + ] + }, + "provisioningState": "Failed" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "2006626824", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesBySubscriptionAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesBySubscriptionAsync.json new file mode 100644 index 000000000000..5b2af6a42888 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/BookshelfResourceTests/ListBookshelvesBySubscriptionAsync.json @@ -0,0 +1,201 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-e85c0404e18e84f3213b6d9a5b64402d-b78f83b44cb2ce30-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:36 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "83176826-2fe1-48ed-8bd5-bf5d61e6b4a7", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "83176826-2fe1-48ed-8bd5-bf5d61e6b4a7", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175136Z:83176826-2fe1-48ed-8bd5-bf5d61e6b4a7", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 8768BB2C0EFC48A48DE678AD02E60177 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:36Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/bookshelves?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f681cdea1e882b4cff9a9baf09aea088-e08e99458186852f-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "3280", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:51:36 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "48351dda-a901-4455-b4ae-02c6895abdf5", + "x-ms-original-request-ids": [ + "042b4556-e1d7-462c-aa7f-5970e5edc304", + "09042d14-2508-4d14-9287-636fd0e4d141" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "48351dda-a901-4455-b4ae-02c6895abdf5", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175136Z:48351dda-a901-4455-b4ae-02c6895abdf5", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 994ADA2A03DB487985624FCB62908CDE Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:51:36Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-devslice-uksouth/providers/Microsoft.Discovery/bookshelves/itbshlftmsq", + "name": "itbshlftmsq", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-10-26T06:16:37.1182676Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2025-10-26T06:16:37.1182676Z" + }, + "properties": { + "provisioningState": "Failed", + "bookshelfUri": "https://itbshlftmsq.bookshelf-dev.discovery.azure.com", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-devslice-uksouth/providers/Microsoft.Resources/moboBrokers/itbshlftmsq-mobobroker-bqv9h1" + } + ] + }, + "managedResourceGroup": "itbshlftmsq-mrg-bqv9h1" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/st-rg/providers/Microsoft.Discovery/bookshelves/itbshlfpsu11", + "name": "itbshlfpsu11", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-11-04T14:16:04.2743996Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2025-11-04T14:16:04.2743996Z" + }, + "properties": { + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfpsu11.bookshelf-dev.discovery.azure.com", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/st-rg/providers/Microsoft.Resources/moboBrokers/itbshlfpsu11-mobobroker-pf3i44" + } + ] + }, + "managedResourceGroup": "itbshlfpsu11-mrg-pf3i44" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/bookshelves/itbshlfrp114", + "name": "itbshlfrp114", + "type": "microsoft.discovery/bookshelves", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:20:20.0965772Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:20:20.0965772Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-itbshlfrp114-v9zm2i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-itbshlfrp114-v9zm2i" + } + ] + }, + "provisioningState": "Succeeded", + "bookshelfUri": "https://itbshlfrp114.bookshelf-dev.discovery.azure.com" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/bookshelves/newbooks", + "name": "newbooks", + "type": "microsoft.discovery/bookshelves", + "location": "centraluseuap", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-03T19:19:48.5868481Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-03T19:19:48.5868481Z" + }, + "properties": { + "managedResourceGroup": "mrg-dbksf-newbooks-ktgz9i", + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Resources/moboBrokers/mobr-dbksf-newbooks-ktgz9i" + } + ] + }, + "provisioningState": "Failed" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "1808102079", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/GetProject.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/GetProject.json new file mode 100644 index 000000000000..69718599874a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/GetProject.json @@ -0,0 +1,229 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-a6d7f85cda2f0b96fde650733e9113b9-931646f4dee8a526-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:19 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "e02260d7-4440-46cf-b5f3-f4d6cf3babe4", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "e02260d7-4440-46cf-b5f3-f4d6cf3babe4", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175520Z:e02260d7-4440-46cf-b5f3-f4d6cf3babe4", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5DBAAACA0CDA486289DB5E225699736D Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:20Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-5336cf185e1726e5f19be9692a1f1539-21322ad9b84df2f3-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:20 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "86bbc172-9c7b-45c4-81be-d256dcf41758", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "86bbc172-9c7b-45c4-81be-d256dcf41758", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175520Z:86bbc172-9c7b-45c4-81be-d256dcf41758", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C1BDAC6626DB422885E8727F28B7B4BC Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:20Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-dfa0f98178ea88d438ac68816e63dd89-756a75d6a5f7af89-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:20 GMT", + "ETag": "\"0000ad74-0000-1100-0000-69683de10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "c8a9576f-1105-43d9-9b32-c2465b381af1", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1096", + "x-ms-request-id": "2be1ed89-97c2-48a8-83c9-af84d6e82fce", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175521Z:c8a9576f-1105-43d9-9b32-c2465b381af1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6044214A16BD42B8AB29949F1D40B52A Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:20Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/itprojrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-a77be7cfad4fa36904e1e462b100fcbe-5897fd32bb15b493-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:21 GMT", + "ETag": "\"3c007966-0000-1100-0000-698e3cfe0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "9b7cd509-caa0-4084-b4fb-01f1b8204083", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "f9d8a250-1d3d-4c19-84ec-b042f2be8eeb", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175521Z:9b7cd509-caa0-4084-b4fb-01f1b8204083", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 17DF82674E524DF4B1F77E8CB941581D Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:21Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/itprojrp114", + "name": "itprojrp114", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "New project preference - 2026-02-12T20:49:17.636Z" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T01:11:57.3095382Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-12T20:49:19.0434194Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_PROJECT_NAME": "itprojrp114", + "AZURE_DISCOVERY_WORKSPACE_NAME": "itworkrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "1339693562", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/GetProjectAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/GetProjectAsync.json new file mode 100644 index 000000000000..f3b7bd0228be --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/GetProjectAsync.json @@ -0,0 +1,229 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-be84f99ad08a951b54d01b5f3f1b69f0-719a1f9d33a87112-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "9399d230-4281-422b-8ba9-141590564760", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "9399d230-4281-422b-8ba9-141590564760", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175553Z:9399d230-4281-422b-8ba9-141590564760", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C1A127C44E434AED8BCAFED39C6296CA Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:52Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-74c20a7bb75a5fcba992cc0982174dea-e2c16c5f46cb5f56-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "9cb30aa0-5b06-4568-8f4c-e999fac206bd", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "9cb30aa0-5b06-4568-8f4c-e999fac206bd", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175553Z:9cb30aa0-5b06-4568-8f4c-e999fac206bd", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5737ADD52E6444589CB49CE6406E1276 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:53Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-b9bb1714c30279e33cde6c780a8ea782-c939f6a37e97089d-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:53 GMT", + "ETag": "\"0000ad74-0000-1100-0000-69683de10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "e00ba58f-5761-41a5-ad65-93bdf308d383", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1096", + "x-ms-request-id": "6098b6eb-2b9b-4455-85e1-bd88cf4446ef", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175553Z:e00ba58f-5761-41a5-ad65-93bdf308d383", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F3101B1BEBA6473F95A625BBF595782C Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:53Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/itprojrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-624ca4627586eb5406348fae4b8fdd54-ad2a226cc04cd7cd-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:53 GMT", + "ETag": "\"3c007966-0000-1100-0000-698e3cfe0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "e63e60b7-8c19-4dd8-a04b-5cf1e4beb263", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "22e1b422-fdd5-4b7e-b885-b77adcda6f2e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175553Z:e63e60b7-8c19-4dd8-a04b-5cf1e4beb263", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C8961EDFE7504F8AB837CC08FB326E62 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:53Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/itprojrp114", + "name": "itprojrp114", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "New project preference - 2026-02-12T20:49:17.636Z" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T01:11:57.3095382Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-12T20:49:19.0434194Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_PROJECT_NAME": "itprojrp114", + "AZURE_DISCOVERY_WORKSPACE_NAME": "itworkrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "1743702397", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/ListProjectsByWorkspace.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/ListProjectsByWorkspace.json new file mode 100644 index 000000000000..77ca4a53697f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/ListProjectsByWorkspace.json @@ -0,0 +1,290 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-831f6b0484684240753334c7b61882f4-e0b553bed78bb0f7-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "6559a0e9-7732-4243-a292-7de820a09245", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "6559a0e9-7732-4243-a292-7de820a09245", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175528Z:6559a0e9-7732-4243-a292-7de820a09245", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 363940D5C73A4826A60E5DC48B61E786 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fa4a88a00c5e35cacc537d7d12347232-57b7892bfdaf6a7f-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "407d8cea-b119-4a27-95d9-e7c5ed4fbec7", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "407d8cea-b119-4a27-95d9-e7c5ed4fbec7", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175529Z:407d8cea-b119-4a27-95d9-e7c5ed4fbec7", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D39069C1D9AD4854B5B23343B480A4E1 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-d98d05e59c9cd55d4874c1de732317fa-b8cdfb4ed6de0d47-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:29 GMT", + "ETag": "\"0000ad74-0000-1100-0000-69683de10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "6bbceeb9-3e4d-4020-9ee4-82c154fe7e1b", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "21409456-8d86-461f-ab29-78c73784a8d1", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175529Z:6bbceeb9-3e4d-4020-9ee4-82c154fe7e1b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: E4F6ECEF502A44D98EB25F344C104A3A Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-e6d382e7671f42ad2772cb4e3d687b2b-20e84295930bf173-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2282", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "897bc00f-2112-4cb8-bad0-b4ef2d0747f3", + "x-ms-original-request-ids": [ + "93876fbe-f2b7-4648-8a5e-9956d2c678a1", + "b927ea7c-e867-457b-9c94-b266b75f3696" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "897bc00f-2112-4cb8-bad0-b4ef2d0747f3", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175530Z:897bc00f-2112-4cb8-bad0-b4ef2d0747f3", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0A1B0D7B67574EB38A37BEE85361516E Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:55:29Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/itprojrp114", + "name": "itprojrp114", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "New project preference - 2026-02-12T20:49:17.636Z" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T01:11:57.3095382Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-12T20:49:19.0434194Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/Viktor-HelloDiscovery", + "name": "Viktor-HelloDiscovery", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-12T04:22:37.3644697Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-12T04:22:37.3644697Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/haridura-hellodisco-test", + "name": "haridura-hellodisco-test", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T00:47:38.6023899Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-13T17:10:29.7199398Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/haridura-int-test", + "name": "haridura-int-test", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "Prefix all responses with the term ittestprojprefuser1" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T17:14:47.1751286Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-13T17:27:00.4714283Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_DISCOVERY_WORKSPACE_NAME": "itworkrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "12134841", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/ListProjectsByWorkspaceAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/ListProjectsByWorkspaceAsync.json new file mode 100644 index 000000000000..e04d18b44bb1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ProjectResourceTests/ListProjectsByWorkspaceAsync.json @@ -0,0 +1,290 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-df3bbc02274392c476eda2a049136193-47e3712a94328d6b-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:55:59 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "625e562e-00ee-4f1d-a678-55a7a7b55d97", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "625e562e-00ee-4f1d-a678-55a7a7b55d97", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175600Z:625e562e-00ee-4f1d-a678-55a7a7b55d97", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6BD7EEA421B84605BAC430ECE4A459A4 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:00Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-203dc5e9da8b1b80864b060fd3c3bad4-5c848533adcb728d-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:00 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "f03f901a-abb0-4d28-aed9-c18d545a62a3", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "f03f901a-abb0-4d28-aed9-c18d545a62a3", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175600Z:f03f901a-abb0-4d28-aed9-c18d545a62a3", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: EA0908114128498693B1637C1A7316DF Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:00Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-3d8a71a7d585693e74a9667a32e7f0ff-69e0f6c4a91652cf-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:00 GMT", + "ETag": "\"0000ad74-0000-1100-0000-69683de10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ea130c3c-6ce1-4ea4-9e75-4aad19d6a581", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1096", + "x-ms-request-id": "9923ddbe-9a7d-402b-bf2b-669bcd2d1ecc", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175600Z:ea130c3c-6ce1-4ea4-9e75-4aad19d6a581", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D8DB21F3797C40139773005361C3B419 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:00Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-e66515bf45006b2d1607c6597f54ab41-08b448c09433e906-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2282", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "a6919881-628b-4d10-922b-d8ad896cef5c", + "x-ms-original-request-ids": [ + "fc2c5561-2fea-4191-ac12-31fad1bedc69", + "170926af-a876-40ba-bcbc-9dad0fa2a4ad" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "a6919881-628b-4d10-922b-d8ad896cef5c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175601Z:a6919881-628b-4d10-922b-d8ad896cef5c", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 70A57DD9AF2346F599B583796A76A7A2 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:00Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/itprojrp114", + "name": "itprojrp114", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "New project preference - 2026-02-12T20:49:17.636Z" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T01:11:57.3095382Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-12T20:49:19.0434194Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/Viktor-HelloDiscovery", + "name": "Viktor-HelloDiscovery", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-12T04:22:37.3644697Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-12T04:22:37.3644697Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/haridura-hellodisco-test", + "name": "haridura-hellodisco-test", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T00:47:38.6023899Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-13T17:10:29.7199398Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114/projects/haridura-int-test", + "name": "haridura-int-test", + "type": "microsoft.discovery/workspaces/projects", + "location": "uksouth", + "tags": { + "preference": "Prefix all responses with the term ittestprojprefuser1" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T17:14:47.1751286Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-13T17:27:00.4714283Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_DISCOVERY_WORKSPACE_NAME": "itworkrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "762302524", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/CreateStorageAsset.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/CreateStorageAsset.json new file mode 100644 index 000000000000..0cba86889cc2 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/CreateStorageAsset.json @@ -0,0 +1 @@ +{"Entries":[{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-5fe42a30573c19cce1caf88d8fc66df3-86447a9a1aeb68af-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"479","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:42:20 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"3b7d38d2-75d0-4e20-a272-34db3ba75b33","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"3b7d38d2-75d0-4e20-a272-34db3ba75b33","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214220Z:3b7d38d2-75d0-4e20-a272-34db3ba75b33","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: BA380409BB2347E494068B81C08CD6DC Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:42:19Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec","authorizationSource":"RoleBased","managedByTenants":[],"tags":{"Az.Sec.AnonymousBlobEnforcement::OptIn":"all_regions"},"subscriptionId":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec","tenantId":"00000000-0000-0000-0000-000000000000","displayName":"Discovery-copilot-devslice1-uksouth","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Internal_2014-09-01","quotaId":"Internal_2014-09-01","spendingLimit":"Off"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-e055ac17be60677d6f2d2f877a6d8ee8-5d4d27bff15431e8-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"314","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:42:20 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"9e204d3c-b5fb-4e5a-9c5d-11a39dad4723","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"9e204d3c-b5fb-4e5a-9c5d-11a39dad4723","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214220Z:9e204d3c-b5fb-4e5a-9c5d-11a39dad4723","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 6F3FCB2C21A9452687457E910D036028 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:42:20Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal","name":"olawal","type":"Microsoft.Resources/resourceGroups","location":"uksouth","tags":{"Created":"2026-03-02T15:59:02.3331112Z","RGOwner":"rajakuc","SkipAutoDeleteTill":"2026-12-31"},"properties":{"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-3dad973aee07cbb338c21c02cba0dd75-1af9f493aaf413b9-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"699","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:42:21 GMT","ETag":"\"00000e9d-0000-1100-0000-69ac8c5f0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"1a2b283c-20b9-4e22-82e1-05e063bbcad2","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"309fab61-9161-49cd-b916-ad203eb28598","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214221Z:1a2b283c-20b9-4e22-82e1-05e063bbcad2","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: DC88919BD2D54872B87F3DE6045042CD Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:42:20Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","name":"test-sc-dotnet01","type":"microsoft.discovery/storagecontainers","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:22:46.3182573Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:35:46.2964063Z"},"properties":{"storageStore":{"storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr","kind":"AzureStorageBlob"},"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview","RequestMethod":"PUT","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","Content-Length":"122","Content-Type":"application/json","traceparent":"00-780badff8e4c68f1eacab0b4bfe359f9-322a8e5237f72f10-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":{"location":"uksouth","properties":{"description":"Test storage asset for .NET SDK validation","path":"data/test-assets"}},"StatusCode":201,"ResponseHeaders":{"Azure-AsyncNotification":"Enabled","Azure-AsyncOperation":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085165462035416&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=A1B89cHH1OP4uBAeRUfr8j4LOBvtJPr4UWOSc21TZsZl9QjzN5C0GC3NRLmfox_7Vnqtnub9i7E0bQ5XCRCPY_aMKHuDQhJKXZv_L8aVLLR7cCb2LJYx5eypy9e1w-a21NbokFX25uQdaiymZCGjojfemAL8fL9LnRH2xK7dYUZDpvmkPO4N1vnll2L6coRZiTcbj0cOgUJPDUHdWLY8v8Su9iLlvzSAbhswV7P4BkqsIWuLFz8bpvNCDZQgClyyjgadZ9LkdyunXoDTyQyvg2zJt3c2Sqql-3tOldQP5FywL0v7_XocavDbHfxKn75-gTCvbaJRPcXM8wu63i0ggQ&h=wG9ZzZ1iU44gBDvJbdxhUxE4M6TR6UO_0qfaV2zIF5E","Cache-Control":"no-cache","Content-Length":"637","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:42:26 GMT","ETag":"\"1302dd34-0000-1000-0000-69ac9bc10000\"","Expires":"-1","mise-correlation-id":"d17a52a4-6672-40ae-8c30-f7751071116e","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","x-azure-ref":"Sanitized","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-async-operation-timeout":"P6D","x-ms-build-version":"1","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"a28fdf94-44ba-4ee0-921b-60f188080b77","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/9e02ee53-48a0-4129-b8dc-5b561f7d5ed1","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-writes":"799","x-ms-request-id":"24da7954-1b84-4cfa-bcdc-14f1402a05ca","x-ms-resource-provider-hint":"noPolling","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214226Z:a28fdf94-44ba-4ee0-921b-60f188080b77","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 9BEDC504B3434D77801B58A490F3A660 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:42:21Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","name":"test-sa-dotnet01","type":"microsoft.discovery/storagecontainers/storageassets","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T21:42:24.0316706Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T21:42:24.0316706Z"},"properties":{"description":"Test storage asset for .NET SDK validation","path":"data/test-assets","provisioningState":"Accepted"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085165462035416&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=A1B89cHH1OP4uBAeRUfr8j4LOBvtJPr4UWOSc21TZsZl9QjzN5C0GC3NRLmfox_7Vnqtnub9i7E0bQ5XCRCPY_aMKHuDQhJKXZv_L8aVLLR7cCb2LJYx5eypy9e1w-a21NbokFX25uQdaiymZCGjojfemAL8fL9LnRH2xK7dYUZDpvmkPO4N1vnll2L6coRZiTcbj0cOgUJPDUHdWLY8v8Su9iLlvzSAbhswV7P4BkqsIWuLFz8bpvNCDZQgClyyjgadZ9LkdyunXoDTyQyvg2zJt3c2Sqql-3tOldQP5FywL0v7_XocavDbHfxKn75-gTCvbaJRPcXM8wu63i0ggQ&h=wG9ZzZ1iU44gBDvJbdxhUxE4M6TR6UO_0qfaV2zIF5E","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-780badff8e4c68f1eacab0b4bfe359f9-9ed999c2bf59dde9-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"587","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:42:26 GMT","ETag":"\"1b02e3c7-0000-1000-0000-69ac9bc00000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"55243f13-3f99-4fec-857c-eb798ac6cfea","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/52688464-c00a-4462-bff8-b423a35c52f1","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"7722cb0a-2b8c-414e-a355-da7eed2bd340","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214226Z:55243f13-3f99-4fec-857c-eb798ac6cfea","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 1932ECFA0D544C949B86C146F35AB333 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:42:26Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","name":"8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","status":"Accepted","startTime":"2026-03-07T21:42:24.7800243Z"}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085165462035416&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=A1B89cHH1OP4uBAeRUfr8j4LOBvtJPr4UWOSc21TZsZl9QjzN5C0GC3NRLmfox_7Vnqtnub9i7E0bQ5XCRCPY_aMKHuDQhJKXZv_L8aVLLR7cCb2LJYx5eypy9e1w-a21NbokFX25uQdaiymZCGjojfemAL8fL9LnRH2xK7dYUZDpvmkPO4N1vnll2L6coRZiTcbj0cOgUJPDUHdWLY8v8Su9iLlvzSAbhswV7P4BkqsIWuLFz8bpvNCDZQgClyyjgadZ9LkdyunXoDTyQyvg2zJt3c2Sqql-3tOldQP5FywL0v7_XocavDbHfxKn75-gTCvbaJRPcXM8wu63i0ggQ&h=wG9ZzZ1iU44gBDvJbdxhUxE4M6TR6UO_0qfaV2zIF5E","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-780badff8e4c68f1eacab0b4bfe359f9-5a3ab9033bd310b7-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"669","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:06 GMT","ETag":"\"1b02d3d1-0000-1000-0000-69ac9c130000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"c2010511-077c-44fd-918d-7ae9680aad71","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/f0d5aeea-abb7-4ad2-98f8-d808a31c3136","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"c549d02f-e732-4460-a953-c2abe58ea2fd","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214406Z:c2010511-077c-44fd-918d-7ae9680aad71","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 569A8D3EAC6944E081136045512BDB52 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:06Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","name":"8d16e35d-7001-4604-8009-106d688ccd0d*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","status":"Succeeded","startTime":"2026-03-07T21:42:24.7800243Z","endTime":"2026-03-07T21:43:47.4468441Z","percentComplete":0.0,"properties":null}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-780badff8e4c68f1eacab0b4bfe359f9-e22d0ff886bb72e1-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"638","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:07 GMT","ETag":"\"90007bca-0000-1100-0000-69ac9c130000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"792ef1d9-1976-4877-8a41-894908164a70","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"9d1995cc-5ee5-42e4-b96c-07d29a734e34","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214407Z:792ef1d9-1976-4877-8a41-894908164a70","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: B5C0AC6798944F15B474624A9249F5B7 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:06Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","name":"test-sa-dotnet01","type":"microsoft.discovery/storagecontainers/storageassets","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T21:42:24.0316706Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T21:42:24.0316706Z"},"properties":{"description":"Test storage asset for .NET SDK validation","path":"data/test-assets","provisioningState":"Succeeded"}}}],"Variables":{"AZURE_DISCOVERY_STORAGE_CONTAINER_NAME":"test-sc-dotnet01","AZURE_RESOURCE_GROUP_NAME":"olawal","RandomSeed":"954177767","RESOURCE_MANAGER_URL":null,"SUBSCRIPTION_ID":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec"}} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/CreateStorageAssetAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/CreateStorageAssetAsync.json new file mode 100644 index 000000000000..147501e80ac7 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/CreateStorageAssetAsync.json @@ -0,0 +1 @@ +{"Entries":[{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-02658d5fef990828b691f9642759e366-3fcdd21d0613185f-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"479","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:17 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"b251f791-a346-4170-9f60-7d64c36dd0c1","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"b251f791-a346-4170-9f60-7d64c36dd0c1","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214417Z:b251f791-a346-4170-9f60-7d64c36dd0c1","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 2E4604BDF6544724BC3B5D7012259EEF Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:17Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec","authorizationSource":"RoleBased","managedByTenants":[],"tags":{"Az.Sec.AnonymousBlobEnforcement::OptIn":"all_regions"},"subscriptionId":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec","tenantId":"00000000-0000-0000-0000-000000000000","displayName":"Discovery-copilot-devslice1-uksouth","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Internal_2014-09-01","quotaId":"Internal_2014-09-01","spendingLimit":"Off"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-4460605eceed783a85e56a6032f76bd3-fb25b3a0506edc04-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"314","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:17 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"b2173a44-4ae1-49e8-a133-31e81791ce96","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"b2173a44-4ae1-49e8-a133-31e81791ce96","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214417Z:b2173a44-4ae1-49e8-a133-31e81791ce96","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 16EA6AD0A19B422496B11B83180D87C3 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:17Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal","name":"olawal","type":"Microsoft.Resources/resourceGroups","location":"uksouth","tags":{"Created":"2026-03-02T15:59:02.3331112Z","RGOwner":"rajakuc","SkipAutoDeleteTill":"2026-12-31"},"properties":{"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-c68c2a4bd6c7691569bd4227e6f1e73d-990aa71e38e3d233-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"699","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:18 GMT","ETag":"\"00000e9d-0000-1100-0000-69ac8c5f0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"40c5f431-5e6a-4fcc-983d-9415a734f256","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1097","x-ms-request-id":"02f6311c-a3ee-40d5-a2e2-9708b10438bf","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214418Z:40c5f431-5e6a-4fcc-983d-9415a734f256","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: A80BEF8869B04C2DB3A2D1BC4EA69BB5 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:17Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","name":"test-sc-dotnet01","type":"microsoft.discovery/storagecontainers","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:22:46.3182573Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:35:46.2964063Z"},"properties":{"storageStore":{"storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr","kind":"AzureStorageBlob"},"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview","RequestMethod":"PUT","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","Content-Length":"122","Content-Type":"application/json","traceparent":"00-4c0a1f6407daa71012b1b24caaf20543-9872f0d8221121cc-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":{"location":"uksouth","properties":{"description":"Test storage asset for .NET SDK validation","path":"data/test-assets"}},"StatusCode":201,"ResponseHeaders":{"Azure-AsyncNotification":"Enabled","Azure-AsyncOperation":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085166619265692&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=jV8zq22K7oyJuzIIcelWszal-qCXkNtrGAH51i4smdRhN2UOX68zymnPsRWenvCvFehBbneOw-ppAo6dNgCadSIMBdENJfpfzE2FrAGnJi4VUZoxrwbD-qM-OfI_1h_2NzJDL9ohDtwPZmq63jOMR3c-hynhrYMK6EVRHzzub3ETUUdVUYsvoCR6pYE5SoJh-IIetsXrkr08nxeyd3sMWQzrwm3st1saOyaUQTf9q0hOydq1dY6wKf5y2SGee5JgnQx5T692k5dQJD_eF1RvnICa1Tp9kJnm26YGvFRZtUbeJxgn8zfcgvpWt98DQ4qs7Ph-2Ch4OT-sfhAkuag3Qg&h=tL4sH0G7PWOsH8g2evlXzNsPqea9rYZZvkIdPfp5unk","Cache-Control":"no-cache","Content-Length":"637","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:21 GMT","ETag":"\"1302c250-0000-1000-0000-69ac9c350000\"","Expires":"-1","mise-correlation-id":"d7e7c1b7-28ad-49e9-a300-d5cf0b6d078c","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","x-azure-ref":"Sanitized","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-async-operation-timeout":"P6D","x-ms-build-version":"1","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"cd11ad7c-364a-4303-9d2c-4b0174630664","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/9dcf2958-5dab-4dd2-bc70-05f2cd175413","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-writes":"799","x-ms-request-id":"b783184f-5145-4c39-b8df-035ae42c1fdf","x-ms-resource-provider-hint":"noPolling","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214421Z:cd11ad7c-364a-4303-9d2c-4b0174630664","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 4D2F97A5C471475A8F69D67FEDCE6A6D Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:18Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","name":"test-sa-dotnet01","type":"microsoft.discovery/storagecontainers/storageassets","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T21:42:24.0316706Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T21:44:18.8797312Z"},"properties":{"description":"Test storage asset for .NET SDK validation","path":"data/test-assets","provisioningState":"Accepted"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085166619265692&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=jV8zq22K7oyJuzIIcelWszal-qCXkNtrGAH51i4smdRhN2UOX68zymnPsRWenvCvFehBbneOw-ppAo6dNgCadSIMBdENJfpfzE2FrAGnJi4VUZoxrwbD-qM-OfI_1h_2NzJDL9ohDtwPZmq63jOMR3c-hynhrYMK6EVRHzzub3ETUUdVUYsvoCR6pYE5SoJh-IIetsXrkr08nxeyd3sMWQzrwm3st1saOyaUQTf9q0hOydq1dY6wKf5y2SGee5JgnQx5T692k5dQJD_eF1RvnICa1Tp9kJnm26YGvFRZtUbeJxgn8zfcgvpWt98DQ4qs7Ph-2Ch4OT-sfhAkuag3Qg&h=tL4sH0G7PWOsH8g2evlXzNsPqea9rYZZvkIdPfp5unk","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-4c0a1f6407daa71012b1b24caaf20543-408b1aa3f91573a0-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"587","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:44:21 GMT","ETag":"\"1b0283d7-0000-1000-0000-69ac9c340000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"d753f98a-58ec-4e54-a96e-53db6d644392","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/43f1bbae-e923-4440-aa70-f348bb86e7d5","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"63b8a2aa-0611-4618-8cde-7527566752c0","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214422Z:d753f98a-58ec-4e54-a96e-53db6d644392","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: E375104BB5E04771A492F067043D0B34 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:44:22Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","name":"9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","status":"Accepted","startTime":"2026-03-07T21:44:20.7386128Z"}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085166619265692&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=jV8zq22K7oyJuzIIcelWszal-qCXkNtrGAH51i4smdRhN2UOX68zymnPsRWenvCvFehBbneOw-ppAo6dNgCadSIMBdENJfpfzE2FrAGnJi4VUZoxrwbD-qM-OfI_1h_2NzJDL9ohDtwPZmq63jOMR3c-hynhrYMK6EVRHzzub3ETUUdVUYsvoCR6pYE5SoJh-IIetsXrkr08nxeyd3sMWQzrwm3st1saOyaUQTf9q0hOydq1dY6wKf5y2SGee5JgnQx5T692k5dQJD_eF1RvnICa1Tp9kJnm26YGvFRZtUbeJxgn8zfcgvpWt98DQ4qs7Ph-2Ch4OT-sfhAkuag3Qg&h=tL4sH0G7PWOsH8g2evlXzNsPqea9rYZZvkIdPfp5unk","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-4c0a1f6407daa71012b1b24caaf20543-19fb51540d7bf610-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"669","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:45:29 GMT","ETag":"\"1b02ece1-0000-1000-0000-69ac9c710000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"a794bb36-fa3a-4bb6-9dd9-2453eab0d272","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/2b5c7611-254c-4a6e-b68a-494a8a450a91","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"3d775557-5a27-4912-9401-9672624a2b12","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214529Z:a794bb36-fa3a-4bb6-9dd9-2453eab0d272","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: F23E83FB48B04E1091423611C260E861 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:45:29Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","name":"9909c3c1-e0b1-4553-8e6b-2c2572424754*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","status":"Succeeded","startTime":"2026-03-07T21:44:20.7386128Z","endTime":"2026-03-07T21:45:21.4137184Z","percentComplete":0.0,"properties":null}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-4c0a1f6407daa71012b1b24caaf20543-ea68001699b4b54c-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"638","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:45:29 GMT","ETag":"\"91003808-0000-1100-0000-69ac9c710000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"a998f4ec-f879-4438-8bdb-d4dc6a88f453","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"d54472b3-cf4d-4f93-9905-e12262995bea","x-ms-routing-request-id":"EASTUS2EUAP:20260307T214530Z:a998f4ec-f879-4438-8bdb-d4dc6a88f453","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: AE7A9EAAE41D4711AD3B0F6769EC7EE1 Ref B: SN4AA2022301035 Ref C: 2026-03-07T21:45:29Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01","name":"test-sa-dotnet01","type":"microsoft.discovery/storagecontainers/storageassets","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T21:42:24.0316706Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T21:44:18.8797312Z"},"properties":{"description":"Test storage asset for .NET SDK validation","path":"data/test-assets","provisioningState":"Succeeded"}}}],"Variables":{"AZURE_DISCOVERY_STORAGE_CONTAINER_NAME":"test-sc-dotnet01","AZURE_RESOURCE_GROUP_NAME":"olawal","RandomSeed":"263385821","RESOURCE_MANAGER_URL":null,"SUBSCRIPTION_ID":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec"}} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/DeleteStorageAsset.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/DeleteStorageAsset.json new file mode 100644 index 000000000000..a1419aabd45b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/DeleteStorageAsset.json @@ -0,0 +1,342 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-604d8d205e3f950ecd0b3b1297a3ffe8-83aac0307c64a236-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "ac9c0aff-287c-41d0-b7e5-99598a58ab95", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ac9c0aff-287c-41d0-b7e5-99598a58ab95", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222314Z:ac9c0aff-287c-41d0-b7e5-99598a58ab95", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 73169753572745568FF59BAD63969E5F Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:13Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-59fbd4a49f277c5b0bdc99de113d6122-a7ea9d83f0adb3e5-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:14 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "cb543321-a53b-4009-8f7e-690ee25deb67", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "cb543321-a53b-4009-8f7e-690ee25deb67", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222315Z:cb543321-a53b-4009-8f7e-690ee25deb67", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 614EA19943DF4DD68A09C766D2C9D389 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:14Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-743e986dac7ed467c5f405e7d0be5ce0-9552de209d870323-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:15 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "4062fd5a-5413-439d-91ca-437c2db93826", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "a5df9c2e-18a3-4ba5-a36b-1451bd63e157", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222316Z:4062fd5a-5413-439d-91ca-437c2db93826", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 7510E2CF6D784BC297C3B551A44C34CE Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:15Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-a5b750154aa20794bfc0d9db04ff88d5-8de9858f7f35ee71-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:16 GMT", + "ETag": "\"91003808-0000-1100-0000-69ac9c710000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "8edc9e84-20e9-4366-bacb-3e694ed08888", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "dfcf5912-c41c-47ea-aedf-e7dd79432ff0", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222317Z:8edc9e84-20e9-4366-bacb-3e694ed08888", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DD55FD4399CA4829828DBA4972AD34A5 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:16Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T21:42:24.0316706Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T21:44:18.8797312Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f7ff1c70817d9650c0b685ad7dd110c8-a7152fa2c3bed247-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190006131044&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=HeTuYOrynFIU5LSA5pykTsDio5qOMNaXscD6gpuGaKokkhREd4zymjuoeAFr0UgP8FJquzwAI61L6RgHe5OHHkzCF1Dri8HBrM5ADL_GTIy8uttwdg6A5Mp-ebzdFIg-KCuUVnt2DbIOdaLuKxITMeW1ywyh38a4MIWF60eD-Y3YHKj0bMpeiqc6ZksSzYgxMIRB0aonAmsiJpC01WUiYs0MLvVlF9pb5euB4P7pu88DKybD2_UgFytrWMF0o8iDp_MZnTxPuBIZCPFbkGFNE4JcR2b2y09GslO8wzOuk6bjZe5fcLMq9ADM1YFYo84R4CcHIin4_INFiDQCsgYCbw&h=2kspyeGJJN-0nlMUqjHqAiqFZZcQmCdXIoiSywCzHco", + "Cache-Control": "no-cache", + "Content-Length": "4", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:19 GMT", + "ETag": "\"1502d26a-0000-1000-0000-69aca5580000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190006131044&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=HeTuYOrynFIU5LSA5pykTsDio5qOMNaXscD6gpuGaKokkhREd4zymjuoeAFr0UgP8FJquzwAI61L6RgHe5OHHkzCF1Dri8HBrM5ADL_GTIy8uttwdg6A5Mp-ebzdFIg-KCuUVnt2DbIOdaLuKxITMeW1ywyh38a4MIWF60eD-Y3YHKj0bMpeiqc6ZksSzYgxMIRB0aonAmsiJpC01WUiYs0MLvVlF9pb5euB4P7pu88DKybD2_UgFytrWMF0o8iDp_MZnTxPuBIZCPFbkGFNE4JcR2b2y09GslO8wzOuk6bjZe5fcLMq9ADM1YFYo84R4CcHIin4_INFiDQCsgYCbw&h=2kspyeGJJN-0nlMUqjHqAiqFZZcQmCdXIoiSywCzHco", + "mise-correlation-id": "cc1c4e36-618e-4a63-9f8a-103f40cd21b3", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fd8c62f5-70e7-48fe-8a09-ba927d656f5d", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/601f6e47-3812-42c5-984a-0caac9a20b68", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-deletes": "799", + "x-ms-request-id": "596f8db3-7e95-4ba4-8394-71153f317804", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222320Z:fd8c62f5-70e7-48fe-8a09-ba927d656f5d", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: AA57E4D867A0430CA9262F1234C47552 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:17Z" + }, + "ResponseBody": "null" + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190006131044&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=HeTuYOrynFIU5LSA5pykTsDio5qOMNaXscD6gpuGaKokkhREd4zymjuoeAFr0UgP8FJquzwAI61L6RgHe5OHHkzCF1Dri8HBrM5ADL_GTIy8uttwdg6A5Mp-ebzdFIg-KCuUVnt2DbIOdaLuKxITMeW1ywyh38a4MIWF60eD-Y3YHKj0bMpeiqc6ZksSzYgxMIRB0aonAmsiJpC01WUiYs0MLvVlF9pb5euB4P7pu88DKybD2_UgFytrWMF0o8iDp_MZnTxPuBIZCPFbkGFNE4JcR2b2y09GslO8wzOuk6bjZe5fcLMq9ADM1YFYo84R4CcHIin4_INFiDQCsgYCbw&h=2kspyeGJJN-0nlMUqjHqAiqFZZcQmCdXIoiSywCzHco", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f7ff1c70817d9650c0b685ad7dd110c8-6edc871b008d272b-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190014630282&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SwvNVpuF40zCO0cV1-qvMRZKHNOzxiGFozOY4vGndoBby63XqefFGVvbXknApXUWdwP8HcA9oVC-7s05jX9smNQpOZLuIBwqkBaUSnhLRHuqhPXggwIPCaZIZqXnBcqE6Rox5mOtkXEHD6COyAprP0EqZ3sjbPKnN72SChS_QgvSRaRZLmS0161jCHKmIPK_FoPGbuqG8IuUK1Q_u6x1AS85FB9_3Ef0RCqevvJ-cvFO1sADiM_R4hB7wBLHAT5BYo0kszvx0MQ38-qET9ru3JVyufiY2qOJruorUXE86-Vo6PFDRdKtY2SJBURv-GoCGqJ2tDGP_Ae7xeDOy4zdtA&h=CHd008QVsO8PcasJPRMHT5AlTu2rvWsQD4htQpEECCQ", + "Cache-Control": "no-cache", + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:20 GMT", + "ETag": "\"1d02ee3f-0000-1000-0000-69aca5580000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190014786492&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=BY-y92R_mmTtnC7QzAag5mzM9Rm6fwwlB6NXAkBEkyngFdTsfFqjFkZGEUA7P2GCbbIbBjlW4akn54kyPDv9STp8Lpd5ABsbm0ida0tCoYwF0PPRh0vOBDT3fKmlWYSqKUQxCUAn-uXp3aIONqDuIFOc0xvuWd91gD85si5at8XvPB2hEERcEgYAjbCxVOsb13IRyjZyIUtM3kupM5AY-C3zzHuhaq-lFDvg5bKsH67nEHYaEdSuCDY8O7WIW7BlawqZuMtlJ0iu2NX4YPTRaqsPtTgYt4MBS0o21z-wrZyoBXPUYeTOCf4H-SO6y9wTLXehWVXTkIed-DfVEg05jQ&h=IGXezNf4f5zzLjxoxOi6Eq2MB-NAJiIm3jiLYxloBLo", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "aba83d86-d781-4573-b5c7-35bcb3d1a9d0", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/11853432-4ff7-4252-9469-1a54366da2b7", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "c9f2a042-ff2c-4ce1-9ea5-d73caf9f1af6", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222321Z:aba83d86-d781-4573-b5c7-35bcb3d1a9d0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 424B367EEFA44384AAC280600E8A5C4B Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:20Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:23:20.0129838Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190014630282&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SwvNVpuF40zCO0cV1-qvMRZKHNOzxiGFozOY4vGndoBby63XqefFGVvbXknApXUWdwP8HcA9oVC-7s05jX9smNQpOZLuIBwqkBaUSnhLRHuqhPXggwIPCaZIZqXnBcqE6Rox5mOtkXEHD6COyAprP0EqZ3sjbPKnN72SChS_QgvSRaRZLmS0161jCHKmIPK_FoPGbuqG8IuUK1Q_u6x1AS85FB9_3Ef0RCqevvJ-cvFO1sADiM_R4hB7wBLHAT5BYo0kszvx0MQ38-qET9ru3JVyufiY2qOJruorUXE86-Vo6PFDRdKtY2SJBURv-GoCGqJ2tDGP_Ae7xeDOy4zdtA&h=CHd008QVsO8PcasJPRMHT5AlTu2rvWsQD4htQpEECCQ", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f7ff1c70817d9650c0b685ad7dd110c8-ddf5d11d199fdd3a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:21 GMT", + "ETag": "\"1d020840-0000-1000-0000-69aca5590000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "2587dfed-242c-42e7-b034-1fcdfd5901ea", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/9eff309e-5baf-4d85-91dd-7911f22703c5", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "44ac5073-4306-4f9d-b268-d4152e11d893", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222322Z:2587dfed-242c-42e7-b034-1fcdfd5901ea", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6B7FFAC6101C4981A6665CFE72C3E511 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-07T22:23:20.0129838Z", + "endTime": "2026-03-07T22:23:20.5899764Z", + "percentComplete": 0.0, + "properties": null + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1251790968", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/DeleteStorageAssetAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/DeleteStorageAssetAsync.json new file mode 100644 index 000000000000..a1419aabd45b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/DeleteStorageAssetAsync.json @@ -0,0 +1,342 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-604d8d205e3f950ecd0b3b1297a3ffe8-83aac0307c64a236-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "ac9c0aff-287c-41d0-b7e5-99598a58ab95", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ac9c0aff-287c-41d0-b7e5-99598a58ab95", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222314Z:ac9c0aff-287c-41d0-b7e5-99598a58ab95", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 73169753572745568FF59BAD63969E5F Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:13Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-59fbd4a49f277c5b0bdc99de113d6122-a7ea9d83f0adb3e5-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:14 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "cb543321-a53b-4009-8f7e-690ee25deb67", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "cb543321-a53b-4009-8f7e-690ee25deb67", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222315Z:cb543321-a53b-4009-8f7e-690ee25deb67", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 614EA19943DF4DD68A09C766D2C9D389 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:14Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-743e986dac7ed467c5f405e7d0be5ce0-9552de209d870323-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:15 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "4062fd5a-5413-439d-91ca-437c2db93826", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "a5df9c2e-18a3-4ba5-a36b-1451bd63e157", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222316Z:4062fd5a-5413-439d-91ca-437c2db93826", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 7510E2CF6D784BC297C3B551A44C34CE Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:15Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-a5b750154aa20794bfc0d9db04ff88d5-8de9858f7f35ee71-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:16 GMT", + "ETag": "\"91003808-0000-1100-0000-69ac9c710000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "8edc9e84-20e9-4366-bacb-3e694ed08888", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "dfcf5912-c41c-47ea-aedf-e7dd79432ff0", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222317Z:8edc9e84-20e9-4366-bacb-3e694ed08888", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DD55FD4399CA4829828DBA4972AD34A5 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:16Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T21:42:24.0316706Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T21:44:18.8797312Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f7ff1c70817d9650c0b685ad7dd110c8-a7152fa2c3bed247-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190006131044&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=HeTuYOrynFIU5LSA5pykTsDio5qOMNaXscD6gpuGaKokkhREd4zymjuoeAFr0UgP8FJquzwAI61L6RgHe5OHHkzCF1Dri8HBrM5ADL_GTIy8uttwdg6A5Mp-ebzdFIg-KCuUVnt2DbIOdaLuKxITMeW1ywyh38a4MIWF60eD-Y3YHKj0bMpeiqc6ZksSzYgxMIRB0aonAmsiJpC01WUiYs0MLvVlF9pb5euB4P7pu88DKybD2_UgFytrWMF0o8iDp_MZnTxPuBIZCPFbkGFNE4JcR2b2y09GslO8wzOuk6bjZe5fcLMq9ADM1YFYo84R4CcHIin4_INFiDQCsgYCbw&h=2kspyeGJJN-0nlMUqjHqAiqFZZcQmCdXIoiSywCzHco", + "Cache-Control": "no-cache", + "Content-Length": "4", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:19 GMT", + "ETag": "\"1502d26a-0000-1000-0000-69aca5580000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190006131044&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=HeTuYOrynFIU5LSA5pykTsDio5qOMNaXscD6gpuGaKokkhREd4zymjuoeAFr0UgP8FJquzwAI61L6RgHe5OHHkzCF1Dri8HBrM5ADL_GTIy8uttwdg6A5Mp-ebzdFIg-KCuUVnt2DbIOdaLuKxITMeW1ywyh38a4MIWF60eD-Y3YHKj0bMpeiqc6ZksSzYgxMIRB0aonAmsiJpC01WUiYs0MLvVlF9pb5euB4P7pu88DKybD2_UgFytrWMF0o8iDp_MZnTxPuBIZCPFbkGFNE4JcR2b2y09GslO8wzOuk6bjZe5fcLMq9ADM1YFYo84R4CcHIin4_INFiDQCsgYCbw&h=2kspyeGJJN-0nlMUqjHqAiqFZZcQmCdXIoiSywCzHco", + "mise-correlation-id": "cc1c4e36-618e-4a63-9f8a-103f40cd21b3", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fd8c62f5-70e7-48fe-8a09-ba927d656f5d", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/601f6e47-3812-42c5-984a-0caac9a20b68", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-deletes": "799", + "x-ms-request-id": "596f8db3-7e95-4ba4-8394-71153f317804", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222320Z:fd8c62f5-70e7-48fe-8a09-ba927d656f5d", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: AA57E4D867A0430CA9262F1234C47552 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:17Z" + }, + "ResponseBody": "null" + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190006131044&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=HeTuYOrynFIU5LSA5pykTsDio5qOMNaXscD6gpuGaKokkhREd4zymjuoeAFr0UgP8FJquzwAI61L6RgHe5OHHkzCF1Dri8HBrM5ADL_GTIy8uttwdg6A5Mp-ebzdFIg-KCuUVnt2DbIOdaLuKxITMeW1ywyh38a4MIWF60eD-Y3YHKj0bMpeiqc6ZksSzYgxMIRB0aonAmsiJpC01WUiYs0MLvVlF9pb5euB4P7pu88DKybD2_UgFytrWMF0o8iDp_MZnTxPuBIZCPFbkGFNE4JcR2b2y09GslO8wzOuk6bjZe5fcLMq9ADM1YFYo84R4CcHIin4_INFiDQCsgYCbw&h=2kspyeGJJN-0nlMUqjHqAiqFZZcQmCdXIoiSywCzHco", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f7ff1c70817d9650c0b685ad7dd110c8-6edc871b008d272b-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190014630282&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SwvNVpuF40zCO0cV1-qvMRZKHNOzxiGFozOY4vGndoBby63XqefFGVvbXknApXUWdwP8HcA9oVC-7s05jX9smNQpOZLuIBwqkBaUSnhLRHuqhPXggwIPCaZIZqXnBcqE6Rox5mOtkXEHD6COyAprP0EqZ3sjbPKnN72SChS_QgvSRaRZLmS0161jCHKmIPK_FoPGbuqG8IuUK1Q_u6x1AS85FB9_3Ef0RCqevvJ-cvFO1sADiM_R4hB7wBLHAT5BYo0kszvx0MQ38-qET9ru3JVyufiY2qOJruorUXE86-Vo6PFDRdKtY2SJBURv-GoCGqJ2tDGP_Ae7xeDOy4zdtA&h=CHd008QVsO8PcasJPRMHT5AlTu2rvWsQD4htQpEECCQ", + "Cache-Control": "no-cache", + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:20 GMT", + "ETag": "\"1d02ee3f-0000-1000-0000-69aca5580000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190014786492&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=BY-y92R_mmTtnC7QzAag5mzM9Rm6fwwlB6NXAkBEkyngFdTsfFqjFkZGEUA7P2GCbbIbBjlW4akn54kyPDv9STp8Lpd5ABsbm0ida0tCoYwF0PPRh0vOBDT3fKmlWYSqKUQxCUAn-uXp3aIONqDuIFOc0xvuWd91gD85si5at8XvPB2hEERcEgYAjbCxVOsb13IRyjZyIUtM3kupM5AY-C3zzHuhaq-lFDvg5bKsH67nEHYaEdSuCDY8O7WIW7BlawqZuMtlJ0iu2NX4YPTRaqsPtTgYt4MBS0o21z-wrZyoBXPUYeTOCf4H-SO6y9wTLXehWVXTkIed-DfVEg05jQ&h=IGXezNf4f5zzLjxoxOi6Eq2MB-NAJiIm3jiLYxloBLo", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "aba83d86-d781-4573-b5c7-35bcb3d1a9d0", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/11853432-4ff7-4252-9469-1a54366da2b7", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "c9f2a042-ff2c-4ce1-9ea5-d73caf9f1af6", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222321Z:aba83d86-d781-4573-b5c7-35bcb3d1a9d0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 424B367EEFA44384AAC280600E8A5C4B Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:20Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:23:20.0129838Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085190014630282&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SwvNVpuF40zCO0cV1-qvMRZKHNOzxiGFozOY4vGndoBby63XqefFGVvbXknApXUWdwP8HcA9oVC-7s05jX9smNQpOZLuIBwqkBaUSnhLRHuqhPXggwIPCaZIZqXnBcqE6Rox5mOtkXEHD6COyAprP0EqZ3sjbPKnN72SChS_QgvSRaRZLmS0161jCHKmIPK_FoPGbuqG8IuUK1Q_u6x1AS85FB9_3Ef0RCqevvJ-cvFO1sADiM_R4hB7wBLHAT5BYo0kszvx0MQ38-qET9ru3JVyufiY2qOJruorUXE86-Vo6PFDRdKtY2SJBURv-GoCGqJ2tDGP_Ae7xeDOy4zdtA&h=CHd008QVsO8PcasJPRMHT5AlTu2rvWsQD4htQpEECCQ", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f7ff1c70817d9650c0b685ad7dd110c8-ddf5d11d199fdd3a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:21 GMT", + "ETag": "\"1d020840-0000-1000-0000-69aca5590000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "2587dfed-242c-42e7-b034-1fcdfd5901ea", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/9eff309e-5baf-4d85-91dd-7911f22703c5", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "44ac5073-4306-4f9d-b268-d4152e11d893", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222322Z:2587dfed-242c-42e7-b034-1fcdfd5901ea", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6B7FFAC6101C4981A6665CFE72C3E511 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "3338839d-a715-4e4f-8436-1010ebb7dd78*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-07T22:23:20.0129838Z", + "endTime": "2026-03-07T22:23:20.5899764Z", + "percentComplete": 0.0, + "properties": null + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1251790968", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/GetStorageAsset.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/GetStorageAsset.json new file mode 100644 index 000000000000..dacf9d693dac --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/GetStorageAsset.json @@ -0,0 +1,214 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-074a80a3b7ac747ac571ed5180621464-22765684973a48ed-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "0b52401e-1876-4549-9c5f-06fa21248d73", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "0b52401e-1876-4549-9c5f-06fa21248d73", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220918Z:0b52401e-1876-4549-9c5f-06fa21248d73", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 498603F43B8F465B8250BEE59F9C005F Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:17Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-37567cc179d2d2be946a3c053c1f7221-b6c8c45c935ee2ae-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:17 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "787598ad-e356-4779-825b-5f4925f7652f", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "787598ad-e356-4779-825b-5f4925f7652f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220918Z:787598ad-e356-4779-825b-5f4925f7652f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: E782E01885CA4F859A06E4B210912931 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:18Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-5177473efa574761ff21ebff1761db74-23131d9cdf6fa6ea-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:18 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ddcca678-2b65-4a07-81ed-eed2e8f2c4b0", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "89b50fa3-9b15-4878-a213-c62eda87cdc9", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220919Z:ddcca678-2b65-4a07-81ed-eed2e8f2c4b0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 72B3E61E23CF42F1A9AC161078CE68D8 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:18Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-29cf37cf50e5ba71bce4c7965f2cfdf4-6ad533c157c7e217-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:19 GMT", + "ETag": "\"91003808-0000-1100-0000-69ac9c710000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "e8552ced-7595-4254-821b-3c13d9a29b39", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "340f9173-b4d6-41d6-b4e7-e7ea3da3acae", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220920Z:e8552ced-7595-4254-821b-3c13d9a29b39", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 77254BA9E4064B119092C26C94E09E39 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:19Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T21:42:24.0316706Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T21:44:18.8797312Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_ASSET_NAME": "test-sa-dotnet01", + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "345807274", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/GetStorageAssetAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/GetStorageAssetAsync.json new file mode 100644 index 000000000000..5e3c7af96ee5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/GetStorageAssetAsync.json @@ -0,0 +1,214 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-099c90b253ac2cecf3dcbcdd3b639811-9a606cccd72882cb-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:51 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "0dbc369b-8f76-4320-8f22-0f4e69d25391", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "0dbc369b-8f76-4320-8f22-0f4e69d25391", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220951Z:0dbc369b-8f76-4320-8f22-0f4e69d25391", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 871FE865826B4CA083CA980B0F9CE70D Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:51Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-4dfeb5378b02c74294a44240c0c621e1-c50ef7b00a68b203-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:51 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "7449b845-971a-4da0-b013-85c6f9153525", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "7449b845-971a-4da0-b013-85c6f9153525", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220951Z:7449b845-971a-4da0-b013-85c6f9153525", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 37ACD1FFC2524EB4A7C4D677CCD0B423 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:51Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-18a48a669808beb60380abc634725981-c00dcb6c97e78fab-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:51 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "d0e9f79f-0708-439b-94e0-55af0afbc9c5", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "ba907817-2031-467d-94d5-7c13683842c3", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220952Z:d0e9f79f-0708-439b-94e0-55af0afbc9c5", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B72BBCD038CF4F4D8FE67EDA7A8FACCA Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:51Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-734420263ebf3f312d0b325bd4ed1dc3-7ae7c8177fc20f10-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:51 GMT", + "ETag": "\"91003808-0000-1100-0000-69ac9c710000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "a1f0daba-a053-4420-9283-fd0f3c38b892", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "b555fd24-1277-48ba-9bb3-841e8751f046", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220952Z:a1f0daba-a053-4420-9283-fd0f3c38b892", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 4F83C9658D4C4FA4A1FC2920FA3B1FD5 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:52Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T21:42:24.0316706Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T21:44:18.8797312Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_ASSET_NAME": "test-sa-dotnet01", + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1392533431", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/ListStorageAssetsByStorageContainer.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/ListStorageAssetsByStorageContainer.json new file mode 100644 index 000000000000..5c921476af62 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/ListStorageAssetsByStorageContainer.json @@ -0,0 +1,222 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ddacf8437f15fa9e99d3f47a75590532-1df7136bb59288d7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:33 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "3cabbd87-77ce-4f45-9a54-f36949a11b5d", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "3cabbd87-77ce-4f45-9a54-f36949a11b5d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220934Z:3cabbd87-77ce-4f45-9a54-f36949a11b5d", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DE4C4759FD0A4BBC82A52C19A61573FE Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:34Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ea18c659ce2b20dcaf581880e685ba59-e4ddb190566069a3-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "09f48cf6-7f38-474c-8c99-af62309bae1e", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "09f48cf6-7f38-474c-8c99-af62309bae1e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220934Z:09f48cf6-7f38-474c-8c99-af62309bae1e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 702BCEAE6A4D49B98D5B59D6DBE19513 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:34Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c340e6f66c4f7005b049c0182b6f0a50-b373b9b2eff0b38d-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:34 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "a4f5a72f-692c-4466-a7f2-7597b6634266", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "5c805381-f951-4f4d-a251-8108c4471033", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220935Z:a4f5a72f-692c-4466-a7f2-7597b6634266", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 7F08CD6B68E6438B94A289A1DE3FC20C Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:35Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-54cd9bec5fa5654b09b018a5a0e8242f-a25730441fae8f66-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "650", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:09:35 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b8af679d-186b-41fc-9207-bb0673d68479", + "x-ms-original-request-ids": [ + "988b1f0b-4aff-4c2d-94ad-ca65d5333c62", + "f4d7ffdd-6564-4f8b-89d1-77d6cd81f99a", + "796459d2-d566-4ee5-9413-1c4ef5a13545", + "765784f1-96bb-4fda-b3a4-8dcb46553800", + "4372af0c-16c4-4d7d-8d58-aa4796bf185f", + "933ec681-7184-4ba3-8f2d-4ccdd68b0388" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "b8af679d-186b-41fc-9207-bb0673d68479", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T220936Z:b8af679d-186b-41fc-9207-bb0673d68479", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 181EEFBB7D824F3C9BA489075E8BFCD3 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:09:35Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T21:42:24.0316706Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T21:44:18.8797312Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1103666436", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/ListStorageAssetsByStorageContainerAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/ListStorageAssetsByStorageContainerAsync.json new file mode 100644 index 000000000000..31d6b07d294f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/ListStorageAssetsByStorageContainerAsync.json @@ -0,0 +1,222 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-41793310e7350998cad1e416082efce0-d335b87d162c10b3-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "486c3991-ece6-4ffe-a68d-b77c5b61f24f", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "486c3991-ece6-4ffe-a68d-b77c5b61f24f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221010Z:486c3991-ece6-4ffe-a68d-b77c5b61f24f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0645F1BC8720482289CB884EF45AFDAA Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:10Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-78457c48ba421f1a884f08b71f9a5ab9-c22214bb4c25226d-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:09 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "e99bee6d-4867-468c-99ed-9ce7b338ed25", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "e99bee6d-4867-468c-99ed-9ce7b338ed25", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221010Z:e99bee6d-4867-468c-99ed-9ce7b338ed25", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: CEBA844A0792462CBCF7ED9B0F22B682 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:10Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-70140ebd94453ab0c02aed4f22627cb9-1ce9eca37de8df1a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:10 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "4b804681-3644-4e2b-8bbb-0f65fb7f89e4", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "d70371b7-26f3-489d-afaf-f1c464063bf6", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221010Z:4b804681-3644-4e2b-8bbb-0f65fb7f89e4", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0C82DED4437B4F048F25D8B40EFD6ACF Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:10Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f3761dadee6f661500d2de852eae14cf-da63e885c8458f78-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "650", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "574714f1-a67b-4bd2-9d8a-a5b536176b0b", + "x-ms-original-request-ids": [ + "d085c3ab-b1a6-40a4-882e-5616dcad9325", + "63c59505-1b08-4c65-9310-cd9883b8d4a5", + "3d09b40f-cef1-4024-be75-b778e3edda99", + "27d87f57-4dcc-4841-bb1e-e995421dde5a", + "b62e916d-dbae-4fd8-85ba-d522a107ecf3", + "ab27c695-3021-43a8-ae02-a5ede16f34f6" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1096", + "x-ms-request-id": "574714f1-a67b-4bd2-9d8a-a5b536176b0b", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221011Z:574714f1-a67b-4bd2-9d8a-a5b536176b0b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 8C6897F7B8D843D2BE130927006068C0 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:10Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T21:42:24.0316706Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T21:44:18.8797312Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "464372322", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/UpdateStorageAsset.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/UpdateStorageAsset.json new file mode 100644 index 000000000000..3b4bea2dcc1b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/UpdateStorageAsset.json @@ -0,0 +1,427 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-bd178464a940a69d0b24659e27635381-859589bc6427ec81-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:00:15 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "bb4f01ad-4acb-4f34-a0ee-678b1a58faf9", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "bb4f01ad-4acb-4f34-a0ee-678b1a58faf9", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010015Z:bb4f01ad-4acb-4f34-a0ee-678b1a58faf9", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 78999A1FE60D4CEAA65E707776CAA42B Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:00:15Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-4a4f906edb319b67da1d70ab2cfa08e7-e84aff7ef098eb57-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:00:15 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1a35022c-1d6f-48e9-96da-14c443c93da6", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1a35022c-1d6f-48e9-96da-14c443c93da6", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010015Z:1a35022c-1d6f-48e9-96da-14c443c93da6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 90F699483E694AB5AA3B02A18CB66BCE Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:00:15Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-94aa57f333f28870b0d98cb2cef47059-38b47adbd136d324-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:00:16 GMT", + "ETag": "\"0000569d-0000-1100-0000-69acc9500000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "767c006a-78c7-48cf-a359-4e7def63c787", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "5b564603-9dc4-4b79-a75b-09f8867fbbca", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010016Z:767c006a-78c7-48cf-a359-4e7def63c787", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 046BF5C8FB86455CAF8BFE248597D540 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:00:15Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T00:55:35.7977063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-01d9112a36a3670ac0fe4a6d6f7c2304-ac0ff48025c3fc46-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "636", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:00:16 GMT", + "ETag": "\"94007569-0000-1100-0000-69acc9ac0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "44f75dc4-e0a6-486a-81fe-95c415aca3b1", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "ad326969-5476-4b02-8d8c-0ef5f9d6bb61", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010016Z:44f75dc4-e0a6-486a-81fe-95c415aca3b1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6491D3D398E64BDDBBD2EE219FB70A21 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:00:16Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:57:18.163823Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T00:57:18.163823Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "Content-Length": "165", + "Content-Type": "application/json", + "traceparent": "00-3cc8596a2678b468bccc5d06e9b6742b-9546868d08a7c215-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "location": "uksouth", + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets" + } + }, + "StatusCode": 201, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085284209998487&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SdmxEkCYJBwNiT2hU5ql55XgThZbSJ19WdhXT25mfuIS7B_CuOdgIDVY0oRigYhzSZ6py8AH7TG-TFB4s8qhlv-K_YhOzmLJhTMm6FX4CfLPybrm-Qb29hk-SODHG9movTasDcthQmtrRc40xwJ1u7jQqvdhyd59ERx0t-Jo8d6f9TP0W8kkSwQNu8Xdi2TgiwLalcpEZWzHIFQxJZFADnbqv4b12vUA5hRFAoOnVqKbIjCtrf8u4GrtXNvBuCkqU2KJWG5H0kvW854_7X8D2sILTuv1-YWxWF-uMsuIsmLV8c0fYtqMCNLlh8lnXVWEWC2FEkPDNZhxOS8PTUbVtA&h=_L6hDgksp6Htv58FDOYQPkeizXaTLMfWG3wA2AVo7M4", + "Cache-Control": "no-cache", + "Content-Length": "668", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:00:20 GMT", + "ETag": "\"1f028164-0000-1000-0000-69acca230000\"", + "Expires": "-1", + "mise-correlation-id": "a89fbeed-d2fa-43ae-8b9a-669f18f719bb", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-async-operation-timeout": "P6D", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "08c4e43b-e8a3-4c82-bf5b-3bf8ce5aeff2", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/75460863-c894-4ba6-a4b5-7732b4eab8dd", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-writes": "799", + "x-ms-request-id": "521307db-9af8-4f20-ac62-f51f5310a7eb", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010020Z:08c4e43b-e8a3-4c82-bf5b-3bf8ce5aeff2", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 676A34323AD04B009ED2B86170DFA918 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:00:16Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:57:18.163823Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:00:17.812494Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Accepted" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085284209998487&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SdmxEkCYJBwNiT2hU5ql55XgThZbSJ19WdhXT25mfuIS7B_CuOdgIDVY0oRigYhzSZ6py8AH7TG-TFB4s8qhlv-K_YhOzmLJhTMm6FX4CfLPybrm-Qb29hk-SODHG9movTasDcthQmtrRc40xwJ1u7jQqvdhyd59ERx0t-Jo8d6f9TP0W8kkSwQNu8Xdi2TgiwLalcpEZWzHIFQxJZFADnbqv4b12vUA5hRFAoOnVqKbIjCtrf8u4GrtXNvBuCkqU2KJWG5H0kvW854_7X8D2sILTuv1-YWxWF-uMsuIsmLV8c0fYtqMCNLlh8lnXVWEWC2FEkPDNZhxOS8PTUbVtA&h=_L6hDgksp6Htv58FDOYQPkeizXaTLMfWG3wA2AVo7M4", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3cc8596a2678b468bccc5d06e9b6742b-7b56652ddcde6232-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:00:21 GMT", + "ETag": "\"230252f6-0000-1000-0000-69acca230000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "cbc97c5e-8f47-4d56-acef-3d8f16b7fe9a", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/f92e6673-b6f4-4eb0-b242-56677e385a1e", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "b05d7514-bc81-47d0-a423-055b19657f4e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010021Z:cbc97c5e-8f47-4d56-acef-3d8f16b7fe9a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 9C3665AD47944A8188B843EF99280FA4 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:00:21Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Accepted", + "startTime": "2026-03-08T01:00:18.9557372Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085284209998487&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=SdmxEkCYJBwNiT2hU5ql55XgThZbSJ19WdhXT25mfuIS7B_CuOdgIDVY0oRigYhzSZ6py8AH7TG-TFB4s8qhlv-K_YhOzmLJhTMm6FX4CfLPybrm-Qb29hk-SODHG9movTasDcthQmtrRc40xwJ1u7jQqvdhyd59ERx0t-Jo8d6f9TP0W8kkSwQNu8Xdi2TgiwLalcpEZWzHIFQxJZFADnbqv4b12vUA5hRFAoOnVqKbIjCtrf8u4GrtXNvBuCkqU2KJWG5H0kvW854_7X8D2sILTuv1-YWxWF-uMsuIsmLV8c0fYtqMCNLlh8lnXVWEWC2FEkPDNZhxOS8PTUbVtA&h=_L6hDgksp6Htv58FDOYQPkeizXaTLMfWG3wA2AVo7M4", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3cc8596a2678b468bccc5d06e9b6742b-9fc329bc9a838eda-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:28 GMT", + "ETag": "\"24024c03-0000-1000-0000-69acca600000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "a497e93b-44f3-48b3-8879-19ddc09ae2a1", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/86aea451-d419-43b4-ad7c-815f1436a570", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "7690a7e6-14e4-40f2-adbb-23e74ff7115d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010128Z:a497e93b-44f3-48b3-8879-19ddc09ae2a1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 7695613C68B5404699B3FE7C6C169DA3 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "e42f2d1d-b3d7-4a85-b509-16664ac413d7*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-08T01:00:18.9557372Z", + "endTime": "2026-03-08T01:01:19.5852946Z", + "percentComplete": 0.0, + "properties": null + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3cc8596a2678b468bccc5d06e9b6742b-d8f317787f52ee6b-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:28 GMT", + "ETag": "\"9400eb69-0000-1100-0000-69acca5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "bf8420d9-ba32-4759-b5b5-33c78b924dbc", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "eec644c6-1047-4d2c-b77d-da016b0a76f4", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010129Z:bf8420d9-ba32-4759-b5b5-33c78b924dbc", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 58CA156931BB4F57909E4175477528D3 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:57:18.163823Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:00:17.812494Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_ASSET_NAME": "test-sa-dotnet01", + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1318180704", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/UpdateStorageAssetAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/UpdateStorageAssetAsync.json new file mode 100644 index 000000000000..2eb8c8b43e02 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageAssetResourceTests/UpdateStorageAssetAsync.json @@ -0,0 +1,429 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-44fefa50affc1a37134bf1a08e21a352-eb8f600655d779c7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:43 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "6e64ab5b-f85d-4ff1-8e68-a2ff975525c0", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "6e64ab5b-f85d-4ff1-8e68-a2ff975525c0", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010143Z:6e64ab5b-f85d-4ff1-8e68-a2ff975525c0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 364D6A4B2D864031BF6CFACA8599B6AE Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:43Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-79e1bebf21c7c98900c638d75ebedfb4-f8cc1a0fa5012b44-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:43 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "18065d42-7907-4b67-bd82-b8dce8eb1639", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "18065d42-7907-4b67-bd82-b8dce8eb1639", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010144Z:18065d42-7907-4b67-bd82-b8dce8eb1639", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 93FE58C694F2462D85B749A871DDE167 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:43Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fb7f96e8dc555847537cf195ce13d10c-6e10a4d2cc632748-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:44 GMT", + "ETag": "\"0000569d-0000-1100-0000-69acc9500000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "1da333e9-62bc-40ab-b99a-e83181d23ee0", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1e19cd56-848d-4e40-9a16-29c7c1838355", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010144Z:1da333e9-62bc-40ab-b99a-e83181d23ee0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 2077D3DECA2C4E96A9D754844BA234FD Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:44Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T00:55:35.7977063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fa20f111d59026825918b2b6ac5af5f1-0bdacd0589641b23-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:44 GMT", + "ETag": "\"9400eb69-0000-1100-0000-69acca5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ce53a6ff-deb4-408c-8ebf-843f37ae016a", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "7891ead1-ecb6-4601-b1fa-bae19bb270bd", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010145Z:ce53a6ff-deb4-408c-8ebf-843f37ae016a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 1E202AA568A04875BCF9D5FC9461C227 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:44Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:57:18.163823Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:00:17.812494Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "Content-Length": "165", + "Content-Type": "application/json", + "traceparent": "00-5fa10ac721fd50a284b1495eadb8f801-2dca02a63a49cfc2-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "location": "uksouth", + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets" + } + }, + "StatusCode": 201, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085285085877021&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=lLer8Q3Ha9lJQGNXqcfShrVho9x39uX5OWmd-IqlbMhG2l_nfGXa7eAYa6DVnnf1iZvlgRbjZCiDgP8rKW9cdu7a6ldpCwpX-ZMm2t0V3gNJxv-hBtTTV0RRe6pUVp3aGKksf1exwAh3shzu1iR0giWCh1Dodzd08lXZ4-j0ZO8LwoVsdQnvu8OocpVhiodJkZhSAqSzsNbbkIkfL17Rqlf9Kf0wFumCdh7tGeWZws_i8iNlcJqC_MwE1szn5W7ccg-yJ6ZkxSSDMbEDe7-BUk5mv_uzvj3A4D82ekcXA9JYC4W5SESkyRFRmISo1SLa2mv7ZXcT97Y_4gPJLlCvAw&h=QEd4y7I_wUWILICp35JBTvE6_t_yOIq8_Ln3AGKDinA", + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:48 GMT", + "ETag": "\"1f021b82-0000-1000-0000-69acca7b0000\"", + "Expires": "-1", + "mise-correlation-id": "cacc128a-26b1-4499-bdd5-683bad6ec073", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-async-operation-timeout": "P6D", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "be19b62c-3881-4cb1-9d1d-77bb6a5980bf", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/4ddf9c19-9809-4f9e-9ec0-95a9718d65fd", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-writes": "799", + "x-ms-request-id": "67a3cc4e-1671-43b0-a85c-88aa1cf5f1f0", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010148Z:be19b62c-3881-4cb1-9d1d-77bb6a5980bf", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: BAC379CA5B794DF88915FF85F88316FB Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:57:18.163823Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:01:45.7594158Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Accepted" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085285085877021&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=lLer8Q3Ha9lJQGNXqcfShrVho9x39uX5OWmd-IqlbMhG2l_nfGXa7eAYa6DVnnf1iZvlgRbjZCiDgP8rKW9cdu7a6ldpCwpX-ZMm2t0V3gNJxv-hBtTTV0RRe6pUVp3aGKksf1exwAh3shzu1iR0giWCh1Dodzd08lXZ4-j0ZO8LwoVsdQnvu8OocpVhiodJkZhSAqSzsNbbkIkfL17Rqlf9Kf0wFumCdh7tGeWZws_i8iNlcJqC_MwE1szn5W7ccg-yJ6ZkxSSDMbEDe7-BUk5mv_uzvj3A4D82ekcXA9JYC4W5SESkyRFRmISo1SLa2mv7ZXcT97Y_4gPJLlCvAw&h=QEd4y7I_wUWILICp35JBTvE6_t_yOIq8_Ln3AGKDinA", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5fa10ac721fd50a284b1495eadb8f801-d09a31a597500b54-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "587", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:01:48 GMT", + "ETag": "\"2402ae07-0000-1000-0000-69acca7a0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "6abdf7e8-2fbe-436b-bb34-a1ab6f7f31e9", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/2f54b2a2-9a25-4904-b722-6d4122133131", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "f485bd20-918e-4240-82c6-0ac9f35c036f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010148Z:6abdf7e8-2fbe-436b-bb34-a1ab6f7f31e9", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D4C725BD53244731BD29570847539DD5 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:01:48Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Accepted", + "startTime": "2026-03-08T01:01:46.8318381Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB?api-version=2026-02-01-preview&t=639085285085877021&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=lLer8Q3Ha9lJQGNXqcfShrVho9x39uX5OWmd-IqlbMhG2l_nfGXa7eAYa6DVnnf1iZvlgRbjZCiDgP8rKW9cdu7a6ldpCwpX-ZMm2t0V3gNJxv-hBtTTV0RRe6pUVp3aGKksf1exwAh3shzu1iR0giWCh1Dodzd08lXZ4-j0ZO8LwoVsdQnvu8OocpVhiodJkZhSAqSzsNbbkIkfL17Rqlf9Kf0wFumCdh7tGeWZws_i8iNlcJqC_MwE1szn5W7ccg-yJ6ZkxSSDMbEDe7-BUk5mv_uzvj3A4D82ekcXA9JYC4W5SESkyRFRmISo1SLa2mv7ZXcT97Y_4gPJLlCvAw&h=QEd4y7I_wUWILICp35JBTvE6_t_yOIq8_Ln3AGKDinA", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5fa10ac721fd50a284b1495eadb8f801-6dd5d02817d1087e-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "669", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:28 GMT", + "ETag": "\"24023217-0000-1000-0000-69accacf0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ddfe1229-6d10-49f1-b0e9-96a0c7ad5c7e", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/e596139b-9a25-4643-9c0a-f2c79775c076", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "54176dac-f7ff-424b-b78d-ac435de6e0ac", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010329Z:ddfe1229-6d10-49f1-b0e9-96a0c7ad5c7e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 035FF322BE8548678D66DD6207FC7388 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "name": "6d71ecd6-6e62-43d2-a210-5efb07ec8054*0B5694BD0CC782D3F3715433BF2AAAAEEC8E34BB09F1D6F9D7AB46B6265C3CEB", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-08T01:01:46.8318381Z", + "endTime": "2026-03-08T01:03:11.2630391Z", + "percentComplete": 0.0, + "properties": null + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5fa10ac721fd50a284b1495eadb8f801-e668f1683dcbaaaa-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "670", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:29 GMT", + "ETag": "\"94000c6a-0000-1100-0000-69accacf0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "c8b9ef1a-19d9-45fa-8b5d-8a5ac580e89a", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ca38d7c2-a8d2-4db3-89f7-26b1f52a04f8", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010329Z:c8b9ef1a-19d9-45fa-8b5d-8a5ac580e89a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 25F6BB12D43E4A6F9D748EFD705D862B Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01/storageAssets/test-sa-dotnet01", + "name": "test-sa-dotnet01", + "type": "microsoft.discovery/storagecontainers/storageassets", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:57:18.163823Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:01:45.7594158Z" + }, + "properties": { + "description": "Test storage asset for .NET SDK validation", + "path": "data/test-assets", + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_ASSET_NAME": "test-sa-dotnet01", + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "243000199", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/CreateStorageContainer.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/CreateStorageContainer.json new file mode 100644 index 000000000000..8bb4003639d3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/CreateStorageContainer.json @@ -0,0 +1 @@ +{"Entries":[{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-33f4830ae94496306b1fc9daaabfb1ec-a9eef6ee7f855107-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"479","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:34:21 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"86efce29-9c1a-4d75-9f3d-dd96916aaea1","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"86efce29-9c1a-4d75-9f3d-dd96916aaea1","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203421Z:86efce29-9c1a-4d75-9f3d-dd96916aaea1","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 0B64193A3F5247A2B36EF967DED1B2E2 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:34:21Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec","authorizationSource":"RoleBased","managedByTenants":[],"tags":{"Az.Sec.AnonymousBlobEnforcement::OptIn":"all_regions"},"subscriptionId":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec","tenantId":"00000000-0000-0000-0000-000000000000","displayName":"Discovery-copilot-devslice1-uksouth","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Internal_2014-09-01","quotaId":"Internal_2014-09-01","spendingLimit":"Off"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-0e7d65e33d86a060332c0528198c665e-f42bfc492e64ee6e-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"314","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:34:22 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"580f8776-fa53-4757-a640-5303f2da1554","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"580f8776-fa53-4757-a640-5303f2da1554","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203422Z:580f8776-fa53-4757-a640-5303f2da1554","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 389A4710CEEB4582B037809517A7C807 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:34:21Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal","name":"olawal","type":"Microsoft.Resources/resourceGroups","location":"uksouth","tags":{"Created":"2026-03-02T15:59:02.3331112Z","RGOwner":"rajakuc","SkipAutoDeleteTill":"2026-12-31"},"properties":{"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview","RequestMethod":"PUT","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","Content-Length":"228","Content-Type":"application/json","traceparent":"00-4b24f9dc55eb3d06c1046cd272647b7d-db60dcf3f9187fae-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":{"location":"uksouth","properties":{"storageStore":{"kind":"AzureStorageBlob","storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr"}}},"StatusCode":201,"ResponseHeaders":{"Azure-AsyncNotification":"Enabled","Azure-AsyncOperation":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085124651714241&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=jC3djnP9VilO9Cc4ispdLsoDHz23Qnl2_Y9vlVrlrrGH9TKhXNcEjbPJSSf2K8cc7-0dxtQoKPykzAhxZ9G-X7rFNjXK8zL0EGGEJ0rsp9N_LBmhjYqxL4Jw8Y-jGywP9WXrT7kqGikgv9oxors-McWsFrXu1IDtLkvy5QgJzRLLJsvYuVJsBCIDRU1lr4M0m7Gtqybi3ycjKSdj1i0wz84g89DBU6gCg7LwB5WYk6SI0Uqf_k8V7eqQjLk54l5eh0qx3WXms6LRHjwyeWip7qFpGLVfy0zLa66nZjiZh5XRmt4uQTXPQo8P6K44tljz37K-2_s7P3ZwBXop5p_cOw&h=qeUtFdJZbQPEJHQHSAcsPV4B4jQy9jav2rEemWLvso0","Cache-Control":"no-cache","Content-Length":"698","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:34:25 GMT","ETag":"\"1200850d-0000-1000-0000-69ac8bd00000\"","Expires":"-1","mise-correlation-id":"8a60e4bb-0922-4c4f-9cfe-c2c64485ba34","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","x-azure-ref":"Sanitized","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-async-operation-timeout":"P6D","x-ms-build-version":"1","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"063fbb76-0ebc-4023-bc92-fd3cbf0cc961","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/198cc71c-1492-4d79-b2c1-6f0758b87133","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-writes":"799","x-ms-request-id":"778cf2de-62a5-4bf5-a05c-565c841201a9","x-ms-resource-provider-hint":"noPolling","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203425Z:063fbb76-0ebc-4023-bc92-fd3cbf0cc961","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: D0788407D8B34595BE2D755DA01E19EC Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:34:22Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","name":"test-sc-dotnet01","type":"microsoft.discovery/storagecontainers","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:22:46.3182573Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:34:23.2808087Z"},"properties":{"storageStore":{"storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr","kind":"AzureStorageBlob"},"provisioningState":"Accepted"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085124651714241&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=jC3djnP9VilO9Cc4ispdLsoDHz23Qnl2_Y9vlVrlrrGH9TKhXNcEjbPJSSf2K8cc7-0dxtQoKPykzAhxZ9G-X7rFNjXK8zL0EGGEJ0rsp9N_LBmhjYqxL4Jw8Y-jGywP9WXrT7kqGikgv9oxors-McWsFrXu1IDtLkvy5QgJzRLLJsvYuVJsBCIDRU1lr4M0m7Gtqybi3ycjKSdj1i0wz84g89DBU6gCg7LwB5WYk6SI0Uqf_k8V7eqQjLk54l5eh0qx3WXms6LRHjwyeWip7qFpGLVfy0zLa66nZjiZh5XRmt4uQTXPQo8P6K44tljz37K-2_s7P3ZwBXop5p_cOw&h=qeUtFdJZbQPEJHQHSAcsPV4B4jQy9jav2rEemWLvso0","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-4b24f9dc55eb3d06c1046cd272647b7d-f5af9811916660a3-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"556","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:34:25 GMT","ETag":"\"1902d544-0000-1000-0000-69ac8bd00000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"4f3eeb81-cac6-44e1-90c6-a9df93e92cba","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/e79e1e3b-b647-4ad2-bbc4-8f1f2ab497c1","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"26d282a6-2363-4586-b95c-0fd46b8a3f02","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203425Z:4f3eeb81-cac6-44e1-90c6-a9df93e92cba","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 57339CAF3E4C4FB68081E574E145C32B Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:34:25Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","name":"98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","status":"Accepted","startTime":"2026-03-07T20:34:24.1017118Z"}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085124651714241&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=jC3djnP9VilO9Cc4ispdLsoDHz23Qnl2_Y9vlVrlrrGH9TKhXNcEjbPJSSf2K8cc7-0dxtQoKPykzAhxZ9G-X7rFNjXK8zL0EGGEJ0rsp9N_LBmhjYqxL4Jw8Y-jGywP9WXrT7kqGikgv9oxors-McWsFrXu1IDtLkvy5QgJzRLLJsvYuVJsBCIDRU1lr4M0m7Gtqybi3ycjKSdj1i0wz84g89DBU6gCg7LwB5WYk6SI0Uqf_k8V7eqQjLk54l5eh0qx3WXms6LRHjwyeWip7qFpGLVfy0zLa66nZjiZh5XRmt4uQTXPQo8P6K44tljz37K-2_s7P3ZwBXop5p_cOw&h=qeUtFdJZbQPEJHQHSAcsPV4B4jQy9jav2rEemWLvso0","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-4b24f9dc55eb3d06c1046cd272647b7d-ef16556310b6f554-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"638","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:35:32 GMT","ETag":"\"1902a84e-0000-1000-0000-69ac8c0d0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"00ed7f3a-a968-4303-bca3-cb1012982b3e","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/e60af99d-43ee-4e1b-874b-f0205e579c7f","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"773b0f84-067c-4b86-afc3-658c1b8cdf57","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203533Z:00ed7f3a-a968-4303-bca3-cb1012982b3e","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: EB40140C4182445884A43B38CF3E5EF5 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:35:32Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","name":"98e89cdb-6c38-42a0-974c-384146e947b9*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","status":"Succeeded","startTime":"2026-03-07T20:34:24.1017118Z","endTime":"2026-03-07T20:35:24.9323927Z","percentComplete":0.0,"properties":null}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-4b24f9dc55eb3d06c1046cd272647b7d-c74641452efa0fbc-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"699","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:35:33 GMT","ETag":"\"00000b9d-0000-1100-0000-69ac8c0d0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"1dfcc184-18d2-4b21-ab64-c375798c9734","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"ed95c8c4-6c90-42bf-8b31-58dda5028410","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203533Z:1dfcc184-18d2-4b21-ab64-c375798c9734","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 05A582B7CB8A4A0AA3396CC8DA6B6F51 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:35:33Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","name":"test-sc-dotnet01","type":"microsoft.discovery/storagecontainers","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:22:46.3182573Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:34:23.2808087Z"},"properties":{"storageStore":{"storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr","kind":"AzureStorageBlob"},"provisioningState":"Succeeded"}}}],"Variables":{"AZURE_RESOURCE_GROUP_NAME":"olawal","RandomSeed":"314315430","RESOURCE_MANAGER_URL":null,"SUBSCRIPTION_ID":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec"}} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/CreateStorageContainerAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/CreateStorageContainerAsync.json new file mode 100644 index 000000000000..0d8d0194add9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/CreateStorageContainerAsync.json @@ -0,0 +1 @@ +{"Entries":[{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-a54822e58303db248b5f7d20521bccb5-9e3094020dbe76a8-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"479","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:35:45 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"80c43b1c-8d45-45ce-b21f-611f3310dbde","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"80c43b1c-8d45-45ce-b21f-611f3310dbde","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203545Z:80c43b1c-8d45-45ce-b21f-611f3310dbde","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: CCE99E11EE9740DC899CE671EE0287A6 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:35:45Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec","authorizationSource":"RoleBased","managedByTenants":[],"tags":{"Az.Sec.AnonymousBlobEnforcement::OptIn":"all_regions"},"subscriptionId":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec","tenantId":"00000000-0000-0000-0000-000000000000","displayName":"Discovery-copilot-devslice1-uksouth","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Internal_2014-09-01","quotaId":"Internal_2014-09-01","spendingLimit":"Off"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-d6f11302eec3a9ce0ed22629ec69986f-24b0e2d07ab08097-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"314","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:35:45 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"148b19f0-7cd5-4856-ad42-4e0ffaa4796b","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"148b19f0-7cd5-4856-ad42-4e0ffaa4796b","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203546Z:148b19f0-7cd5-4856-ad42-4e0ffaa4796b","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 931DD5A480EB4C1C894DBB4A94EAB1FF Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:35:45Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal","name":"olawal","type":"Microsoft.Resources/resourceGroups","location":"uksouth","tags":{"Created":"2026-03-02T15:59:02.3331112Z","RGOwner":"rajakuc","SkipAutoDeleteTill":"2026-12-31"},"properties":{"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview","RequestMethod":"PUT","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","Content-Length":"228","Content-Type":"application/json","traceparent":"00-db6d5ea2a0a3f38401d7fa5bfd6a9823-e54a6266d8766340-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":{"location":"uksouth","properties":{"storageStore":{"kind":"AzureStorageBlob","storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr"}}},"StatusCode":201,"ResponseHeaders":{"Azure-AsyncNotification":"Enabled","Azure-AsyncOperation":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085125477495310&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dBDvDCbMjne_ZxEFLLoFZfOB6mQ4bW5sepWXpjxhKP0XoXS5GIyuPlBkhhIk8aVW1zKq3dk-wM-NOqrIq4AWj0McROpZ2BarMVfQjFYL_sa0_hdB0qJt_f0lN6dAYe5_eTJo9uYEYx2LOfkATAxaUlCGZ471ZqRzkHcyirX68vo78d8MUxhxskmj0Kv6D0j_69BlW-IFg82-wHUoWLD3MQtBDRrkBgWna8OMpEDRxKAE_S8eBAn--xaEqxLmGqCIVT_4Tnikx8JOQfj_dnuRcNPujN11az3DoZDmTJ2xGhs18KWI8nUawn90pgKRnFY4k_q7U0e-Z3P_G0S2sjIz6A&h=xICeodDwk0wcs6MXB73Pwgi_VeeD2nY2uL0AZWfT9XA","Cache-Control":"no-cache","Content-Length":"698","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:35:47 GMT","ETag":"\"12001416-0000-1000-0000-69ac8c220000\"","Expires":"-1","mise-correlation-id":"6d9b61dc-ec51-4cf0-8efe-2c027d640016","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","x-azure-ref":"Sanitized","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-async-operation-timeout":"P6D","x-ms-build-version":"1","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"6929c06c-de30-437c-a7df-0f6fce4c4848","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/9d749563-9430-4db8-a47e-e5490b9cb51c","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-writes":"799","x-ms-request-id":"9fcdb601-6c6d-4b4c-8ac5-fdf71261423b","x-ms-resource-provider-hint":"noPolling","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203547Z:6929c06c-de30-437c-a7df-0f6fce4c4848","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: A92B8E56F36C410F81CEF5D63434E22C Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:35:46Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","name":"test-sc-dotnet01","type":"microsoft.discovery/storagecontainers","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:22:46.3182573Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:35:46.2964063Z"},"properties":{"storageStore":{"storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr","kind":"AzureStorageBlob"},"provisioningState":"Accepted"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085125477495310&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dBDvDCbMjne_ZxEFLLoFZfOB6mQ4bW5sepWXpjxhKP0XoXS5GIyuPlBkhhIk8aVW1zKq3dk-wM-NOqrIq4AWj0McROpZ2BarMVfQjFYL_sa0_hdB0qJt_f0lN6dAYe5_eTJo9uYEYx2LOfkATAxaUlCGZ471ZqRzkHcyirX68vo78d8MUxhxskmj0Kv6D0j_69BlW-IFg82-wHUoWLD3MQtBDRrkBgWna8OMpEDRxKAE_S8eBAn--xaEqxLmGqCIVT_4Tnikx8JOQfj_dnuRcNPujN11az3DoZDmTJ2xGhs18KWI8nUawn90pgKRnFY4k_q7U0e-Z3P_G0S2sjIz6A&h=xICeodDwk0wcs6MXB73Pwgi_VeeD2nY2uL0AZWfT9XA","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-db6d5ea2a0a3f38401d7fa5bfd6a9823-f3d6b09fad840ae8-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"556","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:35:47 GMT","ETag":"\"19025c50-0000-1000-0000-69ac8c220000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"d1346d1e-fe35-495f-bdbf-187b694e35b8","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/0a28123f-39c8-43fa-afeb-b698c942152a","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"30fa3a2f-d1c2-4b33-bfff-a2af7f894c98","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203547Z:d1346d1e-fe35-495f-bdbf-187b694e35b8","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 63C43507EA0B4BD7999123F3D7D472C6 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:35:47Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","name":"481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","status":"Accepted","startTime":"2026-03-07T20:35:46.8693909Z"}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085125477495310&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dBDvDCbMjne_ZxEFLLoFZfOB6mQ4bW5sepWXpjxhKP0XoXS5GIyuPlBkhhIk8aVW1zKq3dk-wM-NOqrIq4AWj0McROpZ2BarMVfQjFYL_sa0_hdB0qJt_f0lN6dAYe5_eTJo9uYEYx2LOfkATAxaUlCGZ471ZqRzkHcyirX68vo78d8MUxhxskmj0Kv6D0j_69BlW-IFg82-wHUoWLD3MQtBDRrkBgWna8OMpEDRxKAE_S8eBAn--xaEqxLmGqCIVT_4Tnikx8JOQfj_dnuRcNPujN11az3DoZDmTJ2xGhs18KWI8nUawn90pgKRnFY4k_q7U0e-Z3P_G0S2sjIz6A&h=xICeodDwk0wcs6MXB73Pwgi_VeeD2nY2uL0AZWfT9XA","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-db6d5ea2a0a3f38401d7fa5bfd6a9823-1a198eca950f2372-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"638","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:36:55 GMT","ETag":"\"1902d058-0000-1000-0000-69ac8c5f0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"46dc8905-3b9c-400b-97d1-d076f3752826","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/43682989-08e3-4403-b01a-197324ab6a05","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"dcae0b59-9ffc-44ea-8e9c-dae7fca7eadd","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203655Z:46dc8905-3b9c-400b-97d1-d076f3752826","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 86F25C200A8240C69DD6BCF0B9B3A77C Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:36:55Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","name":"481fa704-89d3-4641-958f-00015d94dff5*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","status":"Succeeded","startTime":"2026-03-07T20:35:46.8693909Z","endTime":"2026-03-07T20:36:47.8543518Z","percentComplete":0.0,"properties":null}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-db6d5ea2a0a3f38401d7fa5bfd6a9823-1b498d242cd121dc-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"699","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:36:55 GMT","ETag":"\"00000e9d-0000-1100-0000-69ac8c5f0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"48080618-6f15-4c09-94bb-e54689ea4f71","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"2639b60e-6ff4-401d-88b7-77f815ace5ad","x-ms-routing-request-id":"EASTUS2EUAP:20260307T203655Z:48080618-6f15-4c09-94bb-e54689ea4f71","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: C30A2994265349AE95BC30593E860C89 Ref B: SN4AA2022305031 Ref C: 2026-03-07T20:36:55Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01","name":"test-sc-dotnet01","type":"microsoft.discovery/storagecontainers","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:22:46.3182573Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:35:46.2964063Z"},"properties":{"storageStore":{"storageAccountId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr","kind":"AzureStorageBlob"},"provisioningState":"Succeeded"}}}],"Variables":{"AZURE_RESOURCE_GROUP_NAME":"olawal","RandomSeed":"1853404337","RESOURCE_MANAGER_URL":null,"SUBSCRIPTION_ID":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec"}} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/DeleteStorageContainer.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/DeleteStorageContainer.json new file mode 100644 index 000000000000..c53e7f903c0c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/DeleteStorageContainer.json @@ -0,0 +1,463 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f13c183511373eff69c5bc6c36c10c60-395fa1aaaa8d579f-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "c32126bb-4c81-4b82-bbf3-9ef325d0fffe", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "c32126bb-4c81-4b82-bbf3-9ef325d0fffe", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223021Z:c32126bb-4c81-4b82-bbf3-9ef325d0fffe", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6FB668ADEC9F40E69152FFAE531140CF Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:21Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fd2cfb3c901b9dff7ca81167f2ea042f-47c2f4d4b3e38a8a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "18f32bc2-8286-4c2f-ae23-e7d8653e180f", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "18f32bc2-8286-4c2f-ae23-e7d8653e180f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223022Z:18f32bc2-8286-4c2f-ae23-e7d8653e180f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6D9912AC80D8494FA957A20139934CA8 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ecd97c293314ac8a1bd4c99a741c9280-dd805c67f6914a66-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:22 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "23ec9d70-6ae6-4e45-8a85-b07d4a2d050b", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "f6f9015b-c392-4140-9dc7-ef080c48f614", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223023Z:23ec9d70-6ae6-4e45-8a85-b07d4a2d050b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 518C6FB0C20F4AEBB7F719C0E805F93C Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-fd78316003bf49f7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194267626015&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LBcZbmg-HZ1hDRz_AZ9MNufcHqmI3FWmT2wkFkjaFrQYCjvzgBss5kjDOWiP1rJrHn56qlE3BAtLdfv5PUHNnfQZrOewdmAzyfGN1dfzCUYCOuIYaNjCnij-XaoX5h2GPsstAcZLW3uJCsl37VWbBv59ZiA4OoogwjrWmt2fzUrxsJEGljXqzOxQjUAj584PvQBrsAo-TybFpGiJ66mWQAbbQ_UvgNmzhsh-Yamyzz8jzz6dCd6cmSywh0tg9YPR3SMRU7gUzICjTNMQsywEkIk_wYZvVvdRmutmYP-Hvz7-dxfopmPDexs_8qbsJ5I3RTfivDLtgdDmDymMiZ8O3A&h=s2a5wL9TnCQv3XSjZjm7ZwuPJTeNi0KviX3XudL78qs", + "Cache-Control": "no-cache", + "Content-Length": "4", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:25 GMT", + "ETag": "\"150091e1-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194267782289&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=BA13qKm5Sp2q7FpGjldElfghQVqABO86kMjIbvztdksFqZGqUG_PnCOy2fVJ4EmEBgT5QeDpu72KkKlRflJbCS-VYr0KsnR-CI5YYTh4avM0rQQQ9GHHN1JDsa9IQ1nxh9KhA70rCjFaL17dHOBKDy1i9dIAMehZ9kLRespOtd-YmkhKzA0bfytzvqmD24Lng3A-h7vhCstiWeSWVSQ15kM1QYny_p4pnRxAaaNUqyy5FMeMw0yBnX3fHm8G2FRJUmh5IF3j-IQ9b6rmx3wY5Bzk5d4IeWxS2_Tub8-uNSg4aw5eUtgcKtHnJvSo7O-PHcbwB4ltWl315zasvebJxw&h=65YVG1Dk9bFO_7zxbMXg34fX6q-nog9KV9N8XJpCMeI", + "mise-correlation-id": "19f866b3-e800-410c-8462-04efc5270fea", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "469f69bb-01b7-4972-a1e8-a56cbcf30176", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/36bb5945-7fe2-49fb-936b-00a543587cb6", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-deletes": "799", + "x-ms-request-id": "72470d7a-3d20-4a0d-97c0-467eb229724c", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223026Z:469f69bb-01b7-4972-a1e8-a56cbcf30176", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 4562F437902A4752B746736D0B7D0330 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:23Z" + }, + "ResponseBody": "null" + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194267626015&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LBcZbmg-HZ1hDRz_AZ9MNufcHqmI3FWmT2wkFkjaFrQYCjvzgBss5kjDOWiP1rJrHn56qlE3BAtLdfv5PUHNnfQZrOewdmAzyfGN1dfzCUYCOuIYaNjCnij-XaoX5h2GPsstAcZLW3uJCsl37VWbBv59ZiA4OoogwjrWmt2fzUrxsJEGljXqzOxQjUAj584PvQBrsAo-TybFpGiJ66mWQAbbQ_UvgNmzhsh-Yamyzz8jzz6dCd6cmSywh0tg9YPR3SMRU7gUzICjTNMQsywEkIk_wYZvVvdRmutmYP-Hvz7-dxfopmPDexs_8qbsJ5I3RTfivDLtgdDmDymMiZ8O3A&h=s2a5wL9TnCQv3XSjZjm7ZwuPJTeNi0KviX3XudL78qs", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-fcd5b951fb327511-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194275524367&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dB5SfbB6y0E8Pd5FhItTR6i8XIqZdM1dE8j37W1BLCuDypDd7ZzwYHiN3xHBfx_BhlG6Zy3E9o1Ti3DwNRvx7keKNnkxL9YBJ65VGiFTjPYH3bTPgECRggDJ0dk6FqDgHmclyTh1Mn65sZRBV9F5Zh1TtucTZ0PBPIWFY5PaSfgpgK0_LOTo3F5oxtfLZE0lObVVW1K9oDjTtWKn5IFYolVtmbtsyUHctEnOnuUSNM6ds4UvIzU5X_r3et8WvZ3Unkp7O_9Es13cNAhXiDDMe1URNAnr_AH6lKWiQXZw0Uv_PGyDfMyQ6FEkv52zJ_otrPxgF7Pn99jSLXzRRaS9YA&h=xQbf253GlaXIrhvCC1HKTiWPcf9358fnUFV-xZH0Ze8", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:26 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194275524367&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dB5SfbB6y0E8Pd5FhItTR6i8XIqZdM1dE8j37W1BLCuDypDd7ZzwYHiN3xHBfx_BhlG6Zy3E9o1Ti3DwNRvx7keKNnkxL9YBJ65VGiFTjPYH3bTPgECRggDJ0dk6FqDgHmclyTh1Mn65sZRBV9F5Zh1TtucTZ0PBPIWFY5PaSfgpgK0_LOTo3F5oxtfLZE0lObVVW1K9oDjTtWKn5IFYolVtmbtsyUHctEnOnuUSNM6ds4UvIzU5X_r3et8WvZ3Unkp7O_9Es13cNAhXiDDMe1URNAnr_AH6lKWiQXZw0Uv_PGyDfMyQ6FEkv52zJ_otrPxgF7Pn99jSLXzRRaS9YA&h=xQbf253GlaXIrhvCC1HKTiWPcf9358fnUFV-xZH0Ze8", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "b28ba15b-2ac7-4b6d-b84d-7fe006111cf5", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/e6d2d4c1-4847-4d37-9224-8ac3547f93c6", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "d134629d-6062-4cad-9615-817d6fd30a3d", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223027Z:b28ba15b-2ac7-4b6d-b84d-7fe006111cf5", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C52EBE5E84E04623B555DDEA6578723E Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:26Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194275524367&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dB5SfbB6y0E8Pd5FhItTR6i8XIqZdM1dE8j37W1BLCuDypDd7ZzwYHiN3xHBfx_BhlG6Zy3E9o1Ti3DwNRvx7keKNnkxL9YBJ65VGiFTjPYH3bTPgECRggDJ0dk6FqDgHmclyTh1Mn65sZRBV9F5Zh1TtucTZ0PBPIWFY5PaSfgpgK0_LOTo3F5oxtfLZE0lObVVW1K9oDjTtWKn5IFYolVtmbtsyUHctEnOnuUSNM6ds4UvIzU5X_r3et8WvZ3Unkp7O_9Es13cNAhXiDDMe1URNAnr_AH6lKWiQXZw0Uv_PGyDfMyQ6FEkv52zJ_otrPxgF7Pn99jSLXzRRaS9YA&h=xQbf253GlaXIrhvCC1HKTiWPcf9358fnUFV-xZH0Ze8", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-82bb7ba58438edad-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194290126147&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=CfRfHpUx0Sv6_zWRj2r_YUklpjofH2_R0SaK7-mL6XxmU2VJZZmnKCclmPvc9WYp7dyQexnZouSIR6O0YlYT4hHAOLKh_Hs69mpbJWx8iCH2Jsp7tW6QQhZ8CfNn-WDCZUefiDdBd3zGmDODSTr0vL-1UV-UKVEFjqTuPVrq436u9yBv-n2ofXS-Fy8Qn2Eh0JwjFloZZyq92JKowkO1JdACfL0qGDv0l3ReaGUaKWpzY_YIi8fuVdbFOq6R-4g1kCX8Lkiu7n-peICMGPSGT7q3XRuLEX6AoXVPFML5brbTL-ANsum5Xrn6NSjBKFwfwuXufE-Ntke0i_JIqF1b6g&h=3-lmBg3K3DIp3zbFkqznxFkSFyEkMYTS9OjM5MJtzkg", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:28 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194290281981&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Xe6Nivz0I6wrlGkb-_wsUFHqaGuDpt6_F3f0EraR9z1P83ctrqGIgyLxUGr9wVMEntWR9TCx8hBhElHsUJ3Ql2yNg1l_R6ozjD9VgUZeEVplCZN0z-9BQkxfr1cVg1w1hz5PO1Xj-BH3weN-fF7d0jftPN1Z5bRVBEsY7Z8nYAxa66fp9pl9eD0Q9pS9OL27_2SS20fUBF_wx5fc_O_9C4SZkO8Z6ugD90rrFt53zrVkO9BXuwL5xZJiexVzBTd2qzfz0tOFUiw-l2bDhieiPcJq8t9yR_c8TwhuoILcz1yx3BUTnjFUW-1GsJw-79YgNBBucvGCcqUGNPrYrx_1iQ&h=nrF3w7Je0f3gRzDrrn2QWyMob3KiuJqh7JvRnBfdcTE", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "6c0e23d6-23f3-4c19-8d9d-0f4ef23cf3b6", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/938b046c-c04e-425c-af52-b2239c0224ce", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "14af3048-4523-4c1f-b6be-5af4618a802a", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223029Z:6c0e23d6-23f3-4c19-8d9d-0f4ef23cf3b6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C3DFE6470EF34D40B94A9E1807410073 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194290126147&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=CfRfHpUx0Sv6_zWRj2r_YUklpjofH2_R0SaK7-mL6XxmU2VJZZmnKCclmPvc9WYp7dyQexnZouSIR6O0YlYT4hHAOLKh_Hs69mpbJWx8iCH2Jsp7tW6QQhZ8CfNn-WDCZUefiDdBd3zGmDODSTr0vL-1UV-UKVEFjqTuPVrq436u9yBv-n2ofXS-Fy8Qn2Eh0JwjFloZZyq92JKowkO1JdACfL0qGDv0l3ReaGUaKWpzY_YIi8fuVdbFOq6R-4g1kCX8Lkiu7n-peICMGPSGT7q3XRuLEX6AoXVPFML5brbTL-ANsum5Xrn6NSjBKFwfwuXufE-Ntke0i_JIqF1b6g&h=3-lmBg3K3DIp3zbFkqznxFkSFyEkMYTS9OjM5MJtzkg", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-fc59948d3a83e43a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194303799840&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=j_D2fXdksPnec_Y5uUB99LsOUZglRoLN-UMpqcURueAV2voA8Jbh2tLaf85rh5mj9Y7RAwkBmaD3BjdxbJo-Un1mCY6UXKpo-sI4Zlj7Rg9_hKj1RXYJj0c0ZRgd69rWAZoFxQR4ZcRzW-AZNP6aVHcjgNm1D9Pnnzo4c4enZxLPRAImByoqZzYYAfmqq34UOrj_Sk1hejKChbmBbRuaNK0UVfCmGVCKhrOPOysi-v-AtBtCjhMRwNfSe-dHsy2XfHAsbEwu5QZ1Do0LuNubXUp1aUm30ldmcmrY7ZOtNgbPt_XarpswCHqXEiS8k-m41W4aPUMkKkrw9dFB81HseA&h=8HuwrHBBtjXpF1W3gnZB6uxOqEgQ0Y2PZ_X-cDDqp2I", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:29 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194303955810&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=BovOsfQsYUwpiuI4cwjrTXLOHtZcjoAP4NFzRhLtAGUASnT27i5JCeR5VulHb67988Crr2bTNqLXuyioD6m6qX1pkXl9Qvsdybrv0GgrsS1hYm4jiXydvaNrVzGDLLoYVCe3rssrwdRFDljyQoJQmHjXlbMMHHdbBo_XbQcXT4tyWw52_wMGUEVFwIJvzSWifceIF_vn_fm_7tKuIPXgP9pMCeg5AuNo2-Zk2N84i_EjmwwOkO_luwBVeONcFrxzi_XKro6xcnPCHnD7uKKjrPoIJgtORlTQ4q0ulHtOWnFI5SLSyZSH6sZ6mrWXkDd9zFvqNpsj6z-sAP84q21gZg&h=BJ5sV0A9WtO9-72k83-S47JSsCEW_UGBfnEtd2rdNg4", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "a6d59e8a-7dff-47ea-afd3-001fc330ab4b", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/27c81dc1-8117-400c-bcf9-87f5bb850f9c", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "226c1e83-a877-4dcb-bc52-9a5059f9916a", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223030Z:a6d59e8a-7dff-47ea-afd3-001fc330ab4b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 2AC649E9406F491EADD6A747FE5B88B9 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:30Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194303799840&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=j_D2fXdksPnec_Y5uUB99LsOUZglRoLN-UMpqcURueAV2voA8Jbh2tLaf85rh5mj9Y7RAwkBmaD3BjdxbJo-Un1mCY6UXKpo-sI4Zlj7Rg9_hKj1RXYJj0c0ZRgd69rWAZoFxQR4ZcRzW-AZNP6aVHcjgNm1D9Pnnzo4c4enZxLPRAImByoqZzYYAfmqq34UOrj_Sk1hejKChbmBbRuaNK0UVfCmGVCKhrOPOysi-v-AtBtCjhMRwNfSe-dHsy2XfHAsbEwu5QZ1Do0LuNubXUp1aUm30ldmcmrY7ZOtNgbPt_XarpswCHqXEiS8k-m41W4aPUMkKkrw9dFB81HseA&h=8HuwrHBBtjXpF1W3gnZB6uxOqEgQ0Y2PZ_X-cDDqp2I", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-62a1ece3c29897d7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194318018786&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Eo7Il-7_wwPOe4KwoEhWvmhJDf5mVsVCJ8uDDVCPXuC1OvCPoM9O126K2zQR0JmxUZLtBLoJJ37BSM7rGFzxF6cCt58RyWifhxodfzcip-gyLdJis1kUG-XDTKxbw-ESS47qnH0C_SfIVAA4-sD5cQIb1VCYtFfPUwC7gcyILhhIpnK3lR1zQhxEC0F0eOoqz2l4DqEoZLMnTw_xhh_8_heWypsTkzdougLbx2o1PIW_xdcXpTaP6s9NWeDjTTb-mhElvFAH2I4xd-Z6YBX8h7pcNUDDM0EQS4bKm-bBbrvYLakr_iqTc2qgbmnqhyg9py62kQMWwTJDBQQ8_FOhyg&h=0aLCTl3dSqIqvKujQxABBcHuk47hH_NMXmKTq-CKHCQ", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:30 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194318174505&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=ExCx4mxuUT7WVzCLT76li_5auF0SioNGWdhFnLtVV2r454Y9Rppj5i52XwDmYk468oUi2tceiEsxeK5rcNsAtYNGCuxPdXX4Xd2lgQxktwIXgTWOb6gClYUtjlnbHwxOsKZGmelQcnxip8vyDOMdgGFy7Y3gzYccBpGt9BAxZcjilnDhMi4s9nLSGsFqqS0iu8HSgBXLrqksNkitDbeZfRaLmon8qJShtONPe6ocrpu7g7LA8trzqPAlM2OHDlaTL4D1KxjFkHipYzhLyt7IrmZ-cEOt95OTl8j7zCWBnMuySkwYXN8B8LTcqrgP30Ub9Xfb-Wj_PHW3ilMCt53gEg&h=IieRPGxmZrRqWMTJh9A2bHt3IClctkRHr3D_qzNAkcU", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "b1afcab5-d8fc-424b-8ee7-085e095171cb", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/7e9e76eb-20fb-40c5-8e3b-09012e2f4a3c", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "5130375a-0008-42d9-a27a-057c5ae68e66", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223031Z:b1afcab5-d8fc-424b-8ee7-085e095171cb", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5AF8F10B92D04315BEA61FA49DFEA470 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:31Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194318018786&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Eo7Il-7_wwPOe4KwoEhWvmhJDf5mVsVCJ8uDDVCPXuC1OvCPoM9O126K2zQR0JmxUZLtBLoJJ37BSM7rGFzxF6cCt58RyWifhxodfzcip-gyLdJis1kUG-XDTKxbw-ESS47qnH0C_SfIVAA4-sD5cQIb1VCYtFfPUwC7gcyILhhIpnK3lR1zQhxEC0F0eOoqz2l4DqEoZLMnTw_xhh_8_heWypsTkzdougLbx2o1PIW_xdcXpTaP6s9NWeDjTTb-mhElvFAH2I4xd-Z6YBX8h7pcNUDDM0EQS4bKm-bBbrvYLakr_iqTc2qgbmnqhyg9py62kQMWwTJDBQQ8_FOhyg&h=0aLCTl3dSqIqvKujQxABBcHuk47hH_NMXmKTq-CKHCQ", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-d38a045d2ccb636f-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194344112396&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=cr1TF7zewxeTDvhGw_E4vuYoPi8hIaBGKHizAYKdYEorf5ui-k7OGUPo36mysDSnnC9PWGpbSgNqLO1kYl4SDorGZUTS_1YrOBnfqDhy8vCZOtwnNEkJlTGHujGYQpa1JT388ZqGoEQTRdxyHVtePRLk--7Ekouamoqq5CtkQISY0Ov3bTcqnEyiSrUXWtuS8OtM4X0Q2YR5CZKvNiJmbssdJWLUpv4fARha-vD-PxOA6d6WrNY6bTtwh1K7g91hhD7NS9iOWxMJoJ5Wd259Tip2E_FT82Y4FZwld56bST7go5iqKtJ5Lpl_8bngT1HbZd7jLA62QhMvPXsCfInYXw&h=YGhfDuUrcWURXeQOW-9-V-EzAHoJMCYS-aJNvTrFSJM", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:33 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194344268294&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=G3_Umo6R7CoKPBOvykw0Amoa_HAdCGwoa75QO0fwLzJaArDAWUTVpqpj_2KdMgt_6ZAY2CduSYu9sHIdayc7nRnnjuZ6tGVo6lck-Pq51oERgCuMXGMLI98ZwxEwxilD0yVewbSfixWmdK9pOjnfYivq9pxhFRrtvUpZtPipjfgSS3a7Jifiawy6rksZOQpxscGIVSp7ePZj3GWQY2ICDmUw05euAYdciFRENHumwTOe00_3l7-e7mpARJgY8bWjfV_0aIRvEwcwFmtgtwrC6Rb6NbvS4TpnNaH3QYb3HRhCmZWuhzMQ4hSkFiCpuTkM4V2b9aqDaHbOttvmpsMXsg&h=DBVUeSebSwiOMwVdyJL3rayb6wjAnHy8acZ5SHmxCL8", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "9bec28cc-7762-488c-9e4e-75f641c93ad7", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/724cf547-1909-447d-b0b5-351ae48a865a", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "3c40fc40-aa20-4c62-b7d2-0d23e8d93be8", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223034Z:9bec28cc-7762-488c-9e4e-75f641c93ad7", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: FB5A816984F04C78AC3592DA421F26D1 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:33Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194344112396&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=cr1TF7zewxeTDvhGw_E4vuYoPi8hIaBGKHizAYKdYEorf5ui-k7OGUPo36mysDSnnC9PWGpbSgNqLO1kYl4SDorGZUTS_1YrOBnfqDhy8vCZOtwnNEkJlTGHujGYQpa1JT388ZqGoEQTRdxyHVtePRLk--7Ekouamoqq5CtkQISY0Ov3bTcqnEyiSrUXWtuS8OtM4X0Q2YR5CZKvNiJmbssdJWLUpv4fARha-vD-PxOA6d6WrNY6bTtwh1K7g91hhD7NS9iOWxMJoJ5Wd259Tip2E_FT82Y4FZwld56bST7go5iqKtJ5Lpl_8bngT1HbZd7jLA62QhMvPXsCfInYXw&h=YGhfDuUrcWURXeQOW-9-V-EzAHoJMCYS-aJNvTrFSJM", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-85956461fe2a3c04-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:37 GMT", + "ETag": "\"1d02a081-0000-1000-0000-69aca70e0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "3fcc53bc-dacf-4a32-984f-2baeeab32bef", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/c2b6fcc2-98a8-4dfb-9c8b-72021f7a5dd2", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "007971e1-3eaa-4e02-9175-e637d42d7f76", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223038Z:3fcc53bc-dacf-4a32-984f-2baeeab32bef", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F7CD4A3C9BA54462B2903165FC6400BD Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-07T22:30:26.0948542Z", + "endTime": "2026-03-07T22:30:38.1624861Z", + "percentComplete": 0.0, + "properties": null + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "477361446", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/DeleteStorageContainerAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/DeleteStorageContainerAsync.json new file mode 100644 index 000000000000..c53e7f903c0c --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/DeleteStorageContainerAsync.json @@ -0,0 +1,463 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f13c183511373eff69c5bc6c36c10c60-395fa1aaaa8d579f-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "c32126bb-4c81-4b82-bbf3-9ef325d0fffe", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "c32126bb-4c81-4b82-bbf3-9ef325d0fffe", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223021Z:c32126bb-4c81-4b82-bbf3-9ef325d0fffe", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6FB668ADEC9F40E69152FFAE531140CF Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:21Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fd2cfb3c901b9dff7ca81167f2ea042f-47c2f4d4b3e38a8a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "18f32bc2-8286-4c2f-ae23-e7d8653e180f", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "18f32bc2-8286-4c2f-ae23-e7d8653e180f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223022Z:18f32bc2-8286-4c2f-ae23-e7d8653e180f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6D9912AC80D8494FA957A20139934CA8 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ecd97c293314ac8a1bd4c99a741c9280-dd805c67f6914a66-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:22 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "23ec9d70-6ae6-4e45-8a85-b07d4a2d050b", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "f6f9015b-c392-4140-9dc7-ef080c48f614", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223023Z:23ec9d70-6ae6-4e45-8a85-b07d4a2d050b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 518C6FB0C20F4AEBB7F719C0E805F93C Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-fd78316003bf49f7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194267626015&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LBcZbmg-HZ1hDRz_AZ9MNufcHqmI3FWmT2wkFkjaFrQYCjvzgBss5kjDOWiP1rJrHn56qlE3BAtLdfv5PUHNnfQZrOewdmAzyfGN1dfzCUYCOuIYaNjCnij-XaoX5h2GPsstAcZLW3uJCsl37VWbBv59ZiA4OoogwjrWmt2fzUrxsJEGljXqzOxQjUAj584PvQBrsAo-TybFpGiJ66mWQAbbQ_UvgNmzhsh-Yamyzz8jzz6dCd6cmSywh0tg9YPR3SMRU7gUzICjTNMQsywEkIk_wYZvVvdRmutmYP-Hvz7-dxfopmPDexs_8qbsJ5I3RTfivDLtgdDmDymMiZ8O3A&h=s2a5wL9TnCQv3XSjZjm7ZwuPJTeNi0KviX3XudL78qs", + "Cache-Control": "no-cache", + "Content-Length": "4", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:25 GMT", + "ETag": "\"150091e1-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194267782289&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=BA13qKm5Sp2q7FpGjldElfghQVqABO86kMjIbvztdksFqZGqUG_PnCOy2fVJ4EmEBgT5QeDpu72KkKlRflJbCS-VYr0KsnR-CI5YYTh4avM0rQQQ9GHHN1JDsa9IQ1nxh9KhA70rCjFaL17dHOBKDy1i9dIAMehZ9kLRespOtd-YmkhKzA0bfytzvqmD24Lng3A-h7vhCstiWeSWVSQ15kM1QYny_p4pnRxAaaNUqyy5FMeMw0yBnX3fHm8G2FRJUmh5IF3j-IQ9b6rmx3wY5Bzk5d4IeWxS2_Tub8-uNSg4aw5eUtgcKtHnJvSo7O-PHcbwB4ltWl315zasvebJxw&h=65YVG1Dk9bFO_7zxbMXg34fX6q-nog9KV9N8XJpCMeI", + "mise-correlation-id": "19f866b3-e800-410c-8462-04efc5270fea", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "469f69bb-01b7-4972-a1e8-a56cbcf30176", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/36bb5945-7fe2-49fb-936b-00a543587cb6", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-deletes": "799", + "x-ms-request-id": "72470d7a-3d20-4a0d-97c0-467eb229724c", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223026Z:469f69bb-01b7-4972-a1e8-a56cbcf30176", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 4562F437902A4752B746736D0B7D0330 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:23Z" + }, + "ResponseBody": "null" + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194267626015&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LBcZbmg-HZ1hDRz_AZ9MNufcHqmI3FWmT2wkFkjaFrQYCjvzgBss5kjDOWiP1rJrHn56qlE3BAtLdfv5PUHNnfQZrOewdmAzyfGN1dfzCUYCOuIYaNjCnij-XaoX5h2GPsstAcZLW3uJCsl37VWbBv59ZiA4OoogwjrWmt2fzUrxsJEGljXqzOxQjUAj584PvQBrsAo-TybFpGiJ66mWQAbbQ_UvgNmzhsh-Yamyzz8jzz6dCd6cmSywh0tg9YPR3SMRU7gUzICjTNMQsywEkIk_wYZvVvdRmutmYP-Hvz7-dxfopmPDexs_8qbsJ5I3RTfivDLtgdDmDymMiZ8O3A&h=s2a5wL9TnCQv3XSjZjm7ZwuPJTeNi0KviX3XudL78qs", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-fcd5b951fb327511-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194275524367&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dB5SfbB6y0E8Pd5FhItTR6i8XIqZdM1dE8j37W1BLCuDypDd7ZzwYHiN3xHBfx_BhlG6Zy3E9o1Ti3DwNRvx7keKNnkxL9YBJ65VGiFTjPYH3bTPgECRggDJ0dk6FqDgHmclyTh1Mn65sZRBV9F5Zh1TtucTZ0PBPIWFY5PaSfgpgK0_LOTo3F5oxtfLZE0lObVVW1K9oDjTtWKn5IFYolVtmbtsyUHctEnOnuUSNM6ds4UvIzU5X_r3et8WvZ3Unkp7O_9Es13cNAhXiDDMe1URNAnr_AH6lKWiQXZw0Uv_PGyDfMyQ6FEkv52zJ_otrPxgF7Pn99jSLXzRRaS9YA&h=xQbf253GlaXIrhvCC1HKTiWPcf9358fnUFV-xZH0Ze8", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:26 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194275524367&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dB5SfbB6y0E8Pd5FhItTR6i8XIqZdM1dE8j37W1BLCuDypDd7ZzwYHiN3xHBfx_BhlG6Zy3E9o1Ti3DwNRvx7keKNnkxL9YBJ65VGiFTjPYH3bTPgECRggDJ0dk6FqDgHmclyTh1Mn65sZRBV9F5Zh1TtucTZ0PBPIWFY5PaSfgpgK0_LOTo3F5oxtfLZE0lObVVW1K9oDjTtWKn5IFYolVtmbtsyUHctEnOnuUSNM6ds4UvIzU5X_r3et8WvZ3Unkp7O_9Es13cNAhXiDDMe1URNAnr_AH6lKWiQXZw0Uv_PGyDfMyQ6FEkv52zJ_otrPxgF7Pn99jSLXzRRaS9YA&h=xQbf253GlaXIrhvCC1HKTiWPcf9358fnUFV-xZH0Ze8", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "b28ba15b-2ac7-4b6d-b84d-7fe006111cf5", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/e6d2d4c1-4847-4d37-9224-8ac3547f93c6", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "d134629d-6062-4cad-9615-817d6fd30a3d", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223027Z:b28ba15b-2ac7-4b6d-b84d-7fe006111cf5", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C52EBE5E84E04623B555DDEA6578723E Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:26Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194275524367&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=dB5SfbB6y0E8Pd5FhItTR6i8XIqZdM1dE8j37W1BLCuDypDd7ZzwYHiN3xHBfx_BhlG6Zy3E9o1Ti3DwNRvx7keKNnkxL9YBJ65VGiFTjPYH3bTPgECRggDJ0dk6FqDgHmclyTh1Mn65sZRBV9F5Zh1TtucTZ0PBPIWFY5PaSfgpgK0_LOTo3F5oxtfLZE0lObVVW1K9oDjTtWKn5IFYolVtmbtsyUHctEnOnuUSNM6ds4UvIzU5X_r3et8WvZ3Unkp7O_9Es13cNAhXiDDMe1URNAnr_AH6lKWiQXZw0Uv_PGyDfMyQ6FEkv52zJ_otrPxgF7Pn99jSLXzRRaS9YA&h=xQbf253GlaXIrhvCC1HKTiWPcf9358fnUFV-xZH0Ze8", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-82bb7ba58438edad-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194290126147&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=CfRfHpUx0Sv6_zWRj2r_YUklpjofH2_R0SaK7-mL6XxmU2VJZZmnKCclmPvc9WYp7dyQexnZouSIR6O0YlYT4hHAOLKh_Hs69mpbJWx8iCH2Jsp7tW6QQhZ8CfNn-WDCZUefiDdBd3zGmDODSTr0vL-1UV-UKVEFjqTuPVrq436u9yBv-n2ofXS-Fy8Qn2Eh0JwjFloZZyq92JKowkO1JdACfL0qGDv0l3ReaGUaKWpzY_YIi8fuVdbFOq6R-4g1kCX8Lkiu7n-peICMGPSGT7q3XRuLEX6AoXVPFML5brbTL-ANsum5Xrn6NSjBKFwfwuXufE-Ntke0i_JIqF1b6g&h=3-lmBg3K3DIp3zbFkqznxFkSFyEkMYTS9OjM5MJtzkg", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:28 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194290281981&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Xe6Nivz0I6wrlGkb-_wsUFHqaGuDpt6_F3f0EraR9z1P83ctrqGIgyLxUGr9wVMEntWR9TCx8hBhElHsUJ3Ql2yNg1l_R6ozjD9VgUZeEVplCZN0z-9BQkxfr1cVg1w1hz5PO1Xj-BH3weN-fF7d0jftPN1Z5bRVBEsY7Z8nYAxa66fp9pl9eD0Q9pS9OL27_2SS20fUBF_wx5fc_O_9C4SZkO8Z6ugD90rrFt53zrVkO9BXuwL5xZJiexVzBTd2qzfz0tOFUiw-l2bDhieiPcJq8t9yR_c8TwhuoILcz1yx3BUTnjFUW-1GsJw-79YgNBBucvGCcqUGNPrYrx_1iQ&h=nrF3w7Je0f3gRzDrrn2QWyMob3KiuJqh7JvRnBfdcTE", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "6c0e23d6-23f3-4c19-8d9d-0f4ef23cf3b6", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/938b046c-c04e-425c-af52-b2239c0224ce", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "14af3048-4523-4c1f-b6be-5af4618a802a", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223029Z:6c0e23d6-23f3-4c19-8d9d-0f4ef23cf3b6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C3DFE6470EF34D40B94A9E1807410073 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194290126147&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=CfRfHpUx0Sv6_zWRj2r_YUklpjofH2_R0SaK7-mL6XxmU2VJZZmnKCclmPvc9WYp7dyQexnZouSIR6O0YlYT4hHAOLKh_Hs69mpbJWx8iCH2Jsp7tW6QQhZ8CfNn-WDCZUefiDdBd3zGmDODSTr0vL-1UV-UKVEFjqTuPVrq436u9yBv-n2ofXS-Fy8Qn2Eh0JwjFloZZyq92JKowkO1JdACfL0qGDv0l3ReaGUaKWpzY_YIi8fuVdbFOq6R-4g1kCX8Lkiu7n-peICMGPSGT7q3XRuLEX6AoXVPFML5brbTL-ANsum5Xrn6NSjBKFwfwuXufE-Ntke0i_JIqF1b6g&h=3-lmBg3K3DIp3zbFkqznxFkSFyEkMYTS9OjM5MJtzkg", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-fc59948d3a83e43a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194303799840&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=j_D2fXdksPnec_Y5uUB99LsOUZglRoLN-UMpqcURueAV2voA8Jbh2tLaf85rh5mj9Y7RAwkBmaD3BjdxbJo-Un1mCY6UXKpo-sI4Zlj7Rg9_hKj1RXYJj0c0ZRgd69rWAZoFxQR4ZcRzW-AZNP6aVHcjgNm1D9Pnnzo4c4enZxLPRAImByoqZzYYAfmqq34UOrj_Sk1hejKChbmBbRuaNK0UVfCmGVCKhrOPOysi-v-AtBtCjhMRwNfSe-dHsy2XfHAsbEwu5QZ1Do0LuNubXUp1aUm30ldmcmrY7ZOtNgbPt_XarpswCHqXEiS8k-m41W4aPUMkKkrw9dFB81HseA&h=8HuwrHBBtjXpF1W3gnZB6uxOqEgQ0Y2PZ_X-cDDqp2I", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:29 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194303955810&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=BovOsfQsYUwpiuI4cwjrTXLOHtZcjoAP4NFzRhLtAGUASnT27i5JCeR5VulHb67988Crr2bTNqLXuyioD6m6qX1pkXl9Qvsdybrv0GgrsS1hYm4jiXydvaNrVzGDLLoYVCe3rssrwdRFDljyQoJQmHjXlbMMHHdbBo_XbQcXT4tyWw52_wMGUEVFwIJvzSWifceIF_vn_fm_7tKuIPXgP9pMCeg5AuNo2-Zk2N84i_EjmwwOkO_luwBVeONcFrxzi_XKro6xcnPCHnD7uKKjrPoIJgtORlTQ4q0ulHtOWnFI5SLSyZSH6sZ6mrWXkDd9zFvqNpsj6z-sAP84q21gZg&h=BJ5sV0A9WtO9-72k83-S47JSsCEW_UGBfnEtd2rdNg4", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "a6d59e8a-7dff-47ea-afd3-001fc330ab4b", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/27c81dc1-8117-400c-bcf9-87f5bb850f9c", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "226c1e83-a877-4dcb-bc52-9a5059f9916a", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223030Z:a6d59e8a-7dff-47ea-afd3-001fc330ab4b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 2AC649E9406F491EADD6A747FE5B88B9 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:30Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194303799840&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=j_D2fXdksPnec_Y5uUB99LsOUZglRoLN-UMpqcURueAV2voA8Jbh2tLaf85rh5mj9Y7RAwkBmaD3BjdxbJo-Un1mCY6UXKpo-sI4Zlj7Rg9_hKj1RXYJj0c0ZRgd69rWAZoFxQR4ZcRzW-AZNP6aVHcjgNm1D9Pnnzo4c4enZxLPRAImByoqZzYYAfmqq34UOrj_Sk1hejKChbmBbRuaNK0UVfCmGVCKhrOPOysi-v-AtBtCjhMRwNfSe-dHsy2XfHAsbEwu5QZ1Do0LuNubXUp1aUm30ldmcmrY7ZOtNgbPt_XarpswCHqXEiS8k-m41W4aPUMkKkrw9dFB81HseA&h=8HuwrHBBtjXpF1W3gnZB6uxOqEgQ0Y2PZ_X-cDDqp2I", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-62a1ece3c29897d7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194318018786&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Eo7Il-7_wwPOe4KwoEhWvmhJDf5mVsVCJ8uDDVCPXuC1OvCPoM9O126K2zQR0JmxUZLtBLoJJ37BSM7rGFzxF6cCt58RyWifhxodfzcip-gyLdJis1kUG-XDTKxbw-ESS47qnH0C_SfIVAA4-sD5cQIb1VCYtFfPUwC7gcyILhhIpnK3lR1zQhxEC0F0eOoqz2l4DqEoZLMnTw_xhh_8_heWypsTkzdougLbx2o1PIW_xdcXpTaP6s9NWeDjTTb-mhElvFAH2I4xd-Z6YBX8h7pcNUDDM0EQS4bKm-bBbrvYLakr_iqTc2qgbmnqhyg9py62kQMWwTJDBQQ8_FOhyg&h=0aLCTl3dSqIqvKujQxABBcHuk47hH_NMXmKTq-CKHCQ", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:30 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194318174505&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=ExCx4mxuUT7WVzCLT76li_5auF0SioNGWdhFnLtVV2r454Y9Rppj5i52XwDmYk468oUi2tceiEsxeK5rcNsAtYNGCuxPdXX4Xd2lgQxktwIXgTWOb6gClYUtjlnbHwxOsKZGmelQcnxip8vyDOMdgGFy7Y3gzYccBpGt9BAxZcjilnDhMi4s9nLSGsFqqS0iu8HSgBXLrqksNkitDbeZfRaLmon8qJShtONPe6ocrpu7g7LA8trzqPAlM2OHDlaTL4D1KxjFkHipYzhLyt7IrmZ-cEOt95OTl8j7zCWBnMuySkwYXN8B8LTcqrgP30Ub9Xfb-Wj_PHW3ilMCt53gEg&h=IieRPGxmZrRqWMTJh9A2bHt3IClctkRHr3D_qzNAkcU", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "b1afcab5-d8fc-424b-8ee7-085e095171cb", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/7e9e76eb-20fb-40c5-8e3b-09012e2f4a3c", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "5130375a-0008-42d9-a27a-057c5ae68e66", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223031Z:b1afcab5-d8fc-424b-8ee7-085e095171cb", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5AF8F10B92D04315BEA61FA49DFEA470 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:31Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194318018786&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Eo7Il-7_wwPOe4KwoEhWvmhJDf5mVsVCJ8uDDVCPXuC1OvCPoM9O126K2zQR0JmxUZLtBLoJJ37BSM7rGFzxF6cCt58RyWifhxodfzcip-gyLdJis1kUG-XDTKxbw-ESS47qnH0C_SfIVAA4-sD5cQIb1VCYtFfPUwC7gcyILhhIpnK3lR1zQhxEC0F0eOoqz2l4DqEoZLMnTw_xhh_8_heWypsTkzdougLbx2o1PIW_xdcXpTaP6s9NWeDjTTb-mhElvFAH2I4xd-Z6YBX8h7pcNUDDM0EQS4bKm-bBbrvYLakr_iqTc2qgbmnqhyg9py62kQMWwTJDBQQ8_FOhyg&h=0aLCTl3dSqIqvKujQxABBcHuk47hH_NMXmKTq-CKHCQ", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-d38a045d2ccb636f-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194344112396&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=cr1TF7zewxeTDvhGw_E4vuYoPi8hIaBGKHizAYKdYEorf5ui-k7OGUPo36mysDSnnC9PWGpbSgNqLO1kYl4SDorGZUTS_1YrOBnfqDhy8vCZOtwnNEkJlTGHujGYQpa1JT388ZqGoEQTRdxyHVtePRLk--7Ekouamoqq5CtkQISY0Ov3bTcqnEyiSrUXWtuS8OtM4X0Q2YR5CZKvNiJmbssdJWLUpv4fARha-vD-PxOA6d6WrNY6bTtwh1K7g91hhD7NS9iOWxMJoJ5Wd259Tip2E_FT82Y4FZwld56bST7go5iqKtJ5Lpl_8bngT1HbZd7jLA62QhMvPXsCfInYXw&h=YGhfDuUrcWURXeQOW-9-V-EzAHoJMCYS-aJNvTrFSJM", + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:33 GMT", + "ETag": "\"1d02077f-0000-1000-0000-69aca7020000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194344268294&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=G3_Umo6R7CoKPBOvykw0Amoa_HAdCGwoa75QO0fwLzJaArDAWUTVpqpj_2KdMgt_6ZAY2CduSYu9sHIdayc7nRnnjuZ6tGVo6lck-Pq51oERgCuMXGMLI98ZwxEwxilD0yVewbSfixWmdK9pOjnfYivq9pxhFRrtvUpZtPipjfgSS3a7Jifiawy6rksZOQpxscGIVSp7ePZj3GWQY2ICDmUw05euAYdciFRENHumwTOe00_3l7-e7mpARJgY8bWjfV_0aIRvEwcwFmtgtwrC6Rb6NbvS4TpnNaH3QYb3HRhCmZWuhzMQ4hSkFiCpuTkM4V2b9aqDaHbOttvmpsMXsg&h=DBVUeSebSwiOMwVdyJL3rayb6wjAnHy8acZ5SHmxCL8", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "9bec28cc-7762-488c-9e4e-75f641c93ad7", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/724cf547-1909-447d-b0b5-351ae48a865a", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "3c40fc40-aa20-4c62-b7d2-0d23e8d93be8", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223034Z:9bec28cc-7762-488c-9e4e-75f641c93ad7", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: FB5A816984F04C78AC3592DA421F26D1 Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:33Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:30:26.0948542Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085194344112396&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=cr1TF7zewxeTDvhGw_E4vuYoPi8hIaBGKHizAYKdYEorf5ui-k7OGUPo36mysDSnnC9PWGpbSgNqLO1kYl4SDorGZUTS_1YrOBnfqDhy8vCZOtwnNEkJlTGHujGYQpa1JT388ZqGoEQTRdxyHVtePRLk--7Ekouamoqq5CtkQISY0Ov3bTcqnEyiSrUXWtuS8OtM4X0Q2YR5CZKvNiJmbssdJWLUpv4fARha-vD-PxOA6d6WrNY6bTtwh1K7g91hhD7NS9iOWxMJoJ5Wd259Tip2E_FT82Y4FZwld56bST7go5iqKtJ5Lpl_8bngT1HbZd7jLA62QhMvPXsCfInYXw&h=YGhfDuUrcWURXeQOW-9-V-EzAHoJMCYS-aJNvTrFSJM", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8751d4ea40caef906a2e5ddca690f976-85956461fe2a3c04-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:30:37 GMT", + "ETag": "\"1d02a081-0000-1000-0000-69aca70e0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "3fcc53bc-dacf-4a32-984f-2baeeab32bef", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/c2b6fcc2-98a8-4dfb-9c8b-72021f7a5dd2", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "007971e1-3eaa-4e02-9175-e637d42d7f76", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T223038Z:3fcc53bc-dacf-4a32-984f-2baeeab32bef", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F7CD4A3C9BA54462B2903165FC6400BD Ref B: SN4AA2022305039 Ref C: 2026-03-07T22:30:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "416f3052-3c51-4964-a2d4-0a893ca5ea68*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-07T22:30:26.0948542Z", + "endTime": "2026-03-07T22:30:38.1624861Z", + "percentComplete": 0.0, + "properties": null + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "477361446", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/GetStorageContainer.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/GetStorageContainer.json new file mode 100644 index 000000000000..809588f60b85 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/GetStorageContainer.json @@ -0,0 +1,159 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-8e9192297f7d9f13e752159770d70e75-7dee62e566b09589-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:38 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "5e38015b-5e84-4001-be49-ca79ce75458a", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "5e38015b-5e84-4001-be49-ca79ce75458a", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221039Z:5e38015b-5e84-4001-be49-ca79ce75458a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 35509FF2594243379C17DF724D6A219C Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:39Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c79514f232ee064f0b8666592776b387-92837445fad1233f-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:38 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "cbbfc084-fbcf-4fdd-82d6-c2dfe5351a5b", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "cbbfc084-fbcf-4fdd-82d6-c2dfe5351a5b", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221039Z:cbbfc084-fbcf-4fdd-82d6-c2dfe5351a5b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 1F0A0ADFCEE041A5823262FC0ADD1C94 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:39Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-50dde15142c2e13395abbcc76f37f943-42f3c876fd72dfdb-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:10:39 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "98ac6794-5e41-4715-bfd9-924a19373e66", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b1dda916-1963-40d6-967f-8c27ead76ea0", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221039Z:98ac6794-5e41-4715-bfd9-924a19373e66", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 748F12E15415493DA8BF6F7FB00C2C73 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:10:39Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "217531988", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/GetStorageContainerAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/GetStorageContainerAsync.json new file mode 100644 index 000000000000..683e4a7797aa --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/GetStorageContainerAsync.json @@ -0,0 +1,159 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-7697ae78ad423133c27fe913f47ea3c6-6b4af2b0923b2b24-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:57 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "808cd7eb-6971-4287-afdc-db09797d0d3e", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "808cd7eb-6971-4287-afdc-db09797d0d3e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221158Z:808cd7eb-6971-4287-afdc-db09797d0d3e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5650A9E101EB443B8448BCFEE0055EF2 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:58Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ff238fde56f275b4646e252b9255bc35-9f6542559cf79116-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:58 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1c95b668-add9-477b-ba99-7fb41ac41811", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "1c95b668-add9-477b-ba99-7fb41ac41811", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221158Z:1c95b668-add9-477b-ba99-7fb41ac41811", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 70B09F6EEA864844ADC72345512FF289 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:58Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-2c6fbfb5dc91a8efecda07a5bc0901f1-76c82df4a362f4f2-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:58 GMT", + "ETag": "\"00000e9d-0000-1100-0000-69ac8c5f0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "8794933e-0075-417e-9189-d6bc5a8de2b5", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "5210f424-b716-4661-ad51-927b001904ce", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221159Z:8794933e-0075-417e-9189-d6bc5a8de2b5", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B064A49FC9CF407DBFF35AC3DC32450E Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:58Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "316885196", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersByResourceGroup.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersByResourceGroup.json new file mode 100644 index 000000000000..56b9c2c95598 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersByResourceGroup.json @@ -0,0 +1,189 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-7bef3a0ab6e736c70c62f05865cfd16e-859c2c6e39670713-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:05 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "3a1548ef-9da1-4886-8210-daf47be42c09", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "3a1548ef-9da1-4886-8210-daf47be42c09", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221106Z:3a1548ef-9da1-4886-8210-daf47be42c09", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F2D4F052871249DBBC2EE12A3456BD17 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:06Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-256f996e3f3854bfb7831a9dd833376c-098d02f11cb47ba4-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:06 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "66f2933b-53fb-4102-a21f-16bb2908e802", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "66f2933b-53fb-4102-a21f-16bb2908e802", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221106Z:66f2933b-53fb-4102-a21f-16bb2908e802", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: EC0DFD6100FC49E7B51E1707C7B81523 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:06Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-4f7878eae37a6b539ac15212fff9c502-0479c6151861d6c7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1411", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:06 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "92efacc5-505e-447c-aea5-f3992d4a1a6a", + "x-ms-original-request-ids": [ + "28525945-bf1b-4ebc-8da0-3dcb7548a0ac", + "636a576b-f5f5-4e60-b56d-bcdacfdc171e", + "b4f589f0-f4eb-4baf-9125-1050c2e4f0df", + "1d40830f-c3be-44a8-a51e-dd81ee6b512d", + "2cd8c8dc-540c-4354-85b6-24bb421af477", + "7b19776b-f4f6-45fd-ada2-85c106deebca" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "92efacc5-505e-447c-aea5-f3992d4a1a6a", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221107Z:92efacc5-505e-447c-aea5-f3992d4a1a6a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 37A7B5EAE5BC4D009DE23DCEBBD7AE87 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:07Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-8bef0d1a", + "name": "test-sc-8bef0d1a", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:28:56.4570289Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:28:56.4570289Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "47635872", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersByResourceGroupAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersByResourceGroupAsync.json new file mode 100644 index 000000000000..0204de842013 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersByResourceGroupAsync.json @@ -0,0 +1,189 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-22c11acc4c86a7b002dccbe05f612d47-b1a8187fe2c05635-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:12:32 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b41b70f1-736a-4762-87e7-c7dd84892bad", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b41b70f1-736a-4762-87e7-c7dd84892bad", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221233Z:b41b70f1-736a-4762-87e7-c7dd84892bad", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 74F14B9B199F40BC88CC640CE9B2083A Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:12:33Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-1e58865425ad7c37beb79583a951625f-8d09fff01454a02f-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:12:32 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "0d117ac6-0762-4560-a9cc-9f2a2b2415eb", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "0d117ac6-0762-4560-a9cc-9f2a2b2415eb", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221233Z:0d117ac6-0762-4560-a9cc-9f2a2b2415eb", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: BC3341D8534840B7875E4B1DA0639C97 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:12:33Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-3962fa8298a068c01a7582628470cadf-f953dfe943746153-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1411", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:12:33 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "44f86628-6038-49ad-8bb4-f7f2da274471", + "x-ms-original-request-ids": [ + "81269f9e-43d0-45b0-bf3b-90b4732f750e", + "d25b56b8-ac1c-456b-bff2-0f514faeed49", + "c715bfda-317c-4b59-9d00-8dc9535b8042", + "b4f17c3a-dcd5-4779-84f2-67efa5098a31", + "25917c89-500d-48e5-b2dc-36b16939d990", + "c832e88c-f9b8-4547-ba27-783b988a6626" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "44f86628-6038-49ad-8bb4-f7f2da274471", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221234Z:44f86628-6038-49ad-8bb4-f7f2da274471", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: CB9F93E9C1C44EB08F0AA814A26FEA90 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:12:33Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-8bef0d1a", + "name": "test-sc-8bef0d1a", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:28:56.4570289Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:28:56.4570289Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1816262066", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersBySubscription.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersBySubscription.json new file mode 100644 index 000000000000..36a8eac2e7f0 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersBySubscription.json @@ -0,0 +1,185 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-61012392d2d2030fcc76300eb13cce74-f00839d96fcc19d4-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:32 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "5856050f-2d06-4a6a-b278-e0e68b27357a", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "5856050f-2d06-4a6a-b278-e0e68b27357a", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221133Z:5856050f-2d06-4a6a-b278-e0e68b27357a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 09EB6F2569E541ABA3A3162B07D580E6 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:33Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/storageContainers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-4c89c0e399bb1f1289843343a5a43e28-654ba3e40b413ca7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2720", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:11:33 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "ecc9d02e-649a-44bf-aaaa-f12f4a18314c", + "x-ms-original-request-ids": [ + "68f19965-36dc-45e6-86b0-fcea6715f9d4", + "a35cba79-50bf-42b7-8131-67e2ee581ebe", + "a9281100-5f78-4d3a-b94f-7139a243517e", + "31f38b8b-1263-4fc8-8aaf-6ca3713a510f", + "1e4de58b-b4df-4ca9-89c9-33d3c54bae3e", + "626c0603-ae7c-429c-8c46-f9f76252c780" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ecc9d02e-649a-44bf-aaaa-f12f4a18314c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221134Z:ecc9d02e-649a-44bf-aaaa-f12f4a18314c", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 7A7797613AA746FEA2EC76EF36D8C727 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:11:33Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/deray-private-test/providers/Microsoft.Discovery/storageContainers/testCon", + "name": "testCon", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-07T18:52:52.126411Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/deray-private-test/providers/Microsoft.Storage/storageAccounts/derayprstg", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-8bef0d1a", + "name": "test-sc-8bef0d1a", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:28:56.4570289Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:28:56.4570289Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/levitest/providers/Microsoft.Discovery/StorageContainers/leviTest", + "name": "leviTest", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T01:04:28.4000694Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T01:04:28.4000694Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/levitest/providers/Microsoft.Storage/storageAccounts/testd", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "413758253", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersBySubscriptionAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersBySubscriptionAsync.json new file mode 100644 index 000000000000..238998af457e --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/ListStorageContainersBySubscriptionAsync.json @@ -0,0 +1,185 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-92ca0f62af05557f0a10c781bf171a93-e73bdac2a191565b-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:12:54 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "6b377615-8932-4e5e-8cfd-acd5712ed772", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "6b377615-8932-4e5e-8cfd-acd5712ed772", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221255Z:6b377615-8932-4e5e-8cfd-acd5712ed772", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: EF330D1C7DA3416994B5DA4CB645CB32 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:12:55Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/storageContainers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-b906e518f2fa35e2d7975c57f0d565ae-f3e7e58fc57dfec1-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2720", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:12:54 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "8cbf0b8c-f7fb-4c4e-83dd-a4436c93d4c5", + "x-ms-original-request-ids": [ + "2cbf8d9f-44f3-456b-9371-63edf3c85d01", + "5d59f5dd-2607-4019-a951-7e89699687b4", + "027c5a45-70f1-4915-848f-0e9dc94c4db0", + "697434b9-4160-4ff9-a991-f0a94d948f90", + "a6139b85-daf3-4fa6-8f7c-11ca79004add", + "eb470349-19cb-47bf-9033-7513bf5a0de4" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "8cbf0b8c-f7fb-4c4e-83dd-a4436c93d4c5", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221255Z:8cbf0b8c-f7fb-4c4e-83dd-a4436c93d4c5", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 53C85350863A405A8AFAB998C05A12A9 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:12:55Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/deray-private-test/providers/Microsoft.Discovery/storageContainers/testCon", + "name": "testCon", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-07T18:52:52.126411Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/deray-private-test/providers/Microsoft.Storage/storageAccounts/derayprstg", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-8bef0d1a", + "name": "test-sc-8bef0d1a", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:28:56.4570289Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:28:56.4570289Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/levitest/providers/Microsoft.Discovery/StorageContainers/leviTest", + "name": "leviTest", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T01:04:28.4000694Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T01:04:28.4000694Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/levitest/providers/Microsoft.Storage/storageAccounts/testd", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:22:46.3182573Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:35:46.2964063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "559434007", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/UpdateStorageContainer.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/UpdateStorageContainer.json new file mode 100644 index 000000000000..001fbf7c29b1 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/UpdateStorageContainer.json @@ -0,0 +1,378 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-5c67792f9714affba2f247dc610c92d8-bb9bd0952e61ca8c-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "5c19f738-6fca-4201-af40-eac3e8783f56", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "5c19f738-6fca-4201-af40-eac3e8783f56", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010341Z:5c19f738-6fca-4201-af40-eac3e8783f56", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 1DA87BF2203746ABBC313D9399F5467C Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:41Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-edfb2cf26ec0f817587d3659a70aac13-2df95718071f8163-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "fabfc4fb-ce22-4602-9c55-6ffc5f9a5654", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "fabfc4fb-ce22-4602-9c55-6ffc5f9a5654", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010342Z:fabfc4fb-ce22-4602-9c55-6ffc5f9a5654", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 3C245228FB4E420B827B48588958E8BA Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:41Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f8010ee4c06f50cc9ee63f826d24c032-4f911ca7a00b2ca3-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "699", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:42 GMT", + "ETag": "\"0000569d-0000-1100-0000-69acc9500000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "676b9e5b-cf1f-4341-ae3c-2dbeae71f510", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "25dca693-8a18-4763-9e1e-222a66c9928d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010343Z:676b9e5b-cf1f-4341-ae3c-2dbeae71f510", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 3938A18C8DED4DD8B78BD0AE8889EC7E Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:42Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T00:55:35.7977063Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "Content-Length": "271", + "Content-Type": "application/json", + "traceparent": "00-4c79c9ee712a111752f49b79415e08ac-b79c817642e16acd-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "location": "uksouth", + "properties": { + "storageStore": { + "kind": "AzureStorageBlob", + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr" + } + } + }, + "StatusCode": 201, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085286272968685&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=mxtSsJf2A6eS-spL6mBM7JZWHYdJcTldWDbmjEPHY0HvTzOFzl6g4hfXe3w70osyAqVl1k1QW_X7T5xVATDJRk4HCwRPWkfmYrZePqV_kbXGZzgGdK5KzKTfajiwQ9KXWFVZdjZmxruTUdY4Di_CHS3unQnfvUd626SsCIeZ1GjOUwQbqUNlxaXjpvRyOrvgrTPX35JvgUwNPaHve6yEtCe_O7Hz23pH_rlz75rEWFxAor89OxuooXFcxU5OqG52V8NyZNuSw_tcWkdjiqCSpRrF5aSq5zM0HuBxoopW8uNYx9rQZ1nCtGBH6gl5nNHEc6osWAU91BBC96llNuza7Q&h=b2OkGH4VsmHuzQW4Umn-ysjVEgov-8Xd-GLmaNfxvVE", + "Cache-Control": "no-cache", + "Content-Length": "731", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:46 GMT", + "ETag": "\"1700f3e5-0000-1000-0000-69accaf20000\"", + "Expires": "-1", + "mise-correlation-id": "4c89b305-979b-4bbd-a336-1f72c727f537", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-async-operation-timeout": "P6D", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "f9d37f23-ef2a-4270-98f9-772baa47c36e", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/3ff9e439-2241-46c8-a404-25406cd16878", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-writes": "799", + "x-ms-request-id": "5c584b97-4429-45ca-a079-0ae902f6df5b", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010347Z:f9d37f23-ef2a-4270-98f9-772baa47c36e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 452320353FB6475EB64808F953EBF95A Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:43Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:03:44.6249101Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Accepted" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085286272968685&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=mxtSsJf2A6eS-spL6mBM7JZWHYdJcTldWDbmjEPHY0HvTzOFzl6g4hfXe3w70osyAqVl1k1QW_X7T5xVATDJRk4HCwRPWkfmYrZePqV_kbXGZzgGdK5KzKTfajiwQ9KXWFVZdjZmxruTUdY4Di_CHS3unQnfvUd626SsCIeZ1GjOUwQbqUNlxaXjpvRyOrvgrTPX35JvgUwNPaHve6yEtCe_O7Hz23pH_rlz75rEWFxAor89OxuooXFcxU5OqG52V8NyZNuSw_tcWkdjiqCSpRrF5aSq5zM0HuBxoopW8uNYx9rQZ1nCtGBH6gl5nNHEc6osWAU91BBC96llNuza7Q&h=b2OkGH4VsmHuzQW4Umn-ysjVEgov-8Xd-GLmaNfxvVE", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4c79c9ee712a111752f49b79415e08ac-c64504ba1e3a2fdd-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:03:47 GMT", + "ETag": "\"24025420-0000-1000-0000-69accaf10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "cf1ddbda-c326-4c02-9c42-71b8b2cb3508", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/0e59c890-6847-480f-b306-695ffea918a2", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "7abdebc9-e709-4421-b12d-953b927eca30", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010347Z:cf1ddbda-c326-4c02-9c42-71b8b2cb3508", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 82A443D9C3A448B7A12A6332E5191BFA Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:03:47Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Accepted", + "startTime": "2026-03-08T01:03:45.7653284Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085286272968685&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=mxtSsJf2A6eS-spL6mBM7JZWHYdJcTldWDbmjEPHY0HvTzOFzl6g4hfXe3w70osyAqVl1k1QW_X7T5xVATDJRk4HCwRPWkfmYrZePqV_kbXGZzgGdK5KzKTfajiwQ9KXWFVZdjZmxruTUdY4Di_CHS3unQnfvUd626SsCIeZ1GjOUwQbqUNlxaXjpvRyOrvgrTPX35JvgUwNPaHve6yEtCe_O7Hz23pH_rlz75rEWFxAor89OxuooXFcxU5OqG52V8NyZNuSw_tcWkdjiqCSpRrF5aSq5zM0HuBxoopW8uNYx9rQZ1nCtGBH6gl5nNHEc6osWAU91BBC96llNuza7Q&h=b2OkGH4VsmHuzQW4Umn-ysjVEgov-8Xd-GLmaNfxvVE", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4c79c9ee712a111752f49b79415e08ac-73246c6005926eff-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:26 GMT", + "ETag": "\"24028935-0000-1000-0000-69accb450000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "5d637358-2b09-4250-b0b7-95d95bdaecc0", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/775260ad-b158-4433-abf7-e0410d783f42", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "4f70e122-36eb-4def-ac2c-0892694bba3e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010527Z:5d637358-2b09-4250-b0b7-95d95bdaecc0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D26211EE8FCB4849A089592DE1B105A9 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:27Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "909094fb-533a-4eae-928c-bdb49958313c*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-08T01:03:45.7653284Z", + "endTime": "2026-03-08T01:05:09.5221505Z", + "percentComplete": 0.0, + "properties": null + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4c79c9ee712a111752f49b79415e08ac-2f3972af42570349-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "732", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:27 GMT", + "ETag": "\"0000599d-0000-1100-0000-69accb450000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "1eb27897-bfb7-4785-ab6c-baf0e51f424f", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "4c604e9c-818e-43e9-a303-e7afff56878d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010527Z:1eb27897-bfb7-4785-ab6c-baf0e51f424f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6C3C9C12F1F44695B6B0AE606613240D Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:27Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:03:44.6249101Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1545509883", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/UpdateStorageContainerAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/UpdateStorageContainerAsync.json new file mode 100644 index 000000000000..cee4c67550f9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/StorageContainerResourceTests/UpdateStorageContainerAsync.json @@ -0,0 +1,380 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fc39b4655e8e3ec3ef6bf69c173979da-0667bf699622e20d-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "f0d1eae5-3af6-4225-b9bc-bb7d88a6b0e1", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "f0d1eae5-3af6-4225-b9bc-bb7d88a6b0e1", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010537Z:f0d1eae5-3af6-4225-b9bc-bb7d88a6b0e1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: ECB83EC503EF44DD9C3C66DB7E2E771E Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:37Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c745781d88b02136ec15f9451708a977-f0a8d2091b133c8b-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "109a42c2-f075-430e-88b9-2326e1863bbf", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "109a42c2-f075-430e-88b9-2326e1863bbf", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010538Z:109a42c2-f075-430e-88b9-2326e1863bbf", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 7AAB836546AD4F5897374A21575B8412 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:37Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fe920ae3e203a9d92f379e8ca3822174-fc7439f308276d69-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "732", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:38 GMT", + "ETag": "\"0000599d-0000-1100-0000-69accb450000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ad1a6f65-6326-4127-8a97-6262495acf5a", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "d64dd4cc-4701-4f7e-80a2-54c713463e20", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010538Z:ad1a6f65-6326-4127-8a97-6262495acf5a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 3292A4639F154CE9BB2D1B6202775A43 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:03:44.6249101Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "Content-Length": "271", + "Content-Type": "application/json", + "traceparent": "00-bb08ac3ade586082aa5e2da8d850dc0c-bd510706b87be253-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "location": "uksouth", + "properties": { + "storageStore": { + "kind": "AzureStorageBlob", + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr" + } + } + }, + "StatusCode": 201, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085287415975726&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=b4YiYu_awYUjyMrd5zPtA-WM3d5Lf2WHHi96yQgrnjZjmzSo9JpYB7flupW4pjO6ENIVdZoPvusdRBWwP8OebFF6qpnoeXLNWCKq_kOdBk5PSlUHIrJHVtIUQDm_6aNdt2VUFmt19Wp9nj5xEwJTWtoavbVsFca-AHprMTmFm_fbKdBanf1GsTYcXPc4v65dU7tEItly1GeSe_tEVI9KMqgK6_AoTcvFpnT4bewgoQQXr8xjogD02ltmk3Zb7sPg04r85jVl6LDd5A8GPePtJlbJI9KmkNFLcJ6_ld8aIlKFWYsO25_HIviiPpFgymg2j_dIpUG49Bvv3O-PtHPuKw&h=gNqa1sjDG6o1uXNgeXcq5DILfFFZN1NjP9W7h8WMxY0", + "Cache-Control": "no-cache", + "Content-Length": "731", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:41 GMT", + "ETag": "\"170028e6-0000-1000-0000-69accb640000\"", + "Expires": "-1", + "mise-correlation-id": "3fd74e4a-5fcc-4b18-b828-5606760cffe5", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-async-operation-timeout": "P6D", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "9eff9c49-a4a9-4c78-8cd1-2debac024b5f", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/9cf0ff7a-0fc6-477d-a7a2-fdf2eaf56d0a", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-writes": "799", + "x-ms-request-id": "689af30b-3670-43f3-be2d-62b1e4d09ab4", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010541Z:9eff9c49-a4a9-4c78-8cd1-2debac024b5f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B1F8320EDA224ADE9AAF29D0D5F078F1 Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:39Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:05:39.7381005Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Accepted" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085287415975726&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=b4YiYu_awYUjyMrd5zPtA-WM3d5Lf2WHHi96yQgrnjZjmzSo9JpYB7flupW4pjO6ENIVdZoPvusdRBWwP8OebFF6qpnoeXLNWCKq_kOdBk5PSlUHIrJHVtIUQDm_6aNdt2VUFmt19Wp9nj5xEwJTWtoavbVsFca-AHprMTmFm_fbKdBanf1GsTYcXPc4v65dU7tEItly1GeSe_tEVI9KMqgK6_AoTcvFpnT4bewgoQQXr8xjogD02ltmk3Zb7sPg04r85jVl6LDd5A8GPePtJlbJI9KmkNFLcJ6_ld8aIlKFWYsO25_HIviiPpFgymg2j_dIpUG49Bvv3O-PtHPuKw&h=gNqa1sjDG6o1uXNgeXcq5DILfFFZN1NjP9W7h8WMxY0", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-bb08ac3ade586082aa5e2da8d850dc0c-90f08bf32693242c-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "556", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:05:41 GMT", + "ETag": "\"2402963b-0000-1000-0000-69accb640000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "3ac06e2d-4034-4e89-ab9c-c005353b024a", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/24acccdd-81be-4a4d-a7cf-237e4266dd3f", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "92ed5098-7eba-44fc-ba25-531a0eea070d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010541Z:3ac06e2d-4034-4e89-ab9c-c005353b024a", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DD523A44E8B04215930673DA80DF7AEF Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:05:41Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Accepted", + "startTime": "2026-03-08T01:05:40.5636586Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389?api-version=2026-02-01-preview&t=639085287415975726&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=b4YiYu_awYUjyMrd5zPtA-WM3d5Lf2WHHi96yQgrnjZjmzSo9JpYB7flupW4pjO6ENIVdZoPvusdRBWwP8OebFF6qpnoeXLNWCKq_kOdBk5PSlUHIrJHVtIUQDm_6aNdt2VUFmt19Wp9nj5xEwJTWtoavbVsFca-AHprMTmFm_fbKdBanf1GsTYcXPc4v65dU7tEItly1GeSe_tEVI9KMqgK6_AoTcvFpnT4bewgoQQXr8xjogD02ltmk3Zb7sPg04r85jVl6LDd5A8GPePtJlbJI9KmkNFLcJ6_ld8aIlKFWYsO25_HIviiPpFgymg2j_dIpUG49Bvv3O-PtHPuKw&h=gNqa1sjDG6o1uXNgeXcq5DILfFFZN1NjP9W7h8WMxY0", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-bb08ac3ade586082aa5e2da8d850dc0c-e7542a7bfc187a8d-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "638", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:07:21 GMT", + "ETag": "\"2402a947-0000-1000-0000-69accbae0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "c54a39cc-9846-40f9-89c5-02b256d60c36", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/352fc6ed-438f-4430-918f-b81bace663cf", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "9e94f043-8ab5-44ff-95a2-1b8794593415", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010721Z:c54a39cc-9846-40f9-89c5-02b256d60c36", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B1260A9A2A814FBC9D4A22B1ED7B1B6E Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:07:21Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "name": "de13c8a4-288f-4eb6-b472-921477ed7721*674380A4D4F3EC1BCCE83998CCA8729D040476672F066B3780ADDBF06707E389", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-08T01:05:40.5636586Z", + "endTime": "2026-03-08T01:06:54.2230121Z", + "percentComplete": 0.0, + "properties": null + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-bb08ac3ade586082aa5e2da8d850dc0c-45de9186d1ac3aad-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "732", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:07:21 GMT", + "ETag": "\"00005c9d-0000-1100-0000-69accbae0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "c739c035-f937-4c4b-9dd4-eb7f4dfe3a12", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ff2a9abf-2687-47ed-be16-f96b7e3918ed", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T010722Z:c739c035-f937-4c4b-9dd4-eb7f4dfe3a12", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B16A47BC7A5C4F9C932CF096A7C699FF Ref B: SN4AA2022302027 Ref C: 2026-03-08T01:07:22Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/storageContainers/test-sc-dotnet01", + "name": "test-sc-dotnet01", + "type": "microsoft.discovery/storagecontainers", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:35.7977063Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:05:39.7381005Z" + }, + "properties": { + "storageStore": { + "storageAccountId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr", + "kind": "AzureStorageBlob" + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_STORAGE_CONTAINER_NAME": "test-sc-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1898982828", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/GetSupercomputer.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/GetSupercomputer.json new file mode 100644 index 000000000000..16c5fd4b64bd --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/GetSupercomputer.json @@ -0,0 +1,184 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-71c6237557cc47be2a33eaaf1738298d-7e61aff7d902931d-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "a0f48b36-051d-4e9e-a699-4985159e0554", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "a0f48b36-051d-4e9e-a699-4985159e0554", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175628Z:a0f48b36-051d-4e9e-a699-4985159e0554", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: AE11A94AF351488486D57D8E65C03523 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:28Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-b39ac461a4c8dd28bf621d8ce3b1aa79-32d52e6ee3f91a03-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "31e4c4e7-e66d-450b-a7a9-d651735e683e", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "31e4c4e7-e66d-450b-a7a9-d651735e683e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175629Z:31e4c4e7-e66d-450b-a7a9-d651735e683e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 1B0072C72A114FC1A7BA5C1F79CE9CC8 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-35fde4f344afbad327d4eda5de10e63c-f54407314bc41c14-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1836", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:29 GMT", + "ETag": "\"8002bca7-0000-1000-0000-696836200000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "37444e3c-2c2c-45af-bd16-6420372f94f8", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "f53c3263-e5a4-49aa-b22a-0a3a46fb4bab", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175629Z:37444e3c-2c2c-45af-bd16-6420372f94f8", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 02A542524BD9479EA684DB310DF16C99 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114", + "name": "itsuperp114", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:18:20.4616551Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:40.7398302Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsuperp114-0v0k8q" + } + ] + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_SUPERCOMPUTER_NAME": "itsuperp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "1833982025", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/GetSupercomputerAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/GetSupercomputerAsync.json new file mode 100644 index 000000000000..ace33601cdc5 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/GetSupercomputerAsync.json @@ -0,0 +1,184 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-8f3b846d9eafa89e2f73ea210b3cf4ab-dc8d4d0e44c22b47-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:12 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "be441af6-e3ad-4d2d-9520-764babe9c683", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "be441af6-e3ad-4d2d-9520-764babe9c683", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175713Z:be441af6-e3ad-4d2d-9520-764babe9c683", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 02F8FA55F62B4EDFB55957912400170E Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:13Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-1e2400dff17f56c4dc91fcd703c706bc-7c98e5898906c75e-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:13 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "268e516a-f113-4bcc-a2ff-8b9bbb3e3752", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "268e516a-f113-4bcc-a2ff-8b9bbb3e3752", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175713Z:268e516a-f113-4bcc-a2ff-8b9bbb3e3752", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DD4A0FFA97E64E13873DD453D93FBC81 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:13Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c74ca631f5226430c435b81e83a6b74c-34190467a6d4361f-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1836", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:13 GMT", + "ETag": "\"8002bca7-0000-1000-0000-696836200000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "4ad8d994-62e6-428c-a7bb-f97c1f4939ef", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "6498d5fe-fb8d-4e70-a9a3-dcc89af2158f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175713Z:4ad8d994-62e6-428c-a7bb-f97c1f4939ef", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: A23A8B6506D54653AEAA2C387451342F Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:13Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114", + "name": "itsuperp114", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:18:20.4616551Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:40.7398302Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsuperp114-0v0k8q" + } + ] + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_SUPERCOMPUTER_NAME": "itsuperp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "619228460", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersByResourceGroup.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersByResourceGroup.json new file mode 100644 index 000000000000..f85cd1fd445f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersByResourceGroup.json @@ -0,0 +1,188 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-343367efb8f94aaff7ee092d7ba145ae-667508aa188e91d3-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:36 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "623948d7-5b77-4079-b4d1-b8f9369b05ba", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "623948d7-5b77-4079-b4d1-b8f9369b05ba", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175637Z:623948d7-5b77-4079-b4d1-b8f9369b05ba", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 292F466CEAAC42E894EAE790E791DA3E Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:37Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-1d0968cb0c999e903811c6fef15f3990-ee5f0e6168c479fe-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "4390b6cd-e4b9-4e69-8db6-3c9dbbba8286", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "4390b6cd-e4b9-4e69-8db6-3c9dbbba8286", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175637Z:4390b6cd-e4b9-4e69-8db6-3c9dbbba8286", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 82CE634035A841FF933D8FCB45EB76FE Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:37Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ec8a99601a3b23ac1c03bfe3aa01b020-e74e2dde3424fc1e-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1848", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "59bfc151-6ab7-4f26-9679-e2f8c6b74eea", + "x-ms-original-request-ids": [ + "10d50015-3237-4254-bfec-bf4c8e62ed91", + "9fa2cba8-bf3c-459a-bf97-c8d1bfca2dfc" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "59bfc151-6ab7-4f26-9679-e2f8c6b74eea", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175637Z:59bfc151-6ab7-4f26-9679-e2f8c6b74eea", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 79F3F3AE717643F08FB011D539335304 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:37Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114", + "name": "itsuperp114", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:18:20.4616551Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:40.7398302Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsuperp114-0v0k8q" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "423457528", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersByResourceGroupAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersByResourceGroupAsync.json new file mode 100644 index 000000000000..a47df64af834 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersByResourceGroupAsync.json @@ -0,0 +1,188 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-bb7361d2df58c4f909c87c1279883702-4d8cfdf8a3e06f28-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:20 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "8777f511-9730-4713-91ab-687502f75404", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "8777f511-9730-4713-91ab-687502f75404", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175721Z:8777f511-9730-4713-91ab-687502f75404", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6B125BC502ED431D8846EF572FB6C464 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:20Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-576d4601da3b7d6df738acc93402022c-39b3d82ec2c9a7aa-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:20 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "10426260-ba41-47b8-9a11-89d703ccfcdc", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "10426260-ba41-47b8-9a11-89d703ccfcdc", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175721Z:10426260-ba41-47b8-9a11-89d703ccfcdc", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 57B288FAA6E34DDF8AEA75C98728A01D Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:21Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-1fda0468a4c80d955a34bc6d9e244249-ace52c9d1d52f153-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1848", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:21 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "d37e6adf-7e77-4f58-8593-7e9144f90960", + "x-ms-original-request-ids": [ + "a9b38783-87ed-421f-8d1d-f4765ce74d62", + "c54af8ce-79e5-4bd6-a09b-dfdff95bbbf1" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "d37e6adf-7e77-4f58-8593-7e9144f90960", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175721Z:d37e6adf-7e77-4f58-8593-7e9144f90960", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0771BFC1B516485799AC3E218F0D4BE1 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:21Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114", + "name": "itsuperp114", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:18:20.4616551Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:40.7398302Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsuperp114-0v0k8q" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "1485742241", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersBySubscription.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersBySubscription.json new file mode 100644 index 000000000000..40845bdf42d8 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersBySubscription.json @@ -0,0 +1,188 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-161c1ee3fe704200262f9c0051746e81-12e57aa6295e4ff6-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "2cf51752-96fc-402a-95ad-30059c0e694d", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "2cf51752-96fc-402a-95ad-30059c0e694d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175644Z:2cf51752-96fc-402a-95ad-30059c0e694d", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 229794A158444FAEAAA75AD92D6360F7 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:44Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/supercomputers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-87e68de8e1e803f7fe0ff78f034af246-d1609a8fd3303028-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "3689", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:56:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "02b41712-c2f6-400f-9cf5-ce1b28c7ba66", + "x-ms-original-request-ids": [ + "efcc1f02-ba8c-4cd0-b1bc-01760545f72d", + "4880b2b2-8628-4bab-bd80-58416ccc9511" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "02b41712-c2f6-400f-9cf5-ce1b28c7ba66", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175645Z:02b41712-c2f6-400f-9cf5-ce1b28c7ba66", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D1625723D6B846758499324E1D2F4010 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:56:44Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/spec1-test/providers/Microsoft.Discovery/supercomputers/itsupespec1", + "name": "itsupespec1", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-11-18T14:01:46.9205594Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-19T14:20:22.1736376Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/spec1-test/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsupespec1-bq2h57" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114", + "name": "itsuperp114", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:18:20.4616551Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:40.7398302Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsuperp114-0v0k8q" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "643217000", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersBySubscriptionAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersBySubscriptionAsync.json new file mode 100644 index 000000000000..4e5a41a4af74 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/SupercomputerResourceTests/ListSupercomputersBySubscriptionAsync.json @@ -0,0 +1,188 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-355a288124a3a3f11c7689e9b329568c-dcfd0fb4306e0f8f-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:28 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "199471af-90fa-42ab-81b3-48f2e3ea15ed", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "199471af-90fa-42ab-81b3-48f2e3ea15ed", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175729Z:199471af-90fa-42ab-81b3-48f2e3ea15ed", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: BB3B6611BC0E4FC29DAB493337EE0150 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:29Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/supercomputers?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-5c807cfe51619c7df12a8cc5047e5783-c0a017d088f10c08-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "3689", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:29 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "069dfbd0-47e2-45ca-81c1-3b4585397534", + "x-ms-original-request-ids": [ + "c3c093d0-8b79-4f4a-bf31-5f57a3e44bd3", + "1587ffa2-fb10-4886-ae21-c44ab4d4b2b9" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "069dfbd0-47e2-45ca-81c1-3b4585397534", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175729Z:069dfbd0-47e2-45ca-81c1-3b4585397534", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F289495696774130A21A68B8C8C73BBC Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:29Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/spec1-test/providers/Microsoft.Discovery/supercomputers/itsupespec1", + "name": "itsupespec1", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-11-18T14:01:46.9205594Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-19T14:20:22.1736376Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/spec1-test/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsupespec1-bq2h57" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114", + "name": "itsuperp114", + "type": "microsoft.discovery/supercomputers", + "location": "uksouth", + "tags": { + "createdBy": "Sanitized" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:18:20.4616551Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:40.7398302Z" + }, + "properties": { + "subnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/supercomputer-aks", + "identities": { + "clusterIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "kubeletIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami", + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + }, + "workloadIdentities": { + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dscmp-itsuperp114-0v0k8q" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "344253587", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/CreateTool.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/CreateTool.json new file mode 100644 index 000000000000..b713091baf5a --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/CreateTool.json @@ -0,0 +1 @@ +{"Entries":[{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-732976be16a857411a3fb4975259c8c9-40669d6ea851113e-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"479","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:56:34 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"49ba90b6-28c8-47ca-9c2f-e6efebc56368","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"49ba90b6-28c8-47ca-9c2f-e6efebc56368","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205634Z:49ba90b6-28c8-47ca-9c2f-e6efebc56368","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 327EFF4F6F4D44CD90242EB0AB472355 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:56:34Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec","authorizationSource":"RoleBased","managedByTenants":[],"tags":{"Az.Sec.AnonymousBlobEnforcement::OptIn":"all_regions"},"subscriptionId":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec","tenantId":"00000000-0000-0000-0000-000000000000","displayName":"Discovery-copilot-devslice1-uksouth","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Internal_2014-09-01","quotaId":"Internal_2014-09-01","spendingLimit":"Off"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-f74d7af17d33addb3ea53f54172e892b-bfeeb471f3f5319f-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"314","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:56:34 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"eb6c5203-ff45-4e27-9bd5-abc94d61a8cf","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"eb6c5203-ff45-4e27-9bd5-abc94d61a8cf","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205635Z:eb6c5203-ff45-4e27-9bd5-abc94d61a8cf","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 4AF7341AF4514C848AEDB183B40FB719 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:56:34Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal","name":"olawal","type":"Microsoft.Resources/resourceGroups","location":"uksouth","tags":{"Created":"2026-03-02T15:59:02.3331112Z","RGOwner":"rajakuc","SkipAutoDeleteTill":"2026-12-31"},"properties":{"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview","RequestMethod":"PUT","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","Content-Length":"957","Content-Type":"application/json","traceparent":"00-eb605fc483e4dba3baafd465610cf61f-353d097eee90f5d0-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":{"location":"uksouth","properties":{"version":"1.0.0","definitionContent":{"name":"molpredictor","description":"Molecular property prediction for single SMILES strings.","version":"1.0.0","category":"cheminformatics","license":"MIT","infra":[{"name":"worker","infra_type":"container","image":{"acr":"demodiscoveryacr.azurecr.io/molpredictor:latest"},"compute":{"min_resources":{"cpu":"1","ram":"1Gi","storage":"32","gpu":"0"},"max_resources":{"cpu":"2","ram":"1Gi","storage":"64","gpu":"0"},"recommended_sku":["Standard_D4s_v6"],"pool_type":"static","pool_size":1}}],"actions":[{"name":"predict","description":"Predict molecular properties for SMILES strings.","input_schema":{"type":"object","properties":{"action":{"type":"string","description":"The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]"}},"required":["action"]},"command":"python molpredictor.py --action {{ action }}","infra_node":"worker"}]}}},"StatusCode":201,"ResponseHeaders":{"Azure-AsyncNotification":"Enabled","Azure-AsyncOperation":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085137982697963&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=N1lHOf24D4FdzRYhVjFCzWrEMYXAHP2yXyapM8Js7ReLioTri40HL1EIERN87Os4QpHGk5JiiNwafgEwwpWi2VpTnQ5K4HAmc0i9c8YLF9Dlp7aahMRR03BeFbF7_Ols7MViGe2AGlPtD0cBrK2R1fWPlwCtCusFUZsPXeAtlzGNVoBcCDBLw0axz1PS4e0_1PTojpAphO5IxQAozql2ARRlLdf1bSkBmHqJTBFXQt2AJxIkIqNV3tyElHklqTwgcxJSRA5MSUaAXrbsTMuiez_3oru6HUfjFymi28ZrTdCQ1itIZ96DqE214DcV9bimylU7Bp--KHstalKtpqcyuw&h=I31-sSthEik7wWRO1b9js2yqm3m1UC7nx35tSztXeZE","Cache-Control":"no-cache","Content-Length":"1433","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:56:37 GMT","ETag":"\"86002d56-0000-1000-0000-69ac91050000\"","Expires":"-1","mise-correlation-id":"09eddd18-811e-4dc3-a99b-5fcd4953a051","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","x-azure-ref":"Sanitized","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-async-operation-timeout":"P6D","x-ms-build-version":"1","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"f759d979-ef08-4650-b927-c96b2d26687e","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/f43436d5-15ad-446f-8996-bc9b30e01013","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-writes":"799","x-ms-request-id":"a0caceca-8e09-4742-9e31-3dee0665ca13","x-ms-resource-provider-hint":"noPolling","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205638Z:f759d979-ef08-4650-b927-c96b2d26687e","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 521C7B87F2E2439794150F26E8ADB875 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:56:35Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","name":"test-tool-dotnet01","type":"microsoft.discovery/tools","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:37:55.7026424Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:56:36.1291789Z"},"properties":{"version":"1.0.0","definitionContent":{"name":"molpredictor","description":"Molecular property prediction for single SMILES strings.","version":"1.0.0","category":"cheminformatics","license":"MIT","infra":[{"name":"worker","infra_type":"container","image":{"acr":"demodiscoveryacr.azurecr.io/molpredictor:latest"},"compute":{"min_resources":{"cpu":"1","ram":"1Gi","storage":"32","gpu":"0"},"max_resources":{"cpu":"2","ram":"1Gi","storage":"64","gpu":"0"},"recommended_sku":["Standard_D4s_v6"],"pool_type":"static","pool_size":1}}],"actions":[{"name":"predict","description":"Predict molecular properties for SMILES strings.","input_schema":{"type":"object","properties":{"action":{"type":"string","description":"The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]"}},"required":["action"]},"command":"python molpredictor.py --action {{ action }}","infra_node":"worker"}]},"environmentVariables":{},"provisioningState":"Accepted"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085137982697963&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=N1lHOf24D4FdzRYhVjFCzWrEMYXAHP2yXyapM8Js7ReLioTri40HL1EIERN87Os4QpHGk5JiiNwafgEwwpWi2VpTnQ5K4HAmc0i9c8YLF9Dlp7aahMRR03BeFbF7_Ols7MViGe2AGlPtD0cBrK2R1fWPlwCtCusFUZsPXeAtlzGNVoBcCDBLw0axz1PS4e0_1PTojpAphO5IxQAozql2ARRlLdf1bSkBmHqJTBFXQt2AJxIkIqNV3tyElHklqTwgcxJSRA5MSUaAXrbsTMuiez_3oru6HUfjFymi28ZrTdCQ1itIZ96DqE214DcV9bimylU7Bp--KHstalKtpqcyuw&h=I31-sSthEik7wWRO1b9js2yqm3m1UC7nx35tSztXeZE","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-eb605fc483e4dba3baafd465610cf61f-62777a760903d8e4-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"546","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:56:38 GMT","ETag":"\"1a026f10-0000-1000-0000-69ac91050000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"c539e3b6-870e-4646-8aa1-e64ea5393e88","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/15f1fdd1-3dad-4299-907c-5a7d2a0b9faa","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"bbed970f-e865-4709-ba0b-e550d5e30bc3","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205639Z:c539e3b6-870e-4646-8aa1-e64ea5393e88","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: BB13BB3A02C84990AEDC5DF4B5E25BC9 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:56:38Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","name":"9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","status":"Accepted","startTime":"2026-03-07T20:56:37.1182296Z"}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085137982697963&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=N1lHOf24D4FdzRYhVjFCzWrEMYXAHP2yXyapM8Js7ReLioTri40HL1EIERN87Os4QpHGk5JiiNwafgEwwpWi2VpTnQ5K4HAmc0i9c8YLF9Dlp7aahMRR03BeFbF7_Ols7MViGe2AGlPtD0cBrK2R1fWPlwCtCusFUZsPXeAtlzGNVoBcCDBLw0axz1PS4e0_1PTojpAphO5IxQAozql2ARRlLdf1bSkBmHqJTBFXQt2AJxIkIqNV3tyElHklqTwgcxJSRA5MSUaAXrbsTMuiez_3oru6HUfjFymi28ZrTdCQ1itIZ96DqE214DcV9bimylU7Bp--KHstalKtpqcyuw&h=I31-sSthEik7wWRO1b9js2yqm3m1UC7nx35tSztXeZE","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-eb605fc483e4dba3baafd465610cf61f-d84487ea93c4f22f-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"628","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:58:19 GMT","ETag":"\"1a02011e-0000-1000-0000-69ac91500000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"6aa674f1-6506-41c3-8bac-296876ebe46b","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/18c554b1-ccf1-475f-bf69-f0a87c7e424e","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"24239bfb-dfe1-42f2-9a68-fc338aa599a3","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205820Z:6aa674f1-6506-41c3-8bac-296876ebe46b","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 55C6585309004631ABCCCB31FD29D6B2 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:58:19Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","name":"9e5885a8-8141-43cf-865a-459883d6b376*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","status":"Succeeded","startTime":"2026-03-07T20:56:37.1182296Z","endTime":"2026-03-07T20:57:51.4975883Z","percentComplete":0.0,"properties":null}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-eb605fc483e4dba3baafd465610cf61f-b496c2e37f2a4df1-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"1434","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:58:20 GMT","ETag":"\"f6019202-0000-1100-0000-69ac914f0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"0bfa997b-aa30-4a33-ad47-55901f949336","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"8afe724a-23c5-4fc6-9268-2b3f0a19536a","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205820Z:0bfa997b-aa30-4a33-ad47-55901f949336","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: A37C0D2699D44B338B7C92CDFFCA4308 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:58:20Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","name":"test-tool-dotnet01","type":"microsoft.discovery/tools","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:37:55.7026424Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:56:36.1291789Z"},"properties":{"version":"1.0.0","definitionContent":{"name":"molpredictor","description":"Molecular property prediction for single SMILES strings.","version":"1.0.0","category":"cheminformatics","license":"MIT","infra":[{"name":"worker","infra_type":"container","image":{"acr":"demodiscoveryacr.azurecr.io/molpredictor:latest"},"compute":{"min_resources":{"cpu":"1","ram":"1Gi","storage":"32","gpu":"0"},"max_resources":{"cpu":"2","ram":"1Gi","storage":"64","gpu":"0"},"recommended_sku":["Standard_D4s_v6"],"pool_type":"static","pool_size":1}}],"actions":[{"name":"predict","description":"Predict molecular properties for SMILES strings.","input_schema":{"type":"object","properties":{"action":{"type":"string","description":"The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]"}},"required":["action"]},"command":"python molpredictor.py --action {{ action }}","infra_node":"worker"}]},"environmentVariables":{},"provisioningState":"Succeeded"}}}],"Variables":{"AZURE_RESOURCE_GROUP_NAME":"olawal","RandomSeed":"695516934","RESOURCE_MANAGER_URL":null,"SUBSCRIPTION_ID":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec"}} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/CreateToolAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/CreateToolAsync.json new file mode 100644 index 000000000000..542d2b922dd9 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/CreateToolAsync.json @@ -0,0 +1 @@ +{"Entries":[{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-5404a0ec6bb6489c1e3def5d1f1981a5-f5afd1a8333164e4-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"479","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:58:42 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"7568a25f-f413-4024-acbd-536be7ff267a","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"7568a25f-f413-4024-acbd-536be7ff267a","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205842Z:7568a25f-f413-4024-acbd-536be7ff267a","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 7106F846FDEA464C9D9E69BCF59F9914 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:58:42Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec","authorizationSource":"RoleBased","managedByTenants":[],"tags":{"Az.Sec.AnonymousBlobEnforcement::OptIn":"all_regions"},"subscriptionId":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec","tenantId":"00000000-0000-0000-0000-000000000000","displayName":"Discovery-copilot-devslice1-uksouth","state":"Enabled","subscriptionPolicies":{"locationPlacementId":"Internal_2014-09-01","quotaId":"Internal_2014-09-01","spendingLimit":"Off"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01","RequestMethod":"GET","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","traceparent":"00-9b06346170c2795378b7ff16324111cf-0ca5a9eeca847b24-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"314","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:58:42 GMT","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-correlation-request-id":"47a617a6-8ae3-4360-9696-968b458efafe","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"47a617a6-8ae3-4360-9696-968b458efafe","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205842Z:47a617a6-8ae3-4360-9696-968b458efafe","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 5075A5D38AAE4B148D908F0821E4527C Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:58:42Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal","name":"olawal","type":"Microsoft.Resources/resourceGroups","location":"uksouth","tags":{"Created":"2026-03-02T15:59:02.3331112Z","RGOwner":"rajakuc","SkipAutoDeleteTill":"2026-12-31"},"properties":{"provisioningState":"Succeeded"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview","RequestMethod":"PUT","RequestHeaders":{"Accept":"application/json","Authorization":"Sanitized","Content-Length":"957","Content-Type":"application/json","traceparent":"00-097dda7cfd3afdcca703c5baac0c99de-e8563c7f452d9d76-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":{"location":"uksouth","properties":{"version":"1.0.0","definitionContent":{"name":"molpredictor","description":"Molecular property prediction for single SMILES strings.","version":"1.0.0","category":"cheminformatics","license":"MIT","infra":[{"name":"worker","infra_type":"container","image":{"acr":"demodiscoveryacr.azurecr.io/molpredictor:latest"},"compute":{"min_resources":{"cpu":"1","ram":"1Gi","storage":"32","gpu":"0"},"max_resources":{"cpu":"2","ram":"1Gi","storage":"64","gpu":"0"},"recommended_sku":["Standard_D4s_v6"],"pool_type":"static","pool_size":1}}],"actions":[{"name":"predict","description":"Predict molecular properties for SMILES strings.","input_schema":{"type":"object","properties":{"action":{"type":"string","description":"The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]"}},"required":["action"]},"command":"python molpredictor.py --action {{ action }}","infra_node":"worker"}]}}},"StatusCode":201,"ResponseHeaders":{"Azure-AsyncNotification":"Enabled","Azure-AsyncOperation":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085139255651527&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=nah_m47II0v-SsUK-5EIcAB6MfuUXvcN3vMcBEmSQ8S67ouuBfxqwr-4D-e8NxiEq-Q9hUHvcVe6i53HF4zb_9AjdO22_mxIb72q_BtBKpMtRVDDiDe6iIZx4KYNs4MIniEILeZl_W3Dqjav8LGdh3xdxeZ3OhCMTbtnbIwLMvvHILzOpBC3LvnE7rPA9W4sXLwla4pNNDSUEUx6YJGpBPDuQwcv4Eam9QtQXfElXAfPt6NnEG00OKnzL2q6qErYd-9hfw4p7OuynR6tGCqzTaFTeTNNrlrC2plqK71R9nLkRqlI4uv4WkEmi4VkfQzrgFWoARBBXiXpAIxJRXSRYA&h=NnsWgYqorqAdUu7Ljo6xpNyvxtrZTrZqp4O0UVPZo0A","Cache-Control":"no-cache","Content-Length":"1432","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:58:44 GMT","ETag":"\"86009257-0000-1000-0000-69ac91840000\"","Expires":"-1","mise-correlation-id":"e01d8c0e-aac4-43d3-aa42-659f0ec0a61d","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","x-azure-ref":"Sanitized","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-async-operation-timeout":"P6D","x-ms-build-version":"1","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"8619fe2f-ae13-4a14-a112-357c4902502b","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/2bd8b485-bec0-4378-b115-47b406726fc1","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-writes":"799","x-ms-request-id":"096aaa8e-e2e6-48cf-94c2-35b22b21526b","x-ms-resource-provider-hint":"noPolling","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205845Z:8619fe2f-ae13-4a14-a112-357c4902502b","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: B03A9C669BCA4E4E90AECC775880F6DC Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:58:42Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","name":"test-tool-dotnet01","type":"microsoft.discovery/tools","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:37:55.7026424Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:58:43.455887Z"},"properties":{"version":"1.0.0","definitionContent":{"name":"molpredictor","description":"Molecular property prediction for single SMILES strings.","version":"1.0.0","category":"cheminformatics","license":"MIT","infra":[{"name":"worker","infra_type":"container","image":{"acr":"demodiscoveryacr.azurecr.io/molpredictor:latest"},"compute":{"min_resources":{"cpu":"1","ram":"1Gi","storage":"32","gpu":"0"},"max_resources":{"cpu":"2","ram":"1Gi","storage":"64","gpu":"0"},"recommended_sku":["Standard_D4s_v6"],"pool_type":"static","pool_size":1}}],"actions":[{"name":"predict","description":"Predict molecular properties for SMILES strings.","input_schema":{"type":"object","properties":{"action":{"type":"string","description":"The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]"}},"required":["action"]},"command":"python molpredictor.py --action {{ action }}","infra_node":"worker"}]},"environmentVariables":{},"provisioningState":"Accepted"}}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085139255651527&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=nah_m47II0v-SsUK-5EIcAB6MfuUXvcN3vMcBEmSQ8S67ouuBfxqwr-4D-e8NxiEq-Q9hUHvcVe6i53HF4zb_9AjdO22_mxIb72q_BtBKpMtRVDDiDe6iIZx4KYNs4MIniEILeZl_W3Dqjav8LGdh3xdxeZ3OhCMTbtnbIwLMvvHILzOpBC3LvnE7rPA9W4sXLwla4pNNDSUEUx6YJGpBPDuQwcv4Eam9QtQXfElXAfPt6NnEG00OKnzL2q6qErYd-9hfw4p7OuynR6tGCqzTaFTeTNNrlrC2plqK71R9nLkRqlI4uv4WkEmi4VkfQzrgFWoARBBXiXpAIxJRXSRYA&h=NnsWgYqorqAdUu7Ljo6xpNyvxtrZTrZqp4O0UVPZo0A","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-097dda7cfd3afdcca703c5baac0c99de-371583aac5177e50-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"546","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 20:58:45 GMT","ETag":"\"1a02c926-0000-1000-0000-69ac91840000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"aa912b95-0fbe-4edd-beec-0d2352d9ec27","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/eea37ac2-97c5-44ce-b1a1-9db35084a6a0","x-ms-ratelimit-remaining-subscription-reads":"1098","x-ms-request-id":"d1408299-4434-48c9-ab5c-13a97aa1b37e","x-ms-routing-request-id":"EASTUS2EUAP:20260307T205845Z:aa912b95-0fbe-4edd-beec-0d2352d9ec27","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 2EC88DA23FEA40BDB5CE0FD81556F952 Ref B: SN4AA2022304047 Ref C: 2026-03-07T20:58:45Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","name":"a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","status":"Accepted","startTime":"2026-03-07T20:58:44.4087885Z"}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085139255651527&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=nah_m47II0v-SsUK-5EIcAB6MfuUXvcN3vMcBEmSQ8S67ouuBfxqwr-4D-e8NxiEq-Q9hUHvcVe6i53HF4zb_9AjdO22_mxIb72q_BtBKpMtRVDDiDe6iIZx4KYNs4MIniEILeZl_W3Dqjav8LGdh3xdxeZ3OhCMTbtnbIwLMvvHILzOpBC3LvnE7rPA9W4sXLwla4pNNDSUEUx6YJGpBPDuQwcv4Eam9QtQXfElXAfPt6NnEG00OKnzL2q6qErYd-9hfw4p7OuynR6tGCqzTaFTeTNNrlrC2plqK71R9nLkRqlI4uv4WkEmi4VkfQzrgFWoARBBXiXpAIxJRXSRYA&h=NnsWgYqorqAdUu7Ljo6xpNyvxtrZTrZqp4O0UVPZo0A","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-097dda7cfd3afdcca703c5baac0c99de-9bfb3bad2e9946f3-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"626","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:00:25 GMT","ETag":"\"1a027c32-0000-1000-0000-69ac91d00000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"3b38a3aa-dbcf-496a-ad8e-7b07dcec4d61","x-ms-operation-identifier":"tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/d29c91dd-0af4-4eca-ac82-eb5e25e6dd5c","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"9b92a807-0b1f-4ad2-8bef-6125ce483c4a","x-ms-routing-request-id":"EASTUS2EUAP:20260307T210026Z:3b38a3aa-dbcf-496a-ad8e-7b07dcec4d61","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 69713C1AF8154643B479666A5FD61830 Ref B: SN4AA2022304047 Ref C: 2026-03-07T21:00:26Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","name":"a0c00b44-84ba-487a-a42d-3c525972b10a*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C","resourceId":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","status":"Succeeded","startTime":"2026-03-07T20:58:44.4087885Z","endTime":"2026-03-07T20:59:59.71836Z","percentComplete":0.0,"properties":null}},{"RequestUri":"https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview","RequestMethod":"GET","RequestHeaders":{"Authorization":"Sanitized","traceparent":"00-097dda7cfd3afdcca703c5baac0c99de-e302dcb904574e01-00","User-Agent":"azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)","x-ms-client-request-id":"Sanitized","x-ms-return-client-request-id":"true"},"RequestBody":null,"StatusCode":200,"ResponseHeaders":{"Cache-Control":"no-cache","Content-Length":"1433","Content-Type":"application/json; charset=utf-8","Date":"Sat, 07 Mar 2026 21:00:26 GMT","ETag":"\"f601e509-0000-1100-0000-69ac91cf0000\"","Expires":"-1","Pragma":"no-cache","Strict-Transport-Security":"max-age=31536000; includeSubDomains","X-Cache":"CONFIG_NOCACHE","X-Content-Type-Options":"nosniff","x-ms-client-request-id":"Sanitized","x-ms-correlation-request-id":"21fe5556-2a2c-40e8-bdfe-faca0b91a380","x-ms-providerhub-traffic":"True","x-ms-ratelimit-remaining-subscription-reads":"1099","x-ms-request-id":"9cd68511-8e47-4310-a578-14f9f039531c","x-ms-routing-request-id":"EASTUS2EUAP:20260307T210027Z:21fe5556-2a2c-40e8-bdfe-faca0b91a380","x-ms-throttling-version":"v2","X-MSEdge-Ref":"Ref A: 63E1DA8908CB454A8639ADF65771F5B8 Ref B: SN4AA2022304047 Ref C: 2026-03-07T21:00:26Z"},"ResponseBody":{"id":"/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01","name":"test-tool-dotnet01","type":"microsoft.discovery/tools","location":"uksouth","tags":{},"systemData":{"createdBy":"Sanitized","createdByType":"User","createdAt":"2026-03-07T20:37:55.7026424Z","lastModifiedBy":"Sanitized","lastModifiedByType":"User","lastModifiedAt":"2026-03-07T20:58:43.455887Z"},"properties":{"version":"1.0.0","definitionContent":{"name":"molpredictor","description":"Molecular property prediction for single SMILES strings.","version":"1.0.0","category":"cheminformatics","license":"MIT","infra":[{"name":"worker","infra_type":"container","image":{"acr":"demodiscoveryacr.azurecr.io/molpredictor:latest"},"compute":{"min_resources":{"cpu":"1","ram":"1Gi","storage":"32","gpu":"0"},"max_resources":{"cpu":"2","ram":"1Gi","storage":"64","gpu":"0"},"recommended_sku":["Standard_D4s_v6"],"pool_type":"static","pool_size":1}}],"actions":[{"name":"predict","description":"Predict molecular properties for SMILES strings.","input_schema":{"type":"object","properties":{"action":{"type":"string","description":"The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]"}},"required":["action"]},"command":"python molpredictor.py --action {{ action }}","infra_node":"worker"}]},"environmentVariables":{},"provisioningState":"Succeeded"}}}],"Variables":{"AZURE_RESOURCE_GROUP_NAME":"olawal","RandomSeed":"26531338","RESOURCE_MANAGER_URL":null,"SUBSCRIPTION_ID":"31b0b6a5-2647-47eb-8a38-7d12047ee8ec"}} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/DeleteTool.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/DeleteTool.json new file mode 100644 index 000000000000..dec1a691adef --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/DeleteTool.json @@ -0,0 +1,340 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-18a180f67bcc098215076178dc3d399e-afe42bb600e9ffa7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1eff7deb-000c-4dd5-a651-4ca41b46bfc8", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1eff7deb-000c-4dd5-a651-4ca41b46bfc8", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222342Z:1eff7deb-000c-4dd5-a651-4ca41b46bfc8", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 778C0459DBFA421C90AB40CD0EE9A3A6 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:42Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-93951f527d5ed7bec49b530c0c7fb090-663305896d7a957e-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:42 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "28284dd8-9a91-44f9-8f4a-8c8e4476184e", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "28284dd8-9a91-44f9-8f4a-8c8e4476184e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222342Z:28284dd8-9a91-44f9-8f4a-8c8e4476184e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F2801F29E1914FD1A9B00ACFAA2C8B2D Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:42Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-0f0739562012056adb505b1e1535b107-e81a0373f92fa957-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1433", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:42 GMT", + "ETag": "\"f601e509-0000-1100-0000-69ac91cf0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fc93b223-0c5a-4d49-9da8-11e66b3fb009", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ce19d5b2-8cdb-43cb-8cde-398ec4592772", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222343Z:fc93b223-0c5a-4d49-9da8-11e66b3fb009", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0E24FCDBAE0D434296EAD9850D9AB899 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:43Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c09782f3e63e7c43b0bb940c923a293a-565f3c01aa911420-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190267417242&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LHBBEXRbDw3HGerP7PjHXEOC7LCYVdPB1gNjLYR-_f75wl4LBgNnkilw-4_kVtvPM1r61FQu3LnyPtAFMcUlZUzr-IiuUoQDF-8k-reZrSRL4vok2A7qX8dw76Kd1x1JUpSQ37LucZQ3cyeLYhLw2IaUU4TUnAhPifUqhQ5-7syLhGXXQkT9c8I4D9Y-fC5nfaFeUSuz8VHPecPS6Zmppdy4FgWlxBPuzH6iY8ZuiSytYZjh_qFANIN33Loxuq2zlX3L4TVzWjR2C91fuDOmPKUj_DcHa-wiw_9JD2zBD3H9efdssBPDnXlUt3Olg51p_ecfJOjPBLHN2DdhtviiVA&h=UbBoRm997TyL71KWVdMfyiMimVAPfEpt0TcAMNHF8cE", + "Cache-Control": "no-cache", + "Content-Length": "4", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:45 GMT", + "ETag": "\"8600c697-0000-1000-0000-69aca5710000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190267573540&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=g_mDpOzwjPx5kxSdDCa8PahsvXKca31-yGU1goLF87lgvXwdiI94fWfaSKONIT3Jhb1k6CMQTZAcnE8WipPHernGjElUlK65OnBgL1rAzyq53_xLZQOeMRkvJd9bK55bzuKFqAohuWbGfv6yQx8DTIc3I_pYhm1a7U4evrPQ00Kpn8UEaHkjfgM_FTU7osXghE32trD5O_n_3BtpZuSUd7CbX0suXlSupUuX9HSp-Ucb6iQLEdDAn6PmcjsNbGYBXseymHBDWj3vpGyMDSBempn5aU3xehgJT4EmYXgSnhe8bbRHpH8oVaZeE01mYbUXyZJKRuI3xHXDdwRgLyUcEQ&h=9vQuX-M1FfQfuH_QZRXmltLatYxn7pkIj-0yfQSQdAY", + "mise-correlation-id": "69a7c267-6991-4fc4-97aa-c77bb143ed9d", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "70bcf9ed-94c1-497c-926e-5ebff5db2bbf", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/99b5fc38-915d-44a7-b26c-bc7d9047c45f", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-deletes": "799", + "x-ms-request-id": "1fa28bac-7e03-47bd-af0e-05a87fd1b79e", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222346Z:70bcf9ed-94c1-497c-926e-5ebff5db2bbf", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5BAE06F996B84BCEA3009459147892AF Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:43Z" + }, + "ResponseBody": "null" + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190267417242&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LHBBEXRbDw3HGerP7PjHXEOC7LCYVdPB1gNjLYR-_f75wl4LBgNnkilw-4_kVtvPM1r61FQu3LnyPtAFMcUlZUzr-IiuUoQDF-8k-reZrSRL4vok2A7qX8dw76Kd1x1JUpSQ37LucZQ3cyeLYhLw2IaUU4TUnAhPifUqhQ5-7syLhGXXQkT9c8I4D9Y-fC5nfaFeUSuz8VHPecPS6Zmppdy4FgWlxBPuzH6iY8ZuiSytYZjh_qFANIN33Loxuq2zlX3L4TVzWjR2C91fuDOmPKUj_DcHa-wiw_9JD2zBD3H9efdssBPDnXlUt3Olg51p_ecfJOjPBLHN2DdhtviiVA&h=UbBoRm997TyL71KWVdMfyiMimVAPfEpt0TcAMNHF8cE", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c09782f3e63e7c43b0bb940c923a293a-f702f8d63bd93d0e-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190270664234&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=J8Ol0HWDMEdbjYrLwzG3PuikNTeW3b1ZVsuCXvtsveB7XufqJCBqz4qaMEdd1iY0MuXAmul7_RtIazjSsu_8agUnUlS0cS-ItauZBG0NPh8KlW7Vg2SED4CeDdwVaIyJgSLMtJt0nf6aidsLdz-XuhmeDj-A2GE-kQelCRJzK19AJzlYkw6GJY8L8HxzghymQzOcqwZUDFgg6WlAxsmsjAqJeAt6ydNfa_kbUJJrGTn-TDXQcD8ufWAXsxU_jJpeMTNRuprlnKDUYOK-JPd1PYjwlAgj2_osUdauKwh_PRu_H6tm2DMR6KHgZdqOBXWzFAXm8ZUtupsX1_jqPMr_fg&h=tw2Aj9FOhCq6gPLeufygKCQEntoKC9xSNAETzllAPL8", + "Cache-Control": "no-cache", + "Content-Length": "546", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:46 GMT", + "ETag": "\"1d02d544-0000-1000-0000-69aca5710000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190270664234&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=J8Ol0HWDMEdbjYrLwzG3PuikNTeW3b1ZVsuCXvtsveB7XufqJCBqz4qaMEdd1iY0MuXAmul7_RtIazjSsu_8agUnUlS0cS-ItauZBG0NPh8KlW7Vg2SED4CeDdwVaIyJgSLMtJt0nf6aidsLdz-XuhmeDj-A2GE-kQelCRJzK19AJzlYkw6GJY8L8HxzghymQzOcqwZUDFgg6WlAxsmsjAqJeAt6ydNfa_kbUJJrGTn-TDXQcD8ufWAXsxU_jJpeMTNRuprlnKDUYOK-JPd1PYjwlAgj2_osUdauKwh_PRu_H6tm2DMR6KHgZdqOBXWzFAXm8ZUtupsX1_jqPMr_fg&h=tw2Aj9FOhCq6gPLeufygKCQEntoKC9xSNAETzllAPL8", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ef043d1d-1450-44f5-8cb8-f0971f912461", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/1d3ba3df-3bad-4f7d-b11b-fa3e0b607dca", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "cbe116f5-e55e-498d-87a1-fa25ea7e766f", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222347Z:ef043d1d-1450-44f5-8cb8-f0971f912461", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0B572090FBFE4E90883EF965C37ED4D9 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:46Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:23:45.7523174Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190270664234&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=J8Ol0HWDMEdbjYrLwzG3PuikNTeW3b1ZVsuCXvtsveB7XufqJCBqz4qaMEdd1iY0MuXAmul7_RtIazjSsu_8agUnUlS0cS-ItauZBG0NPh8KlW7Vg2SED4CeDdwVaIyJgSLMtJt0nf6aidsLdz-XuhmeDj-A2GE-kQelCRJzK19AJzlYkw6GJY8L8HxzghymQzOcqwZUDFgg6WlAxsmsjAqJeAt6ydNfa_kbUJJrGTn-TDXQcD8ufWAXsxU_jJpeMTNRuprlnKDUYOK-JPd1PYjwlAgj2_osUdauKwh_PRu_H6tm2DMR6KHgZdqOBXWzFAXm8ZUtupsX1_jqPMr_fg&h=tw2Aj9FOhCq6gPLeufygKCQEntoKC9xSNAETzllAPL8", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c09782f3e63e7c43b0bb940c923a293a-d66a8d3f25f03e30-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:47 GMT", + "ETag": "\"1d020845-0000-1000-0000-69aca5730000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "3e7b41bf-ca95-4a03-8062-49d02c6e9586", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/22366a1f-f65b-4354-99cf-c33a7db20e3a", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "5e0c3b93-af11-4a31-8edc-183ceb176ff1", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222348Z:3e7b41bf-ca95-4a03-8062-49d02c6e9586", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 52EEA54A73F7468AB791624A2D466E2A Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:48Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-07T22:23:45.7523174Z", + "endTime": "2026-03-07T22:23:46.5117244Z", + "percentComplete": 0.0, + "properties": null + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "925016242", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/DeleteToolAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/DeleteToolAsync.json new file mode 100644 index 000000000000..dec1a691adef --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/DeleteToolAsync.json @@ -0,0 +1,340 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-18a180f67bcc098215076178dc3d399e-afe42bb600e9ffa7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:41 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1eff7deb-000c-4dd5-a651-4ca41b46bfc8", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1eff7deb-000c-4dd5-a651-4ca41b46bfc8", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222342Z:1eff7deb-000c-4dd5-a651-4ca41b46bfc8", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 778C0459DBFA421C90AB40CD0EE9A3A6 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:42Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-93951f527d5ed7bec49b530c0c7fb090-663305896d7a957e-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:42 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "28284dd8-9a91-44f9-8f4a-8c8e4476184e", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "28284dd8-9a91-44f9-8f4a-8c8e4476184e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222342Z:28284dd8-9a91-44f9-8f4a-8c8e4476184e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: F2801F29E1914FD1A9B00ACFAA2C8B2D Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:42Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-0f0739562012056adb505b1e1535b107-e81a0373f92fa957-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1433", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:42 GMT", + "ETag": "\"f601e509-0000-1100-0000-69ac91cf0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fc93b223-0c5a-4d49-9da8-11e66b3fb009", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ce19d5b2-8cdb-43cb-8cde-398ec4592772", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222343Z:fc93b223-0c5a-4d49-9da8-11e66b3fb009", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0E24FCDBAE0D434296EAD9850D9AB899 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:43Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c09782f3e63e7c43b0bb940c923a293a-565f3c01aa911420-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190267417242&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LHBBEXRbDw3HGerP7PjHXEOC7LCYVdPB1gNjLYR-_f75wl4LBgNnkilw-4_kVtvPM1r61FQu3LnyPtAFMcUlZUzr-IiuUoQDF-8k-reZrSRL4vok2A7qX8dw76Kd1x1JUpSQ37LucZQ3cyeLYhLw2IaUU4TUnAhPifUqhQ5-7syLhGXXQkT9c8I4D9Y-fC5nfaFeUSuz8VHPecPS6Zmppdy4FgWlxBPuzH6iY8ZuiSytYZjh_qFANIN33Loxuq2zlX3L4TVzWjR2C91fuDOmPKUj_DcHa-wiw_9JD2zBD3H9efdssBPDnXlUt3Olg51p_ecfJOjPBLHN2DdhtviiVA&h=UbBoRm997TyL71KWVdMfyiMimVAPfEpt0TcAMNHF8cE", + "Cache-Control": "no-cache", + "Content-Length": "4", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:45 GMT", + "ETag": "\"8600c697-0000-1000-0000-69aca5710000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190267573540&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=g_mDpOzwjPx5kxSdDCa8PahsvXKca31-yGU1goLF87lgvXwdiI94fWfaSKONIT3Jhb1k6CMQTZAcnE8WipPHernGjElUlK65OnBgL1rAzyq53_xLZQOeMRkvJd9bK55bzuKFqAohuWbGfv6yQx8DTIc3I_pYhm1a7U4evrPQ00Kpn8UEaHkjfgM_FTU7osXghE32trD5O_n_3BtpZuSUd7CbX0suXlSupUuX9HSp-Ucb6iQLEdDAn6PmcjsNbGYBXseymHBDWj3vpGyMDSBempn5aU3xehgJT4EmYXgSnhe8bbRHpH8oVaZeE01mYbUXyZJKRuI3xHXDdwRgLyUcEQ&h=9vQuX-M1FfQfuH_QZRXmltLatYxn7pkIj-0yfQSQdAY", + "mise-correlation-id": "69a7c267-6991-4fc4-97aa-c77bb143ed9d", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "70bcf9ed-94c1-497c-926e-5ebff5db2bbf", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/99b5fc38-915d-44a7-b26c-bc7d9047c45f", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-deletes": "799", + "x-ms-request-id": "1fa28bac-7e03-47bd-af0e-05a87fd1b79e", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222346Z:70bcf9ed-94c1-497c-926e-5ebff5db2bbf", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5BAE06F996B84BCEA3009459147892AF Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:43Z" + }, + "ResponseBody": "null" + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190267417242&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=LHBBEXRbDw3HGerP7PjHXEOC7LCYVdPB1gNjLYR-_f75wl4LBgNnkilw-4_kVtvPM1r61FQu3LnyPtAFMcUlZUzr-IiuUoQDF-8k-reZrSRL4vok2A7qX8dw76Kd1x1JUpSQ37LucZQ3cyeLYhLw2IaUU4TUnAhPifUqhQ5-7syLhGXXQkT9c8I4D9Y-fC5nfaFeUSuz8VHPecPS6Zmppdy4FgWlxBPuzH6iY8ZuiSytYZjh_qFANIN33Loxuq2zlX3L4TVzWjR2C91fuDOmPKUj_DcHa-wiw_9JD2zBD3H9efdssBPDnXlUt3Olg51p_ecfJOjPBLHN2DdhtviiVA&h=UbBoRm997TyL71KWVdMfyiMimVAPfEpt0TcAMNHF8cE", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c09782f3e63e7c43b0bb940c923a293a-f702f8d63bd93d0e-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190270664234&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=J8Ol0HWDMEdbjYrLwzG3PuikNTeW3b1ZVsuCXvtsveB7XufqJCBqz4qaMEdd1iY0MuXAmul7_RtIazjSsu_8agUnUlS0cS-ItauZBG0NPh8KlW7Vg2SED4CeDdwVaIyJgSLMtJt0nf6aidsLdz-XuhmeDj-A2GE-kQelCRJzK19AJzlYkw6GJY8L8HxzghymQzOcqwZUDFgg6WlAxsmsjAqJeAt6ydNfa_kbUJJrGTn-TDXQcD8ufWAXsxU_jJpeMTNRuprlnKDUYOK-JPd1PYjwlAgj2_osUdauKwh_PRu_H6tm2DMR6KHgZdqOBXWzFAXm8ZUtupsX1_jqPMr_fg&h=tw2Aj9FOhCq6gPLeufygKCQEntoKC9xSNAETzllAPL8", + "Cache-Control": "no-cache", + "Content-Length": "546", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:46 GMT", + "ETag": "\"1d02d544-0000-1000-0000-69aca5710000\"", + "Expires": "-1", + "Location": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190270664234&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=J8Ol0HWDMEdbjYrLwzG3PuikNTeW3b1ZVsuCXvtsveB7XufqJCBqz4qaMEdd1iY0MuXAmul7_RtIazjSsu_8agUnUlS0cS-ItauZBG0NPh8KlW7Vg2SED4CeDdwVaIyJgSLMtJt0nf6aidsLdz-XuhmeDj-A2GE-kQelCRJzK19AJzlYkw6GJY8L8HxzghymQzOcqwZUDFgg6WlAxsmsjAqJeAt6ydNfa_kbUJJrGTn-TDXQcD8ufWAXsxU_jJpeMTNRuprlnKDUYOK-JPd1PYjwlAgj2_osUdauKwh_PRu_H6tm2DMR6KHgZdqOBXWzFAXm8ZUtupsX1_jqPMr_fg&h=tw2Aj9FOhCq6gPLeufygKCQEntoKC9xSNAETzllAPL8", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "ef043d1d-1450-44f5-8cb8-f0971f912461", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/1d3ba3df-3bad-4f7d-b11b-fa3e0b607dca", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "cbe116f5-e55e-498d-87a1-fa25ea7e766f", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222347Z:ef043d1d-1450-44f5-8cb8-f0971f912461", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0B572090FBFE4E90883EF965C37ED4D9 Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:46Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Deleting", + "startTime": "2026-03-07T22:23:45.7523174Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085190270664234&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=J8Ol0HWDMEdbjYrLwzG3PuikNTeW3b1ZVsuCXvtsveB7XufqJCBqz4qaMEdd1iY0MuXAmul7_RtIazjSsu_8agUnUlS0cS-ItauZBG0NPh8KlW7Vg2SED4CeDdwVaIyJgSLMtJt0nf6aidsLdz-XuhmeDj-A2GE-kQelCRJzK19AJzlYkw6GJY8L8HxzghymQzOcqwZUDFgg6WlAxsmsjAqJeAt6ydNfa_kbUJJrGTn-TDXQcD8ufWAXsxU_jJpeMTNRuprlnKDUYOK-JPd1PYjwlAgj2_osUdauKwh_PRu_H6tm2DMR6KHgZdqOBXWzFAXm8ZUtupsX1_jqPMr_fg&h=tw2Aj9FOhCq6gPLeufygKCQEntoKC9xSNAETzllAPL8", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c09782f3e63e7c43b0bb940c923a293a-d66a8d3f25f03e30-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:23:47 GMT", + "ETag": "\"1d020845-0000-1000-0000-69aca5730000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "3e7b41bf-ca95-4a03-8062-49d02c6e9586", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/22366a1f-f65b-4354-99cf-c33a7db20e3a", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "5e0c3b93-af11-4a31-8edc-183ceb176ff1", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T222348Z:3e7b41bf-ca95-4a03-8062-49d02c6e9586", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 52EEA54A73F7468AB791624A2D466E2A Ref B: SN4AA2022303009 Ref C: 2026-03-07T22:23:48Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/uksouth/operationStatuses/39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "39256ade-cd05-454d-955b-be71dd2f4bbf*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-07T22:23:45.7523174Z", + "endTime": "2026-03-07T22:23:46.5117244Z", + "percentComplete": 0.0, + "properties": null + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "925016242", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/GetTool.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/GetTool.json new file mode 100644 index 000000000000..84cce8855a68 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/GetTool.json @@ -0,0 +1,212 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c0860071a51e1b41605dd425eb9dfd88-74e4ef76de53ce7e-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "664cd08f-d967-4318-9ccb-7bf98901da6b", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "664cd08f-d967-4318-9ccb-7bf98901da6b", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221317Z:664cd08f-d967-4318-9ccb-7bf98901da6b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6EA3762FCEAE4F0EB13DC739702B1493 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:16Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-c1749445eb8751dc251affa6e14b4965-b65f1c2d06d86164-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:16 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "4ba2b6f0-38ea-43d7-9a6f-0c3844950513", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "4ba2b6f0-38ea-43d7-9a6f-0c3844950513", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221317Z:4ba2b6f0-38ea-43d7-9a6f-0c3844950513", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 6C82FFFD9698434C8457B2424161A0B9 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:17Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fc22ad853bdafe4fa10d433dcba95479-6cf0fe339cc4e4d4-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1433", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:17 GMT", + "ETag": "\"f601e509-0000-1100-0000-69ac91cf0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "b7443ec3-1f94-431d-9ebe-a0219cd6ee54", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1097", + "x-ms-request-id": "2ac9618b-5b70-4a6d-ac04-fbf42f0a473c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221318Z:b7443ec3-1f94-431d-9ebe-a0219cd6ee54", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: E8D032BC54CC46248E71E70026A9200E Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:17Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_TOOL_NAME": "test-tool-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "2048441696", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/GetToolAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/GetToolAsync.json new file mode 100644 index 000000000000..a4acf1d5c14b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/GetToolAsync.json @@ -0,0 +1,212 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-00366a2708da100ce5df2e01e311b621-4f3e0ebdc2db55e5-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "c31bf05e-9749-42ca-8fba-cbe47771625c", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "c31bf05e-9749-42ca-8fba-cbe47771625c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221408Z:c31bf05e-9749-42ca-8fba-cbe47771625c", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B66CE3C0526644D09E1F6CC124E0CC52 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:08Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-dc90c50a20c0d4c122e1345888304ce0-157a2aa6cd42a6fa-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:07 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "ec7f3c5c-6447-489c-819c-f55205154a9f", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "ec7f3c5c-6447-489c-819c-f55205154a9f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221408Z:ec7f3c5c-6447-489c-819c-f55205154a9f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C5B11E91AACC4F7797A81AB25CAD147A Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:08Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-e5dcba13c7a51211765e7c96eba229cb-6ed793f8db031ae1-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1433", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:08 GMT", + "ETag": "\"f601e509-0000-1100-0000-69ac91cf0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "70665c18-8d00-46cb-86cb-a79e6ce219e1", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "968c72db-2fa9-481f-b529-da813cb4aea5", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221409Z:70665c18-8d00-46cb-86cb-a79e6ce219e1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: A5709CF737A948A08C5AD4BE5FBC19A8 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:08Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_TOOL_NAME": "test-tool-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1125476443", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsByResourceGroup.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsByResourceGroup.json new file mode 100644 index 000000000000..30a05be5475d --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsByResourceGroup.json @@ -0,0 +1,295 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f49fd790b83fe69204c5a76c7e843ace-84ecdd131881e763-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "5f5bf84c-a50f-41aa-848f-5509d321ee95", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "5f5bf84c-a50f-41aa-848f-5509d321ee95", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221335Z:5f5bf84c-a50f-41aa-848f-5509d321ee95", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 28331C7CAF5449818CDC79F4D5DF07FF Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:35Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-2582574e7546b7f3c7e25b62643051a0-5499c1edd641ac05-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:34 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "e2966d54-eae2-4dcc-ac77-94026c04e51e", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "e2966d54-eae2-4dcc-ac77-94026c04e51e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221335Z:e2966d54-eae2-4dcc-ac77-94026c04e51e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 86864C0C7DEA4699AC1349863BD45D65 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:35Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-e6931761826e3194be91890074511058-29f8583e56417774-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2880", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:36 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "a6266ea2-3ba9-4e6d-816f-996e3ee1ba20", + "x-ms-original-request-ids": [ + "f2812c0c-18c6-4544-bf8d-a6a48aa8db35", + "477ed2eb-f028-47f8-945a-99e5e9904637", + "34432652-bf24-4ef1-984e-b8188f8f14b4", + "26958f5a-e332-410b-beea-da33166980d7", + "b1a28084-0933-42dd-9cbe-ef908e5de01e", + "6d91eb43-428e-4763-8360-bcdb8633afce" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "a6266ea2-3ba9-4e6d-816f-996e3ee1ba20", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221337Z:a6266ea2-3ba9-4e6d-816f-996e3ee1ba20", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C8CD3DA40B9F44B69B2F57161D2B1EA1 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:35Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-50d87c62", + "name": "test-tool-50d87c62", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:59:40.0258391Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:59:40.0258391Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "2066312446", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsByResourceGroupAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsByResourceGroupAsync.json new file mode 100644 index 000000000000..350f726f1fd8 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsByResourceGroupAsync.json @@ -0,0 +1,295 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-65ae8708a5ec734feb88964a51b3f3e6-d940aeeb9927cbe6-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "9ba710c5-66bf-4640-b443-0c99389b6995", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "9ba710c5-66bf-4640-b443-0c99389b6995", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221423Z:9ba710c5-66bf-4640-b443-0c99389b6995", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 73B6105281D94FBF9D2B1D029899C76F Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:23Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-8b85f23627a142e2e43528a48a3ef73b-66204f54f297c810-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:22 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "d32ca0b4-bfa2-405c-b6b1-797a0e8dc575", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "d32ca0b4-bfa2-405c-b6b1-797a0e8dc575", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221423Z:d32ca0b4-bfa2-405c-b6b1-797a0e8dc575", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D019711F962F430C892E513081A49C70 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:23Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-0e6dd0e55f2308bce2c779a2e97b70b3-08d5ac968fbace98-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "2880", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:23 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1ccf4940-5e96-469e-bc93-686887e9ac65", + "x-ms-original-request-ids": [ + "4b87f155-9516-49e2-b4a4-6d38defa0713", + "40b9f79a-ca77-4741-8bbe-d31a050284c8", + "89480028-10d3-4ab0-9c4d-d9d9d3610dd1", + "5758e00c-7f2f-4b68-9e23-da312884105f", + "08535472-2f6c-4200-9f9a-9e1f3c8d23a6", + "dd5ac52a-e3be-4cce-9cb5-bf0476d0aa87" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1ccf4940-5e96-469e-bc93-686887e9ac65", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221424Z:1ccf4940-5e96-469e-bc93-686887e9ac65", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 54E3FACC2EA34FC284DF7F47ED21475A Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:23Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-50d87c62", + "name": "test-tool-50d87c62", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:59:40.0258391Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:59:40.0258391Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "661055308", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsBySubscription.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsBySubscription.json new file mode 100644 index 000000000000..d9bd0a2a4d49 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsBySubscription.json @@ -0,0 +1,1770 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-8bbb60b6d5e931fe767671e98f486c03-edee291ac94d4be0-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:52 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b400d144-8014-444b-bd90-3e61e03fe88d", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b400d144-8014-444b-bd90-3e61e03fe88d", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221353Z:b400d144-8014-444b-bd90-3e61e03fe88d", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 02ED83E298B04F17939E7842D556B7B1 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:53Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/tools?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-d784f84d2159c4719b20c502d65d3a42-f62de3950b64dda7-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "41913", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:13:53 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "449e2bb7-8781-44c8-9527-79043d2dacec", + "x-ms-original-request-ids": [ + "36697c28-bef3-474e-9bbc-40fb3ff27f36", + "febf04a1-dae4-4649-bcdb-e9d2bafbb57a", + "ffc511f6-6ed6-4ece-80a4-94f604fa98d6", + "6717503f-abcb-4720-b92c-ca1e34551645", + "18df0ccf-b926-4a31-96ce-8d14a9a1ea2b", + "225b1c8f-2a8c-4c57-a376-a8f9d3873516" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "449e2bb7-8781-44c8-9527-79043d2dacec", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221354Z:449e2bb7-8781-44c8-9527-79043d2dacec", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 69BDE215F0454E5F8EFB33C4C0836380 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:13:53Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-devslice-uksouth/providers/Microsoft.Discovery/tools/itmolptluks1", + "name": "itmolptluks1", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-09-16T11:09:11.8986542Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2025-09-16T11:18:07.8437828Z" + }, + "properties": { + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itmolptlrp114", + "name": "itmolptlrp114", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:40:15.3174601Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:49:16.0537055Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtlrp114", + "name": "itcorpythtlrp114", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:40:39.3470173Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:48:18.2325096Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/ittestiotlrp114", + "name": "ittestiotlrp114", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:41:02.0050284Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:48:19.5365998Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "testiotool", + "description": "This tool is used to test inline files and output mount configurations.", + "version": "1.0.0", + "category": "testing", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/testiotool:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "2Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "test_inline_and_output", + "description": "Test action to validate inline file input and output mount functionality.", + "input_schema": { + "type": "object", + "properties": { + "test_inline_file": { + "type": "string", + "description": "This is a test inline file, you should provide some dummy text" + } + }, + "required": [ + "test_inline_file" + ] + }, + "command": "python test_io_script.py", + "inline_files": [ + { + "mount_path": "/app/input/test_file.txt", + "content": "{{{ test_inline_file }}}" + } + ], + "output_mount_configurations": [ + { + "mount_path": "/app/outputs/", + "auto_promote": true, + "output_name": "testiooutput", + "output_description": "Test output files generated from processing the inline input file" + } + ], + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/molpredictor4h74wc", + "name": "molpredictor4h74wc", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-12T20:02:50.7457408Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-12T20:03:17.4513262Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtl4h74wc", + "name": "itcorpythtl4h74wc", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-12T20:02:50.8238918Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-12T20:03:53.4456326Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtlpujupx", + "name": "itcorpythtlpujupx", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T17:13:37.8488789Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-13T17:14:12.587767Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/molpredictorpujupx", + "name": "molpredictorpujupx", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T17:13:38.3175742Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-13T17:13:58.3227152Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtlhjyoch", + "name": "itcorpythtlhjyoch", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-14T01:12:40.1293186Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-14T01:13:00.4649916Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/molpredictorhjyoch", + "name": "molpredictorhjyoch", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-14T01:12:40.4886867Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-14T01:13:14.7006469Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/testukstool", + "name": "testukstool", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-26T02:02:25.3606852Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-26T02:02:25.3606852Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-50d87c62", + "name": "test-tool-50d87c62", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:59:40.0258391Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:59:40.0258391Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/umamm-wksp-test-0305/providers/Microsoft.Discovery/tools/itmolptlnw0305b", + "name": "itmolptlnw0305b", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T03:19:34.9804976Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T03:57:45.4316122Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/umamm-wksp-test-0305/providers/Microsoft.Discovery/tools/itcorpythtlnw0305b", + "name": "itcorpythtlnw0305b", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T03:58:51.2936362Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T04:46:11.7245688Z" + }, + "properties": { + "version": "1.0.0-patched", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "DUMMY_VAR": "unused_value" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/umamm-wksp-test-0305/providers/Microsoft.Discovery/tools/ittestiotlnw0305b", + "name": "ittestiotlnw0305b", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T03:59:55.9003288Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T03:59:55.9003288Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "testiotool", + "description": "This tool is used to test inline files and output mount configurations.", + "version": "1.0.0", + "category": "testing", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/testiotool:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "2Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "test_inline_and_output", + "description": "Test action to validate inline file input and output mount functionality.", + "input_schema": { + "type": "object", + "properties": { + "test_inline_file": { + "type": "string", + "description": "This is a test inline file, you should provide some dummy text" + } + }, + "required": [ + "test_inline_file" + ] + }, + "command": "python test_io_script.py", + "inline_files": [ + { + "mount_path": "/app/input/test_file.txt", + "content": "{{{ test_inline_file }}}" + } + ], + "output_mount_configurations": [ + { + "mount_path": "/app/outputs/", + "auto_promote": true, + "output_name": "testiooutput", + "output_description": "Test output files generated from processing the inline input file" + } + ], + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-sdronavalli/providers/Microsoft.Discovery/tools/itmolptlsdr07", + "name": "itmolptlsdr07", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-03-06T21:32:06.3377546Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-06T21:47:03.0676495Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-sdronavalli/providers/Microsoft.Discovery/tools/itcorpythtlsdr07", + "name": "itcorpythtlsdr07", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-03-06T21:33:21.168418Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-06T21:43:36.7033285Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-sdronavalli/providers/Microsoft.Discovery/tools/ittestiotlsdr07", + "name": "ittestiotlsdr07", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-03-06T21:34:55.7586326Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-06T21:43:37.0512281Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "testiotool", + "description": "This tool is used to test inline files and output mount configurations.", + "version": "1.0.0", + "category": "testing", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/testiotool:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "2Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "test_inline_and_output", + "description": "Test action to validate inline file input and output mount functionality.", + "input_schema": { + "type": "object", + "properties": { + "test_inline_file": { + "type": "string", + "description": "This is a test inline file, you should provide some dummy text" + } + }, + "required": [ + "test_inline_file" + ] + }, + "command": "python test_io_script.py", + "inline_files": [ + { + "mount_path": "/app/input/test_file.txt", + "content": "{{{ test_inline_file }}}" + } + ], + "output_mount_configurations": [ + { + "mount_path": "/app/outputs/", + "auto_promote": true, + "output_name": "testiooutput", + "output_description": "Test output files generated from processing the inline input file" + } + ], + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/tooltestpublicprev2", + "name": "tooltestpublicprev2", + "type": "microsoft.discovery/tools", + "location": "eastus2euap", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-27T21:13:22.6154699Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-27T21:13:22.6154699Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/bookshelf-indexing-eastus2/providers/Microsoft.Discovery/tools/indexing-prod", + "name": "indexing-prod", + "type": "microsoft.discovery/tools", + "location": "eastus2", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2025-08-22T17:39:43.5552623Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2025-08-22T18:10:26.5363936Z" + }, + "properties": { + "environmentVariables": {}, + "version": "0.0.1", + "definitionContent": { + "name": "bookshelf", + "version": "1.0", + "infra": [ + { + "name": "indexing", + "image": { + "acr": "acrbslftestprod.azurecr.io/bookshelf-indexing-service:3902098" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "4Gi", + "gpu": 0 + }, + "max_resources": { + "cpu": "4", + "ram": "8Gi", + "gpu": 0 + } + } + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/bookshelf-indexing-eastus2/providers/Microsoft.Discovery/tools/indexing-canary", + "name": "indexing-canary", + "type": "microsoft.discovery/tools", + "location": "eastus2", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2025-08-22T17:42:21.2183803Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2025-08-22T17:42:21.2183803Z" + }, + "properties": { + "environmentVariables": {}, + "version": "0.0.1", + "definitionContent": { + "name": "bookshelf", + "version": "1.0", + "infra": [ + { + "name": "indexing", + "image": { + "acr": "acrbslftestprod.azurecr.io/bookshelf-indexing-service-canary:3908498" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "4Gi", + "gpu": 0 + }, + "max_resources": { + "cpu": "4", + "ram": "8Gi", + "gpu": 0 + } + } + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/testeustool", + "name": "testeustool", + "type": "microsoft.discovery/tools", + "location": "eastus", + "tags": {}, + "systemData": { + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-26T02:07:20.087512Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/tooltestpublicprev4", + "name": "tooltestpublicprev4", + "type": "microsoft.discovery/tools", + "location": "eastus", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-27T21:16:19.3888378Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-27T21:16:19.3888378Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "134586722", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsBySubscriptionAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsBySubscriptionAsync.json new file mode 100644 index 000000000000..b8981bc2649f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/ListToolsBySubscriptionAsync.json @@ -0,0 +1,1770 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-5c9927aae21ed67137d5204e9c63d3e3-d3b43270cae6da56-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:36 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1dcbae9a-d1fd-43f5-b8d5-e0236261ca6b", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1dcbae9a-d1fd-43f5-b8d5-e0236261ca6b", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221436Z:1dcbae9a-d1fd-43f5-b8d5-e0236261ca6b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B4B834A18F7247F1A4868700F220F5B6 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:36Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/tools?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-6cce8061a856cbed20440495e28f7e20-f781bfe8780efec0-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "41913", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sat, 07 Mar 2026 22:14:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "cc558880-feaf-4d3c-af8e-ad97c8dceb6c", + "x-ms-original-request-ids": [ + "ff9fa5f3-6372-4b90-8c9f-52fbeabb7981", + "98d96cd7-cc7f-4c1d-b3e7-a971ad5dac10", + "3adaa9fd-8384-4b72-8967-476b152a10de", + "26be1d57-7eb6-4acf-a5dd-e6d46a264ece", + "52d38ea2-7e6a-479f-a1be-cb90c2e0644e", + "ce146a79-fc7e-4424-a04d-d48b440b85fe" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "cc558880-feaf-4d3c-af8e-ad97c8dceb6c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260307T221437Z:cc558880-feaf-4d3c-af8e-ad97c8dceb6c", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B1C710A600F24D1EA2F265B0A149C378 Ref B: SN4AA2022305017 Ref C: 2026-03-07T22:14:37Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-devslice-uksouth/providers/Microsoft.Discovery/tools/itmolptluks1", + "name": "itmolptluks1", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2025-09-16T11:09:11.8986542Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2025-09-16T11:18:07.8437828Z" + }, + "properties": { + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itmolptlrp114", + "name": "itmolptlrp114", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:40:15.3174601Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:49:16.0537055Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtlrp114", + "name": "itcorpythtlrp114", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:40:39.3470173Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:48:18.2325096Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/ittestiotlrp114", + "name": "ittestiotlrp114", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:41:02.0050284Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:48:19.5365998Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "testiotool", + "description": "This tool is used to test inline files and output mount configurations.", + "version": "1.0.0", + "category": "testing", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/testiotool:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "2Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "test_inline_and_output", + "description": "Test action to validate inline file input and output mount functionality.", + "input_schema": { + "type": "object", + "properties": { + "test_inline_file": { + "type": "string", + "description": "This is a test inline file, you should provide some dummy text" + } + }, + "required": [ + "test_inline_file" + ] + }, + "command": "python test_io_script.py", + "inline_files": [ + { + "mount_path": "/app/input/test_file.txt", + "content": "{{{ test_inline_file }}}" + } + ], + "output_mount_configurations": [ + { + "mount_path": "/app/outputs/", + "auto_promote": true, + "output_name": "testiooutput", + "output_description": "Test output files generated from processing the inline input file" + } + ], + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/molpredictor4h74wc", + "name": "molpredictor4h74wc", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-12T20:02:50.7457408Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-12T20:03:17.4513262Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtl4h74wc", + "name": "itcorpythtl4h74wc", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-12T20:02:50.8238918Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-12T20:03:53.4456326Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtlpujupx", + "name": "itcorpythtlpujupx", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T17:13:37.8488789Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-13T17:14:12.587767Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/molpredictorpujupx", + "name": "molpredictorpujupx", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-13T17:13:38.3175742Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-13T17:13:58.3227152Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/itcorpythtlhjyoch", + "name": "itcorpythtlhjyoch", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-14T01:12:40.1293186Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-14T01:13:00.4649916Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/tools/molpredictorhjyoch", + "name": "molpredictorhjyoch", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-14T01:12:40.4886867Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-02-14T01:13:14.7006469Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/testukstool", + "name": "testukstool", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-26T02:02:25.3606852Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-26T02:02:25.3606852Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-50d87c62", + "name": "test-tool-50d87c62", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-05T16:59:40.0258391Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-05T16:59:40.0258391Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/umamm-wksp-test-0305/providers/Microsoft.Discovery/tools/itmolptlnw0305b", + "name": "itmolptlnw0305b", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T03:19:34.9804976Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T03:57:45.4316122Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/umamm-wksp-test-0305/providers/Microsoft.Discovery/tools/itcorpythtlnw0305b", + "name": "itcorpythtlnw0305b", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T03:58:51.2936362Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T04:46:11.7245688Z" + }, + "properties": { + "version": "1.0.0-patched", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "DUMMY_VAR": "unused_value" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/umamm-wksp-test-0305/providers/Microsoft.Discovery/tools/ittestiotlnw0305b", + "name": "ittestiotlnw0305b", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-06T03:59:55.9003288Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-06T03:59:55.9003288Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "testiotool", + "description": "This tool is used to test inline files and output mount configurations.", + "version": "1.0.0", + "category": "testing", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/testiotool:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "2Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "test_inline_and_output", + "description": "Test action to validate inline file input and output mount functionality.", + "input_schema": { + "type": "object", + "properties": { + "test_inline_file": { + "type": "string", + "description": "This is a test inline file, you should provide some dummy text" + } + }, + "required": [ + "test_inline_file" + ] + }, + "command": "python test_io_script.py", + "inline_files": [ + { + "mount_path": "/app/input/test_file.txt", + "content": "{{{ test_inline_file }}}" + } + ], + "output_mount_configurations": [ + { + "mount_path": "/app/outputs/", + "auto_promote": true, + "output_name": "testiooutput", + "output_description": "Test output files generated from processing the inline input file" + } + ], + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-sdronavalli/providers/Microsoft.Discovery/tools/itmolptlsdr07", + "name": "itmolptlsdr07", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-03-06T21:32:06.3377546Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-06T21:47:03.0676495Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings read from .txt files in a directory. Note, input mount path where the SMILES data will be stored for the computation is \"/app/input_smiles\". Multiple smiles may be processed within the same run as long as they are mounted to the same input path. Outputs will be stored in \"/app/outputs\"\".", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": { + "LOGP_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-logp", + "BOILING_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-bp", + "CRITICAL_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-tc", + "DENSITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-density", + "SOLUBILITY_ENDPOINT_ID": "/subscriptions/8bd6cf1f-7ca2-4b66-8ec3-3a7620027b80/resourceGroups/alzam-westus-gpu/providers/Microsoft.MachineLearningServices/workspaces/alzam-westus-gpu-ws/onlineEndpoints/molpredictor-solubility" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-sdronavalli/providers/Microsoft.Discovery/tools/itcorpythtlsdr07", + "name": "itcorpythtlsdr07", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-03-06T21:33:21.168418Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-06T21:43:36.7033285Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-sdronavalli/providers/Microsoft.Discovery/tools/ittestiotlsdr07", + "name": "ittestiotlsdr07", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-03-06T21:34:55.7586326Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-03-06T21:43:37.0512281Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "testiotool", + "description": "This tool is used to test inline files and output mount configurations.", + "version": "1.0.0", + "category": "testing", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/testiotool:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "2Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "test_inline_and_output", + "description": "Test action to validate inline file input and output mount functionality.", + "input_schema": { + "type": "object", + "properties": { + "test_inline_file": { + "type": "string", + "description": "This is a test inline file, you should provide some dummy text" + } + }, + "required": [ + "test_inline_file" + ] + }, + "command": "python test_io_script.py", + "inline_files": [ + { + "mount_path": "/app/input/test_file.txt", + "content": "{{{ test_inline_file }}}" + } + ], + "output_mount_configurations": [ + { + "mount_path": "/app/outputs/", + "auto_promote": true, + "output_name": "testiooutput", + "output_description": "Test output files generated from processing the inline input file" + } + ], + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-07T20:37:55.7026424Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-07T20:58:43.455887Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/tooltestpublicprev2", + "name": "tooltestpublicprev2", + "type": "microsoft.discovery/tools", + "location": "eastus2euap", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-27T21:13:22.6154699Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-27T21:13:22.6154699Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/bookshelf-indexing-eastus2/providers/Microsoft.Discovery/tools/indexing-prod", + "name": "indexing-prod", + "type": "microsoft.discovery/tools", + "location": "eastus2", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2025-08-22T17:39:43.5552623Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2025-08-22T18:10:26.5363936Z" + }, + "properties": { + "environmentVariables": {}, + "version": "0.0.1", + "definitionContent": { + "name": "bookshelf", + "version": "1.0", + "infra": [ + { + "name": "indexing", + "image": { + "acr": "acrbslftestprod.azurecr.io/bookshelf-indexing-service:3902098" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "4Gi", + "gpu": 0 + }, + "max_resources": { + "cpu": "4", + "ram": "8Gi", + "gpu": 0 + } + } + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/bookshelf-indexing-eastus2/providers/Microsoft.Discovery/tools/indexing-canary", + "name": "indexing-canary", + "type": "microsoft.discovery/tools", + "location": "eastus2", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2025-08-22T17:42:21.2183803Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2025-08-22T17:42:21.2183803Z" + }, + "properties": { + "environmentVariables": {}, + "version": "0.0.1", + "definitionContent": { + "name": "bookshelf", + "version": "1.0", + "infra": [ + { + "name": "indexing", + "image": { + "acr": "acrbslftestprod.azurecr.io/bookshelf-indexing-service-canary:3908498" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "4Gi", + "gpu": 0 + }, + "max_resources": { + "cpu": "4", + "ram": "8Gi", + "gpu": 0 + } + } + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/testeustool", + "name": "testeustool", + "type": "microsoft.discovery/tools", + "location": "eastus", + "tags": {}, + "systemData": { + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-26T02:07:20.087512Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/alchocro-test-copilotsandbox/providers/Microsoft.Discovery/tools/tooltestpublicprev4", + "name": "tooltestpublicprev4", + "type": "microsoft.discovery/tools", + "location": "eastus", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-27T21:16:19.3888378Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-27T21:16:19.3888378Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "corepython", + "description": "This is the coding tool for CorePython cheminformatics operations.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "infra_type": "container", + "name": "worker", + "image": { + "acr": "demodiscoveryacr.azurecr.io/corepython:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "2Gi", + "gpu": "0", + "storage": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "4Gi", + "storage": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "code_environments": [ + { + "language": "python", + "command": "python3 \"/{{ scriptName }}\"", + "description": "Python code environment with RDKit for molecular manipulation, cheminformatics, and property calculations, as well as general Python code execution. Note: All file outputs should be written to directory /app/outputs. DO NOT FORGET THIS. DO NOT WRITE OUTPUTS TO ANY OTHER DIRECTORY. Utilize the outputMounts parameter to make sure this is mounted correctly and captured after script execution.", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "1477551809", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/UpdateTool.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/UpdateTool.json new file mode 100644 index 000000000000..11d6807c4fcf --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/UpdateTool.json @@ -0,0 +1,592 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-492e08b79c09623347745d56747776c7-70c6edf1ee91f232-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:10:38 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "323fb46b-ab47-47ac-b368-c8b1fb000ca7", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "323fb46b-ab47-47ac-b368-c8b1fb000ca7", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011039Z:323fb46b-ab47-47ac-b368-c8b1fb000ca7", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: E40AF98C6450405EAAF809332488BE23 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:10:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ca77e33b29f32d1569c6bc89efa80b5b-08e26447330a5384-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:10:39 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b63753d9-fbd5-489e-b2c8-2b4b50d8ce71", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b63753d9-fbd5-489e-b2c8-2b4b50d8ce71", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011039Z:b63753d9-fbd5-489e-b2c8-2b4b50d8ce71", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 05DD52957FA443C48ECF9A4B4D492DCC Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:10:39Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-512d8629cda5299ca7dcfac19a5d0345-3afdd930368ed717-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:10:39 GMT", + "ETag": "\"fa01d33a-0000-1100-0000-69accc2e0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fac33464-687d-4178-9946-a191f0adf602", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b8dce087-5d47-44ac-9aba-9d6b7f473165", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011040Z:fac33464-687d-4178-9946-a191f0adf602", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D656BB2D43744FCB90933875E2B9D668 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:10:39Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:23.0362336Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:07:35.4786976Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "Content-Length": "1679", + "Content-Type": "application/json", + "traceparent": "00-5e87ce74cca5fec6ec7a2739b0d5af86-04a2a11e1e370fc9-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "location": "uksouth", + "properties": { + "version": "1.0.0", + "environmentVariables": {}, + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + } + } + }, + "StatusCode": 201, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085290430323984&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Hi_WR_-pMCwHawcksxAMtcEYSjOrzx79nahQJ5mx6DjzNHbN0k9ySTIzNEAza0kdxLU8GwfhiX68gplmXsLXwhJCeVWPfZJ7mo-8m4OWPT79xQG12e2r3-zEKsPOAyh_YX7Yonp9wdv5GarcBZl0OXUxhwA4YLvWBYouhESGBy8BG5xumZzmDhUVvwHhmxiVbA-Uo2ic1O7hfowDhR4kPM3rZaVEnFz0hC0KIeVKxkuOACQ5EXwHb7Se11vz0AtCHWHI57o7sJH58BBEuyDf2t98swr8rT8MRFowFNmRbYM0umvolMQFWlpiWcBhrysQmKpU1DBIz0DW8zbMgyWhLg&h=2PGr74rGUDbghGt3W920kRu8xz4s27IB1747L37S-ko", + "Cache-Control": "no-cache", + "Content-Length": "1466", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:10:42 GMT", + "ETag": "\"87009c1b-0000-1000-0000-69accc920000\"", + "Expires": "-1", + "mise-correlation-id": "d1021604-217a-46b7-a898-fdc94888e630", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-async-operation-timeout": "P6D", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "b01463ba-0c85-43b5-9f32-e8a551ede0a1", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/83b5ba2e-a604-4c01-a80c-012cbaa3a7bd", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-writes": "799", + "x-ms-request-id": "368a8b08-d353-44bb-84fa-ab0c2f797376", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011043Z:b01463ba-0c85-43b5-9f32-e8a551ede0a1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 36BDC61A9C154FB3B97A0F84BFCFA17A Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:10:40Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:23.0362336Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:10:41.2042614Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Accepted" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085290430323984&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Hi_WR_-pMCwHawcksxAMtcEYSjOrzx79nahQJ5mx6DjzNHbN0k9ySTIzNEAza0kdxLU8GwfhiX68gplmXsLXwhJCeVWPfZJ7mo-8m4OWPT79xQG12e2r3-zEKsPOAyh_YX7Yonp9wdv5GarcBZl0OXUxhwA4YLvWBYouhESGBy8BG5xumZzmDhUVvwHhmxiVbA-Uo2ic1O7hfowDhR4kPM3rZaVEnFz0hC0KIeVKxkuOACQ5EXwHb7Se11vz0AtCHWHI57o7sJH58BBEuyDf2t98swr8rT8MRFowFNmRbYM0umvolMQFWlpiWcBhrysQmKpU1DBIz0DW8zbMgyWhLg&h=2PGr74rGUDbghGt3W920kRu8xz4s27IB1747L37S-ko", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5e87ce74cca5fec6ec7a2739b0d5af86-d00913649172bb2a-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "546", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:10:43 GMT", + "ETag": "\"2402b67c-0000-1000-0000-69accc920000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "5d4c1c3f-d877-45b6-b0c5-60b118e36904", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/0f748f26-559e-4c13-8544-5f370fa52d60", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "8bd0e282-0aea-419c-b3de-8b499d14f41f", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011043Z:5d4c1c3f-d877-45b6-b0c5-60b118e36904", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 09DCB42FF4FE4AA081B902BA88A3346A Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:10:43Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Accepted", + "startTime": "2026-03-08T01:10:41.9863745Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085290430323984&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Hi_WR_-pMCwHawcksxAMtcEYSjOrzx79nahQJ5mx6DjzNHbN0k9ySTIzNEAza0kdxLU8GwfhiX68gplmXsLXwhJCeVWPfZJ7mo-8m4OWPT79xQG12e2r3-zEKsPOAyh_YX7Yonp9wdv5GarcBZl0OXUxhwA4YLvWBYouhESGBy8BG5xumZzmDhUVvwHhmxiVbA-Uo2ic1O7hfowDhR4kPM3rZaVEnFz0hC0KIeVKxkuOACQ5EXwHb7Se11vz0AtCHWHI57o7sJH58BBEuyDf2t98swr8rT8MRFowFNmRbYM0umvolMQFWlpiWcBhrysQmKpU1DBIz0DW8zbMgyWhLg&h=2PGr74rGUDbghGt3W920kRu8xz4s27IB1747L37S-ko", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5e87ce74cca5fec6ec7a2739b0d5af86-f29a26453e541af8-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "627", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:11:50 GMT", + "ETag": "\"2402a689-0000-1000-0000-69acccce0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "52b10e65-b8ba-40ae-bd86-541de5ee0144", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/e3843a4b-3898-4c10-906b-b55178b67286", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "8017e844-46b1-4177-871d-58ce46184eac", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011150Z:52b10e65-b8ba-40ae-bd86-541de5ee0144", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: BEA367110F0E465ABDC75311C9ABC401 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:11:50Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "0a5a9ead-fef3-4785-8b87-941048c6c288*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-08T01:10:41.9863745Z", + "endTime": "2026-03-08T01:11:42.624671Z", + "percentComplete": 0.0, + "properties": null + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5e87ce74cca5fec6ec7a2739b0d5af86-9c40a85692729100-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:11:51 GMT", + "ETag": "\"fa017156-0000-1100-0000-69acccce0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "429f2490-c000-47f9-979b-8eb835128a70", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "c9fe928b-d25e-41d0-9c80-254fc7c2c1aa", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011151Z:429f2490-c000-47f9-979b-8eb835128a70", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 427204A28F6A43108C8E8A20C94B7C9C Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:11:51Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:23.0362336Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:10:41.2042614Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_TOOL_NAME": "test-tool-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1263154042", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/UpdateToolAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/UpdateToolAsync.json new file mode 100644 index 000000000000..7c7410f4d131 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/ToolResourceTests/UpdateToolAsync.json @@ -0,0 +1,592 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-f7b47cd3f2c04c7e9834373216bb2fd4-95fc5f6e17cb4938-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:12:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "1abf05f9-4caa-4615-a479-92863d337910", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "1abf05f9-4caa-4615-a479-92863d337910", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011201Z:1abf05f9-4caa-4615-a479-92863d337910", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 31E1B54BD94844C5A298FFD34C357671 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:12:01Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/olawal?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-e2996af5cc737f4db03420d9fd07cedd-a45fdeee35ca1b52-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "294", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:12:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "535f6e62-7d04-431c-8abe-c44e2beb582c", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "535f6e62-7d04-431c-8abe-c44e2beb582c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011202Z:535f6e62-7d04-431c-8abe-c44e2beb582c", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0BEF7624CB34433989DF7C09D10A5FDA Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:12:01Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal", + "name": "olawal", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31", + "Created": "2026-03-07T21:51:58.5374919Z" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-7db0f045764a0e27a9dc0389d7097538-b56f39a7d1f66117-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:12:02 GMT", + "ETag": "\"fa017156-0000-1100-0000-69acccce0000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "99f63ecb-6a56-4cc3-9c62-85bb23d31e4f", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "512677ad-ff06-429a-a23f-4baf97fe4488", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011202Z:99f63ecb-6a56-4cc3-9c62-85bb23d31e4f", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D7C4830AFCFE4C579237A7D9B374262E Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:12:02Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:23.0362336Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:10:41.2042614Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "Content-Length": "1679", + "Content-Type": "application/json", + "traceparent": "00-cff32aaf25822b1308feb494c406ab25-60e986df4205c2f3-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": { + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "location": "uksouth", + "properties": { + "version": "1.0.0", + "environmentVariables": {}, + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + } + } + }, + "StatusCode": 201, + "ResponseHeaders": { + "Azure-AsyncNotification": "Enabled", + "Azure-AsyncOperation": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085291253386675&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Qjd3Um_-UeEGNvmjIcHx0DuMxmftxJgTZuoKd0KyLrkMOwOXvOGCdrQ3ShO0PjR5pMOdQbldO5AVWNBgBtJcSw8hogElXfR7kdL1PtUKMP-IRydDnsNa2p-VBqJnLthGFpaWGV9gqqmoNqRyDZMomv6jqe2iibnghp3Y_PWRTQb4FcpIpdaF3-ClwX3N343Lf59sBueVVmbgREMemdTb6nF_uHAM7albcVJT4jxUQmgzGv9XYdkfnxGcIBz5_M2lEozUVVdXuVzrGrL7Jz9E8n4_bXbdm8B4cUW5owXDxbpxNCigX92LXWKKAa9vCKOdbfLopeMEYTCjt7g_ZgPmgQ&h=Iu6FaQR_HWBF8bcmMFXrbnRQVtoHsuKH-1VruRQjfKI", + "Cache-Control": "no-cache", + "Content-Length": "1466", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:12:04 GMT", + "ETag": "\"8700e91c-0000-1000-0000-69accce40000\"", + "Expires": "-1", + "mise-correlation-id": "4e89f66c-7e4e-4247-958d-91feab984532", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "x-azure-ref": "Sanitized", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-async-operation-timeout": "P6D", + "x-ms-build-version": "1", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "429d8956-4b65-4548-9483-9ab939f9c488", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/06a2a944-074b-4527-89b7-9b1aa9b4a233", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-writes": "799", + "x-ms-request-id": "645b93c6-2506-4604-857c-1b39eb2004da", + "x-ms-resource-provider-hint": "noPolling", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011205Z:429d8956-4b65-4548-9483-9ab939f9c488", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 0CFAA152621E4E69AF68F875BE86B7A0 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:12:03Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:23.0362336Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:12:03.5574017Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Accepted" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085291253386675&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Qjd3Um_-UeEGNvmjIcHx0DuMxmftxJgTZuoKd0KyLrkMOwOXvOGCdrQ3ShO0PjR5pMOdQbldO5AVWNBgBtJcSw8hogElXfR7kdL1PtUKMP-IRydDnsNa2p-VBqJnLthGFpaWGV9gqqmoNqRyDZMomv6jqe2iibnghp3Y_PWRTQb4FcpIpdaF3-ClwX3N343Lf59sBueVVmbgREMemdTb6nF_uHAM7albcVJT4jxUQmgzGv9XYdkfnxGcIBz5_M2lEozUVVdXuVzrGrL7Jz9E8n4_bXbdm8B4cUW5owXDxbpxNCigX92LXWKKAa9vCKOdbfLopeMEYTCjt7g_ZgPmgQ&h=Iu6FaQR_HWBF8bcmMFXrbnRQVtoHsuKH-1VruRQjfKI", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cff32aaf25822b1308feb494c406ab25-1cd47a8ef8f9c5b0-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "546", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:12:05 GMT", + "ETag": "\"2402ff8d-0000-1000-0000-69accce40000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fceb1f57-1d64-4e06-b21e-17f2915a636b", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/2745f447-d4fa-4db5-a45c-bc923f436aad", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "2c036426-39a3-4504-baea-0836722cddf8", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011205Z:fceb1f57-1d64-4e06-b21e-17f2915a636b", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: A64785F5E834412690A1D281FFF4FDE8 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:12:05Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Accepted", + "startTime": "2026-03-08T01:12:04.1814379Z" + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C?api-version=2026-02-01-preview&t=639085291253386675&c=MIIH8TCCBtmgAwIBAgIRAPACEB_3HpzeM1w1SuhmHQ0wDQYJKoZIhvcNAQELBQAwNjE0MDIGA1UEAxMrQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgRVUyQyBDQSAwMTAeFw0yNjAyMjAxODUzMTlaFw0yNjA1MTYwMDUzMTlaMEAxPjA8BgNVBAMTNWFzeW5jb3BlcmF0aW9uc2lnbmluZ2NlcnRpZmljYXRlLm1hbmFnZW1lbnQuYXp1cmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhORWJNtC19m3BfHw9QAkMXDX9rc12A9DcmdfPHteaCGxBhwJ6102HppHsmww3Sdekl4dAA92Nc3NLV3yeFPDmU_pALwfzsfem6lttyWEtgZaDT1lH1r6tqnS4Z6bNSQ9YTUH2wFJZEazi4jhwQibkb7RL8PWlAHI7_IeqoeSoDc_oIYYO1BR5pwNyMmWf0Vf0-AjNmm479Esw1g1_wglnAushpNPUMfKvLD-j2Krfn9SSr1sy8ISnKui_PoRAyFwm1WxtGzLxQCQC01HEMyg1zii9qxwlGD-fP6-899gPGH4bGUxdkgoMUMaeU1A4_D0iO3YcNEqof72U-zPeIV0QIDAQABo4IE7jCCBOowgZ0GA1UdIASBlTCBkjAMBgorBgEEAYI3ewEBMGYGCisGAQQBgjd7AgIwWDBWBggrBgEFBQcCAjBKHkgAMwAzAGUAMAAxADkAMgAxAC0ANABkADYANAAtADQAZgA4AGMALQBhADAANQA1AC0ANQBiAGQAYQBmAGYAZAA1AGUAMwAzAGQwDAYKKwYBBAGCN3sDAjAMBgorBgEEAYI3ewQCMAwGA1UdEwEB_wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA4GA1UdDwEB_wQEAwIFoDAdBgNVHQ4EFgQUTtIZsp3h7sUSeE_jQ146bKX4KaUwHwYDVR0jBBgwFoAUz1EBqulDLGR2G0rwqsDykvhPw7swggHeBgNVHR8EggHVMIIB0TB0oHKgcIZuaHR0cDovL3ByaW1hcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwdqB0oHKGcGh0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2Vhc3R1czJldWFwL2NybHMvY2NtZWVhc3R1czJldWFwcGtpL2NjbWVlYXN0dXMyZXVhcGljYTAxLzAvY3VycmVudC5jcmwwZaBjoGGGX2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jcmxzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS8wL2N1cnJlbnQuY3JsMHqgeKB2hnRodHRwOi8vY2NtZWVhc3R1czJldWFwcGtpLmVhc3R1czJldWFwLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWVhc3R1czJldWFwaWNhMDEvMC9jdXJyZW50LmNybDCCAecGCCsGAQUFBwEBBIIB2TCCAdUweAYIKwYBBQUHMAKGbGh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjB6BggrBgEFBQcwAoZuaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvZWFzdHVzMmV1YXAvY2FjZXJ0cy9jY21lZWFzdHVzMmV1YXBwa2kvY2NtZWVhc3R1czJldWFwaWNhMDEvY2VydC5jZXIwaQYIKwYBBQUHMAKGXWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9lYXN0dXMyZXVhcC9jYWNlcnRzL2NjbWVlYXN0dXMyZXVhcHBraS9jY21lZWFzdHVzMmV1YXBpY2EwMS9jZXJ0LmNlcjByBggrBgEFBQcwAoZmaHR0cDovL2NjbWVlYXN0dXMyZXVhcHBraS5lYXN0dXMyZXVhcC5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVlYXN0dXMyZXVhcGljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQAXqRz_dTvWF2zD3_86i99ADB1KHHDU88dwkxqsMmhfuEv6QnLFIwOqtYR4_LVTKh1vqPbsasd4GWMwHNwCCkj_sMaXlo0_5_JE608lJJc5ZeAkQD4mhL9dMmWP_Uwzr8z3uG6dn7og_xxs_66vrlr6JmETJlfOSjhNxMsR3yHfyx00M9mKAX2OcnCUv9ZnpRaOPdHcB36Lk8wcQAXiKgyT12NzASseTD734iTC_EOCuCH73nx-TKMecTFYJ0EtvMJBlMW5nvS84sjlqHJyeABN8KG6AwY_1M2QxwXbh9MJTFNu2YdU_35WHwYMm760NnDf2d9ocXU7T7RTlhkQHB4l&s=Qjd3Um_-UeEGNvmjIcHx0DuMxmftxJgTZuoKd0KyLrkMOwOXvOGCdrQ3ShO0PjR5pMOdQbldO5AVWNBgBtJcSw8hogElXfR7kdL1PtUKMP-IRydDnsNa2p-VBqJnLthGFpaWGV9gqqmoNqRyDZMomv6jqe2iibnghp3Y_PWRTQb4FcpIpdaF3-ClwX3N343Lf59sBueVVmbgREMemdTb6nF_uHAM7albcVJT4jxUQmgzGv9XYdkfnxGcIBz5_M2lEozUVVdXuVzrGrL7Jz9E8n4_bXbdm8B4cUW5owXDxbpxNCigX92LXWKKAa9vCKOdbfLopeMEYTCjt7g_ZgPmgQ&h=Iu6FaQR_HWBF8bcmMFXrbnRQVtoHsuKH-1VruRQjfKI", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cff32aaf25822b1308feb494c406ab25-48739abd737006e5-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "628", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:13:45 GMT", + "ETag": "\"24023899-0000-1000-0000-69accd290000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "c730b20b-055a-4891-8ac2-080ce9f4b7fb", + "x-ms-operation-identifier": "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=441c70d9-1a53-4aff-b678-cc204b104e4b/eastus2euap/a952155e-cb93-4fb2-9f91-c7630ab9db23", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "15cc49c1-af67-4171-9e50-213af559cd15", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011345Z:c730b20b-055a-4891-8ac2-080ce9f4b7fb", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 46F885A7E2FC479E8F81505FBF03063A Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:13:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/locations/UKSOUTH/operationStatuses/48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "name": "48acc1f9-0f80-4ee0-8a9a-a64c9f62e6b5*E1EE2083E95AFB56EB278AFAEAD4C7FDB56FEBE08F59556DFE7BDD3E0100223C", + "resourceId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "status": "Succeeded", + "startTime": "2026-03-08T01:12:04.1814379Z", + "endTime": "2026-03-08T01:13:13.5871987Z", + "percentComplete": 0.0, + "properties": null + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cff32aaf25822b1308feb494c406ab25-1d73137a1390b18b-00", + "User-Agent": "azsdk-net-ResourceManager/1.14.0 (.NET 10.0.3; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Sun, 08 Mar 2026 01:13:45 GMT", + "ETag": "\"fa01fb5e-0000-1100-0000-69accd290000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "e6719699-e5b4-4fb1-bd37-b47c073aad60", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "38e7cab8-ed83-4b8b-9f25-264244be67ae", + "x-ms-routing-request-id": "EASTUS2EUAP:20260308T011346Z:e6719699-e5b4-4fb1-bd37-b47c073aad60", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 3BECF7E0D7604855A5134C5652D6C379 Ref B: SN4AA2022304045 Ref C: 2026-03-08T01:13:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/olawal/providers/Microsoft.Discovery/tools/test-tool-dotnet01", + "name": "test-tool-dotnet01", + "type": "microsoft.discovery/tools", + "location": "uksouth", + "tags": { + "SkipAutoDeleteTill": "2026-12-31" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-03-08T00:55:23.0362336Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-03-08T01:12:03.5574017Z" + }, + "properties": { + "version": "1.0.0", + "definitionContent": { + "name": "molpredictor", + "description": "Molecular property prediction for single SMILES strings.", + "version": "1.0.0", + "category": "cheminformatics", + "license": "MIT", + "infra": [ + { + "name": "worker", + "infra_type": "container", + "image": { + "acr": "demodiscoveryacr.azurecr.io/molpredictor:latest" + }, + "compute": { + "min_resources": { + "cpu": "1", + "ram": "1Gi", + "storage": "32", + "gpu": "0" + }, + "max_resources": { + "cpu": "2", + "ram": "1Gi", + "storage": "64", + "gpu": "0" + }, + "recommended_sku": [ + "Standard_D4s_v6" + ], + "pool_type": "static", + "pool_size": 1 + } + } + ], + "actions": [ + { + "name": "predict", + "description": "Predict molecular properties for SMILES strings.", + "input_schema": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]" + } + }, + "required": [ + "action" + ] + }, + "command": "python molpredictor.py --action {{ action }}", + "infra_node": "worker" + } + ] + }, + "environmentVariables": {}, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_TOOL_NAME": "test-tool-dotnet01", + "AZURE_RESOURCE_GROUP_NAME": "olawal", + "RandomSeed": "1715216458", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/GetWorkspace.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/GetWorkspace.json new file mode 100644 index 000000000000..c324e3d4aaaf --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/GetWorkspace.json @@ -0,0 +1,174 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-dcd5ff9b9b0bab96b69276bf64282dc4-ed3c82f4198fb25b-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:55 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "de91fbaa-845a-44ee-b853-7cc378224ff6", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "de91fbaa-845a-44ee-b853-7cc378224ff6", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175756Z:de91fbaa-845a-44ee-b853-7cc378224ff6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 53421DFC12914E1C9D8C087536176083 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:56Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-9af01b4b7214226b5db002f4d5658b61-04c2db5e02ea0114-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:56 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "2169ae7e-e4a3-4bb2-afac-92a9d16f6daf", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "2169ae7e-e4a3-4bb2-afac-92a9d16f6daf", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175756Z:2169ae7e-e4a3-4bb2-afac-92a9d16f6daf", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 57C64AEE6C6E4B7C9237CADC33649550 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:56Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-41b40a43000ac5d88a513858d7ccb6d2-1ddd85bfcb9aa819-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:57:56 GMT", + "ETag": "\"0000ad74-0000-1100-0000-69683de10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "29935751-105b-40a9-83f0-3f3ec50ddef6", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "85daf4f5-25c5-4b5d-8382-38a848586800", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175756Z:29935751-105b-40a9-83f0-3f3ec50ddef6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5265D43367FE40918D38FE6D4AC2A65A Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:57:56Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_WORKSPACE_NAME": "itworkrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "879705087", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/GetWorkspaceAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/GetWorkspaceAsync.json new file mode 100644 index 000000000000..20262adba25f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/GetWorkspaceAsync.json @@ -0,0 +1,174 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-88d0b4e3deab61d99060463d1f7b3eb8-5ef3c08f37d35bbc-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "86b4965b-9b27-48f5-93b7-36b624e1a3dd", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "86b4965b-9b27-48f5-93b7-36b624e1a3dd", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175838Z:86b4965b-9b27-48f5-93b7-36b624e1a3dd", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 59813D1F980B4100987F39589C99F597 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-821da255f855900bfe35cdf66254d596-2ebb39d7679d24f2-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:37 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "53682221-7b48-412c-8dd4-f57e43c48c67", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "53682221-7b48-412c-8dd4-f57e43c48c67", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175838Z:53682221-7b48-412c-8dd4-f57e43c48c67", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 5F12932E900F4CF38648C9038A80E7B5 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-fa63f2cc1011e6514139d85752a05874-9d10dd4b8e810b10-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1467", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:38 GMT", + "ETag": "\"0000ad74-0000-1100-0000-69683de10000\"", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-client-request-id": "Sanitized", + "x-ms-correlation-request-id": "fc58ac26-273d-4182-aa7e-8cfcd3243390", + "x-ms-providerhub-traffic": "True", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "2a071e97-c922-4e4d-97ee-11a0490d9af8", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175838Z:fc58ac26-273d-4182-aa7e-8cfcd3243390", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D0393872146A41E3B07968013714C503 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:38Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + } + ], + "Variables": { + "AZURE_DISCOVERY_WORKSPACE_NAME": "itworkrp114", + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "491393487", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesByResourceGroup.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesByResourceGroup.json new file mode 100644 index 000000000000..f3562cdc7d80 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesByResourceGroup.json @@ -0,0 +1,178 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-933ac5bf5bd6d7b2aff2ce394f50412c-42ab154c91ed5fc5-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:02 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "7fa87307-3626-42ec-b0f7-504d66f0b192", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "7fa87307-3626-42ec-b0f7-504d66f0b192", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175803Z:7fa87307-3626-42ec-b0f7-504d66f0b192", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 1A79030AC1F74DBEAAF608B8A000692E Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:02Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-5481dc55944802534bd46e9dcd96641b-1b0015ed7846af8d-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:02 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b4eb897e-6638-4cb9-be86-b1502e7ff1b0", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b4eb897e-6638-4cb9-be86-b1502e7ff1b0", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175803Z:b4eb897e-6638-4cb9-be86-b1502e7ff1b0", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 2D452B1909D548B88ED75EE5E0962610 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:03Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-51fa0126a94665e71465efb74eb0b07a-5604067135250654-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:03 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "32dca582-8c43-4254-912b-1f8734ea9c7c", + "x-ms-original-request-ids": [ + "1cb12766-a31c-4603-b75a-882758d3c34a", + "9f045a5e-8b96-4bd1-9834-f35494050f5b" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "32dca582-8c43-4254-912b-1f8734ea9c7c", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175803Z:32dca582-8c43-4254-912b-1f8734ea9c7c", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 9A813B6E6DDD488F91DB20933D7BF6B5 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:03Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "886683280", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesByResourceGroupAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesByResourceGroupAsync.json new file mode 100644 index 000000000000..7b3de46195dc --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesByResourceGroupAsync.json @@ -0,0 +1,178 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-a6f3e34b547927432c8a158bc4ab7f1a-08578875c218881e-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:44 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "6e397c63-dc95-4eaa-a3fa-7def1f9f87a6", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "6e397c63-dc95-4eaa-a3fa-7def1f9f87a6", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175845Z:6e397c63-dc95-4eaa-a3fa-7def1f9f87a6", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: B601B8A766F3484F8F6C6423D76FE396 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/rp114-rg?api-version=2022-09-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-62e5373d184fc754c280ee076b9643d5-10870d73a105869b-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "317", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "e204ff83-0924-4e72-9761-940b10b4b46e", + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "e204ff83-0924-4e72-9761-940b10b4b46e", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175845Z:e204ff83-0924-4e72-9761-940b10b4b46e", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DD5726C5B2F6437DB785203D501F3355 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:45Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg", + "name": "rp114-rg", + "type": "Microsoft.Resources/resourceGroups", + "location": "uksouth", + "tags": { + "Created": "2026-01-15T00:18:18.3142262Z", + "SkipAutoDeleteTill": "2026-12-31", + "RGOwner": "patelr" + }, + "properties": { + "provisioningState": "Succeeded" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-28d47c8b6ca418729db8c49ec8d3c42c-21424d1a9e1def50-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "1479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:45 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "177faffb-eebf-4544-b237-c7bc4e3bb983", + "x-ms-original-request-ids": [ + "e341fb40-d615-4d9c-a2b2-f195e5c2ef1f", + "812a100b-23d6-4746-a696-a7ed7b8560a6" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "177faffb-eebf-4544-b237-c7bc4e3bb983", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175845Z:177faffb-eebf-4544-b237-c7bc4e3bb983", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 242A47BC5E5249CFA3FDF848380B03AF Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:45Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "AZURE_RESOURCE_GROUP_NAME": "rp114-rg", + "RandomSeed": "270357668", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesBySubscription.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesBySubscription.json new file mode 100644 index 000000000000..ef1f447f8120 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesBySubscription.json @@ -0,0 +1,257 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-ca2d7082f4ac14f1718fc46974d11a45-0a8bbacf9f709a71-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "b47bf062-e06e-4d10-9957-7522a3837e96", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "b47bf062-e06e-4d10-9957-7522a3837e96", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175810Z:b47bf062-e06e-4d10-9957-7522a3837e96", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: 66719E00A4AB441D92D5352DFD9BC332 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:10Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/workspaces?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-1b7c5a4208ff631cad55158f1e5fb0e5-c98a5432aafff24e-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "5979", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:58:10 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "117f264c-0f0c-409e-ad00-5782af505150", + "x-ms-original-request-ids": [ + "0ccf9181-524d-43d2-8bc0-e6677487577a", + "7700b020-7785-46f7-be7c-a346d9ea4c92" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1098", + "x-ms-request-id": "117f264c-0f0c-409e-ad00-5782af505150", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175810Z:117f264c-0f0c-409e-ad00-5782af505150", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: C53C74B60B924C83B202991CF5CF63D6 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:58:10Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-yaoswal/providers/Microsoft.Discovery/workspaces/yaoswal-workspace-test", + "name": "yaoswal-workspace-test", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-01-27T11:47:54.8243082Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-01-27T11:47:54.8243082Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-yaoswal-workspace-test-1zk0jd", + "supercomputerIds": [], + "workspaceApiUri": "https://yaoswal-workspace-test.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/yaoswal-workspace-test", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-yaoswal/providers/Microsoft.ManagedIdentity/userAssignedIdentities/yaoswal-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-yaoswal/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-yaoswal-workspace-test-1zk0jd" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/microsoft.discovery/workspaces/wrksptest43", + "name": "wrksptest43", + "type": "microsoft.discovery/workspaces", + "location": "uk south", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-03T05:30:04.4597334Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-03T05:30:04.4597334Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-wrksptest43-g9ld2g", + "supercomputerIds": [], + "workspaceApiUri": "https://wrksptest43.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/wrksptest43", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apitestmi" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-wrksptest43-g9ld2g" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/microsoft.discovery/workspaces/wrksptest44", + "name": "wrksptest44", + "type": "microsoft.discovery/workspaces", + "location": "centraluseuap", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-03T10:53:18.7643596Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-03T10:53:18.7643596Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-wrksptest44-rxc6r1", + "supercomputerIds": [], + "workspaceApiUri": "https://wrksptest44.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/wrksptest44", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apitestmi" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-wrksptest44-rxc6r1" + } + ] + }, + "provisioningState": "Failed" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/microsoft.discovery/workspaces/wrksptest45", + "name": "wrksptest45", + "type": "microsoft.discovery/workspaces", + "location": "centraluseuap", + "tags": {}, + "systemData": { + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-04T09:19:20.1363722Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-wrksptest45-4rxpj0", + "supercomputerIds": [], + "workspaceApiUri": "https://wrksptest45.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/wrksptest45", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apitestmi" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-wrksptest45-4rxpj0" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "1240180415", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesBySubscriptionAsync.json b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesBySubscriptionAsync.json new file mode 100644 index 000000000000..0e51efe3eb05 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SessionRecords/WorkspaceResourceTests/ListWorkspacesBySubscriptionAsync.json @@ -0,0 +1,257 @@ +{ + "Entries": [ + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec?api-version=2022-12-01", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-868b4308fdd70c9851c8347b71282768-099180c88649428e-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "479", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:59:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "d2834fbe-9522-471e-a5c5-63bee92f5a94", + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "d2834fbe-9522-471e-a5c5-63bee92f5a94", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175901Z:d2834fbe-9522-471e-a5c5-63bee92f5a94", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: D044D281087F405FA03EF8B9F4954A52 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:59:01Z" + }, + "ResponseBody": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "authorizationSource": "RoleBased", + "managedByTenants": [], + "tags": { + "Az.Sec.AnonymousBlobEnforcement::OptIn": "all_regions" + }, + "subscriptionId": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec", + "tenantId": "00000000-0000-0000-0000-000000000000", + "displayName": "Discovery-copilot-devslice1-uksouth", + "state": "Enabled", + "subscriptionPolicies": { + "locationPlacementId": "Internal_2014-09-01", + "quotaId": "Internal_2014-09-01", + "spendingLimit": "Off" + } + } + }, + { + "RequestUri": "https://eastus2euap.management.azure.com/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/providers/Microsoft.Discovery/workspaces?api-version=2026-02-01-preview", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "traceparent": "00-68c37dd45d982122e7b92b8209907c3e-937404be3ae591b1-00", + "User-Agent": "azsdk-net-ResourceManager/1.13.2 (.NET 8.0.24; Microsoft Windows 10.0.26200)", + "x-ms-client-request-id": "Sanitized", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "5979", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 13 Feb 2026 17:59:01 GMT", + "Expires": "-1", + "Pragma": "no-cache", + "Strict-Transport-Security": "max-age=31536000; includeSubDomains", + "X-Cache": "CONFIG_NOCACHE", + "X-Content-Type-Options": "nosniff", + "x-ms-correlation-request-id": "71b42431-df08-4939-874c-0599df1f9ad1", + "x-ms-original-request-ids": [ + "08caaf30-a75d-410c-8293-e2e79e1cb7e6", + "52767542-1316-4686-ae0b-401b3e0e63bb" + ], + "x-ms-ratelimit-remaining-subscription-reads": "1099", + "x-ms-request-id": "71b42431-df08-4939-874c-0599df1f9ad1", + "x-ms-routing-request-id": "EASTUS2EUAP:20260213T175902Z:71b42431-df08-4939-874c-0599df1f9ad1", + "x-ms-throttling-version": "v2", + "X-MSEdge-Ref": "Ref A: DE728DE05C2B413AAE3B61EDAFE51686 Ref B: SN4AA2022301039 Ref C: 2026-02-13T17:59:01Z" + }, + "ResponseBody": { + "value": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/workspaces/itworkrp114", + "name": "itworkrp114", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": { + "WorkspaceSubnetId": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/fixedrg-dev-uksouth1/providers/Microsoft.Network/virtualNetworks/vnet-dev-uksouth1/subnets/copilot-subnet" + }, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "Application", + "createdAt": "2026-01-15T00:34:10.0773703Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "Application", + "lastModifiedAt": "2026-01-15T00:34:10.0773703Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-itworkrp114-4bncru", + "supercomputerIds": [ + "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Discovery/supercomputers/itsuperp114" + ], + "workspaceApiUri": "https://itworkrp114.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/itworkrp114", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourcegroups/fixedrg-dev-uksouth1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dev-uksouth1-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rp114-rg/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-itworkrp114-4bncru" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-yaoswal/providers/Microsoft.Discovery/workspaces/yaoswal-workspace-test", + "name": "yaoswal-workspace-test", + "type": "microsoft.discovery/workspaces", + "location": "uksouth", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-01-27T11:47:54.8243082Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-01-27T11:47:54.8243082Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-yaoswal-workspace-test-1zk0jd", + "supercomputerIds": [], + "workspaceApiUri": "https://yaoswal-workspace-test.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/yaoswal-workspace-test", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-yaoswal/providers/Microsoft.ManagedIdentity/userAssignedIdentities/yaoswal-uami" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/rg-yaoswal/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-yaoswal-workspace-test-1zk0jd" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/microsoft.discovery/workspaces/wrksptest43", + "name": "wrksptest43", + "type": "microsoft.discovery/workspaces", + "location": "uk south", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-03T05:30:04.4597334Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-03T05:30:04.4597334Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-wrksptest43-g9ld2g", + "supercomputerIds": [], + "workspaceApiUri": "https://wrksptest43.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/wrksptest43", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apitestmi" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-wrksptest43-g9ld2g" + } + ] + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/microsoft.discovery/workspaces/wrksptest44", + "name": "wrksptest44", + "type": "microsoft.discovery/workspaces", + "location": "centraluseuap", + "tags": {}, + "systemData": { + "createdBy": "Sanitized", + "createdByType": "User", + "createdAt": "2026-02-03T10:53:18.7643596Z", + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-03T10:53:18.7643596Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-wrksptest44-rxc6r1", + "supercomputerIds": [], + "workspaceApiUri": "https://wrksptest44.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/wrksptest44", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apitestmi" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-wrksptest44-rxc6r1" + } + ] + }, + "provisioningState": "Failed" + } + }, + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/microsoft.discovery/workspaces/wrksptest45", + "name": "wrksptest45", + "type": "microsoft.discovery/workspaces", + "location": "centraluseuap", + "tags": {}, + "systemData": { + "lastModifiedBy": "Sanitized", + "lastModifiedByType": "User", + "lastModifiedAt": "2026-02-04T09:19:20.1363722Z" + }, + "properties": { + "managedResourceGroup": "mrg-dwsp-wrksptest45-4rxpj0", + "supercomputerIds": [], + "workspaceApiUri": "https://wrksptest45.workspace-dev.discovery.azure.com", + "workspaceUiUri": "https://studio.discovery.microsoft.com/workspaces/wrksptest45", + "workspaceIdentity": { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.ManagedIdentity/userAssignedIdentities/apitestmi" + }, + "managedOnBehalfOfConfiguration": { + "moboBrokerResources": [ + { + "id": "/subscriptions/31b0b6a5-2647-47eb-8a38-7d12047ee8ec/resourceGroups/newapiversiontest/providers/Microsoft.Resources/moboBrokers/mobr-dwsp-wrksptest45-4rxpj0" + } + ] + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + ], + "Variables": { + "RandomSeed": "963500827", + "RESOURCE_MANAGER_URL": null, + "SUBSCRIPTION_ID": "31b0b6a5-2647-47eb-8a38-7d12047ee8ec" + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/StorageAssetResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/StorageAssetResourceTests.cs new file mode 100644 index 000000000000..6599590091c3 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/StorageAssetResourceTests.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for StorageAsset resource operations. + /// StorageAsset is a child resource of StorageContainer. + /// + public class StorageAssetResourceTests : DiscoveryManagementTestBase + { + public StorageAssetResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + public async Task ListStorageAssetsByStorageContainer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + + // Act + var storageAssets = new List(); + await foreach (var storageAsset in storageContainer.Value.GetStorageAssets().GetAllAsync()) + { + storageAssets.Add(storageAsset); + } + + // Assert + Assert.That(storageAssets, Is.Not.Null); + } + + [RecordedTest] + public async Task GetStorageAsset() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + var storageAssetName = TestEnvironment.StorageAssetName; + + // Act + var storageAsset = await storageContainer.Value.GetStorageAssets().GetAsync(storageAssetName); + + // Assert + Assert.That(storageAsset.Value, Is.Not.Null); + Assert.That(storageAsset.Value.Data.Name, Is.EqualTo(storageAssetName)); + } + + [RecordedTest] + public async Task CreateStorageAsset() + { + // Arrange - matching Python/Java payload + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + var storageAssetName = "test-sa-dotnet01"; + + var storageAssetData = new StorageAssetData(DefaultLocation) + { + Properties = new StorageAssetProperties("Test storage asset for .NET SDK validation") + { + Path = "data/test-assets", + }, + }; + + // Act + var operation = await storageContainer.Value.GetStorageAssets().CreateOrUpdateAsync( + WaitUntil.Completed, + storageAssetName, + storageAssetData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(storageAssetName)); + } + + [RecordedTest] + public async Task UpdateStorageAsset() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + var storageAssetName = TestEnvironment.StorageAssetName; + var storageAsset = await storageContainer.Value.GetStorageAssets().GetAsync(storageAssetName); + + // Update tags matching Python/Java pattern + var updateData = storageAsset.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await storageContainer.Value.GetStorageAssets().CreateOrUpdateAsync( + WaitUntil.Completed, + storageAssetName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + + [RecordedTest] + public async Task DeleteStorageAsset() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + var storageAssetName = "test-sa-dotnet01"; + var storageAsset = await storageContainer.Value.GetStorageAssets().GetAsync(storageAssetName); + + // Act + var operation = await storageAsset.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/StorageContainerResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/StorageContainerResourceTests.cs new file mode 100644 index 000000000000..54678307aec8 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/StorageContainerResourceTests.cs @@ -0,0 +1,137 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for StorageContainer resource operations. + /// StorageContainer is a top-level resource under ResourceGroup. + /// + public class StorageContainerResourceTests : DiscoveryManagementTestBase + { + public StorageContainerResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + public async Task ListStorageContainersBySubscription() + { + // Arrange & Act + var storageContainers = new List(); + await foreach (var storageContainer in DefaultSubscription.GetStorageContainersAsync()) + { + storageContainers.Add(storageContainer); + } + + // Assert + Assert.That(storageContainers, Is.Not.Null); + } + + [RecordedTest] + public async Task ListStorageContainersByResourceGroup() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + // Act + var storageContainers = new List(); + await foreach (var storageContainer in resourceGroup.GetStorageContainers().GetAllAsync()) + { + storageContainers.Add(storageContainer); + } + + // Assert + Assert.That(storageContainers, Is.Not.Null); + } + + [RecordedTest] + public async Task GetStorageContainer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + + // Act + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + + // Assert + Assert.That(storageContainer.Value, Is.Not.Null); + Assert.That(storageContainer.Value.Data.Name, Is.EqualTo(storageContainerName)); + } + + [RecordedTest] + public async Task CreateStorageContainer() + { + // Arrange - matching Python/Java payload + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = "test-sc-dotnet01"; + + var subscriptionId = DefaultSubscription.Data.SubscriptionId; + var storageAccountId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/olawal/providers/Microsoft.Storage/storageAccounts/mytststr"); + + var storageContainerData = new StorageContainerData(DefaultLocation) + { + Properties = new StorageContainerProperties( + new AzureStorageBlobStore(storageAccountId)), + }; + + // Act + var operation = await resourceGroup.GetStorageContainers().CreateOrUpdateAsync( + WaitUntil.Completed, + storageContainerName, + storageContainerData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(storageContainerName)); + } + + [RecordedTest] + public async Task UpdateStorageContainer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = TestEnvironment.StorageContainerName; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + + // Update tags matching Python/Java pattern + var updateData = storageContainer.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await resourceGroup.GetStorageContainers().CreateOrUpdateAsync( + WaitUntil.Completed, + storageContainerName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + + [RecordedTest] + public async Task DeleteStorageContainer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var storageContainerName = "test-sc-dotnet01"; + var storageContainer = await resourceGroup.GetStorageContainers().GetAsync(storageContainerName); + + // Act + var operation = await storageContainer.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/SupercomputerResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SupercomputerResourceTests.cs new file mode 100644 index 000000000000..1313b23d4ecc --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/SupercomputerResourceTests.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for Supercomputer resource operations. + /// + public class SupercomputerResourceTests : DiscoveryManagementTestBase + { + public SupercomputerResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + + public async Task ListSupercomputersBySubscription() + { + // Arrange & Act + var supercomputers = new List(); + await foreach (var supercomputer in DefaultSubscription.GetSupercomputersAsync()) + { + supercomputers.Add(supercomputer); + } + + // Assert + Assert.That(supercomputers, Is.Not.Null); + // List may be empty but should not throw + } + + [RecordedTest] + + public async Task ListSupercomputersByResourceGroup() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + // Act + var supercomputers = new List(); + await foreach (var supercomputer in resourceGroup.GetSupercomputers().GetAllAsync()) + { + supercomputers.Add(supercomputer); + } + + // Assert + Assert.That(supercomputers, Is.Not.Null); + } + + [RecordedTest] + public async Task GetSupercomputer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputerName = TestEnvironment.SupercomputerName; + + // Act + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(supercomputerName); + + // Assert + Assert.That(supercomputer.Value, Is.Not.Null); + Assert.That(supercomputer.Value.Data.Name, Is.EqualTo(supercomputerName)); + } + + [RecordedTest] + [Ignore("Recording not yet captured")] + public async Task CreateSupercomputer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputerName = "test-sc-dotnet02"; + + var subscriptionId = DefaultSubscription.Data.SubscriptionId; + var miId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourcegroups/olawal/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentity"); + var subnetId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/olawal/providers/Microsoft.Network/virtualNetworks/newapiv/subnets/default"); + + var identities = new SupercomputerIdentities( + clusterIdentity: new Discovery.Models.Identity(miId), + kubeletIdentity: new Discovery.Models.Identity(miId)); + identities.WorkloadIdentities.Add(miId.ToString(), new Azure.ResourceManager.Models.UserAssignedIdentity()); + + var supercomputerData = new SupercomputerData(DefaultLocation) + { + Properties = new SupercomputerProperties(subnetId, identities), + }; + + // Act + var operation = await resourceGroup.GetSupercomputers().CreateOrUpdateAsync( + WaitUntil.Completed, + supercomputerName, + supercomputerData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(supercomputerName)); + } + + [RecordedTest] + [Ignore("Requires existing supercomputer to delete - should create first then delete")] + public async Task DeleteSupercomputer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputerName = "test-sc-dotnet02"; + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(supercomputerName); + + // Act + var operation = await supercomputer.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + + [RecordedTest] + [Ignore("Requires existing supercomputer with properties that can be updated")] + public async Task UpdateSupercomputer() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var supercomputerName = TestEnvironment.SupercomputerName; + var supercomputer = await resourceGroup.GetSupercomputers().GetAsync(supercomputerName); + + // Update tags matching Python/Java pattern + var updateData = supercomputer.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await resourceGroup.GetSupercomputers().CreateOrUpdateAsync( + WaitUntil.Completed, + supercomputerName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/ToolResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/ToolResourceTests.cs new file mode 100644 index 000000000000..b4cb5857f200 --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/ToolResourceTests.cs @@ -0,0 +1,183 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for Tool resource operations. + /// Tool is a top-level resource under ResourceGroup. + /// + public class ToolResourceTests : DiscoveryManagementTestBase + { + public ToolResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + public async Task ListToolsBySubscription() + { + // Arrange & Act + var tools = new List(); + await foreach (var tool in DefaultSubscription.GetToolsAsync()) + { + tools.Add(tool); + } + + // Assert + Assert.That(tools, Is.Not.Null); + } + + [RecordedTest] + public async Task ListToolsByResourceGroup() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + // Act + var tools = new List(); + await foreach (var tool in resourceGroup.GetTools().GetAllAsync()) + { + tools.Add(tool); + } + + // Assert + Assert.That(tools, Is.Not.Null); + } + + [RecordedTest] + public async Task GetTool() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var toolName = TestEnvironment.ToolName; + + // Act + var tool = await resourceGroup.GetTools().GetAsync(toolName); + + // Assert + Assert.That(tool.Value, Is.Not.Null); + Assert.That(tool.Value.Data.Name, Is.EqualTo(toolName)); + } + + [RecordedTest] + public async Task CreateTool() + { + // Arrange - matching Python/Java definitionContent payload + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var toolName = "test-tool-dotnet01"; + + var definitionContent = new Dictionary + { + ["name"] = BinaryData.FromObjectAsJson("molpredictor"), + ["description"] = BinaryData.FromObjectAsJson("Molecular property prediction for single SMILES strings."), + ["version"] = BinaryData.FromObjectAsJson("1.0.0"), + ["category"] = BinaryData.FromObjectAsJson("cheminformatics"), + ["license"] = BinaryData.FromObjectAsJson("MIT"), + ["infra"] = BinaryData.FromObjectAsJson(new[] + { + new Dictionary + { + ["name"] = "worker", + ["infra_type"] = "container", + ["image"] = new Dictionary { ["acr"] = "demodiscoveryacr.azurecr.io/molpredictor:latest" }, + ["compute"] = new Dictionary + { + ["min_resources"] = new Dictionary { ["cpu"] = "1", ["ram"] = "1Gi", ["storage"] = "32", ["gpu"] = "0" }, + ["max_resources"] = new Dictionary { ["cpu"] = "2", ["ram"] = "1Gi", ["storage"] = "64", ["gpu"] = "0" }, + ["recommended_sku"] = new[] { "Standard_D4s_v6" }, + ["pool_type"] = "static", + ["pool_size"] = 1, + } + } + }), + ["actions"] = BinaryData.FromObjectAsJson(new[] + { + new Dictionary + { + ["name"] = "predict", + ["description"] = "Predict molecular properties for SMILES strings.", + ["input_schema"] = new Dictionary + { + ["type"] = "object", + ["properties"] = new Dictionary + { + ["action"] = new Dictionary + { + ["type"] = "string", + ["description"] = "The property to predict. Must be one of [log_p, boiling_point, solubility, density, critical_point]", + } + }, + ["required"] = new[] { "action" }, + }, + ["command"] = "python molpredictor.py --action {{ action }}", + ["infra_node"] = "worker", + } + }), + }; + + var toolData = new ToolData(DefaultLocation) + { + Properties = new ToolProperties("1.0.0", definitionContent), + }; + + // Act + var operation = await resourceGroup.GetTools().CreateOrUpdateAsync( + WaitUntil.Completed, + toolName, + toolData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(toolName)); + } + + [RecordedTest] + public async Task UpdateTool() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var toolName = TestEnvironment.ToolName; + var tool = await resourceGroup.GetTools().GetAsync(toolName); + + // Update tags matching Python/Java pattern + var updateData = tool.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await resourceGroup.GetTools().CreateOrUpdateAsync( + WaitUntil.Completed, + toolName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + + [RecordedTest] + public async Task DeleteTool() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var toolName = "test-tool-dotnet01"; + var tool = await resourceGroup.GetTools().GetAsync(toolName); + + // Act + var operation = await tool.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tests/WorkspaceResourceTests.cs b/sdk/discovery/Azure.ResourceManager.Discovery/tests/WorkspaceResourceTests.cs new file mode 100644 index 000000000000..ee587b81ec1b --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tests/WorkspaceResourceTests.cs @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +#nullable disable + +using System.Collections.Generic; +using System.Threading.Tasks; +using Azure.Core; +using Azure.Core.TestFramework; +using Azure.ResourceManager.Discovery.Models; +using Azure.ResourceManager.Resources; +using NUnit.Framework; + +namespace Azure.ResourceManager.Discovery.Tests +{ + /// + /// Tests for Workspace resource operations. + /// + public class WorkspaceResourceTests : DiscoveryManagementTestBase + { + public WorkspaceResourceTests(bool isAsync) : base(isAsync) + { + } + + [RecordedTest] + public async Task ListWorkspacesBySubscription() + { + // Arrange & Act + var workspaces = new List(); + await foreach (var workspace in DefaultSubscription.GetWorkspacesAsync()) + { + workspaces.Add(workspace); + } + + // Assert + Assert.That(workspaces, Is.Not.Null); + // List may be empty but should not throw + } + + [RecordedTest] + public async Task ListWorkspacesByResourceGroup() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + + // Act + var workspaces = new List(); + await foreach (var workspace in resourceGroup.GetWorkspaces().GetAllAsync()) + { + workspaces.Add(workspace); + } + + // Assert + Assert.That(workspaces, Is.Not.Null); + } + + [RecordedTest] + public async Task GetWorkspace() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspaceName = TestEnvironment.WorkspaceName; + + // Act + var workspace = await resourceGroup.GetWorkspaces().GetAsync(workspaceName); + + // Assert + Assert.That(workspace.Value, Is.Not.Null); + Assert.That(workspace.Value.Data.Name, Is.EqualTo(workspaceName)); + } + + [RecordedTest] + [Ignore("Recording not yet captured")] + public async Task CreateWorkspace() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspaceName = "test-wrksp-dotnet01"; + + var subscriptionId = DefaultSubscription.Data.SubscriptionId; + var miId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourcegroups/olawal/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentity"); + + var workspaceData = new WorkspaceData(DefaultLocation) + { + Properties = new WorkspaceProperties(new Discovery.Models.Identity(miId)) + { + AgentSubnetId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/olawal/providers/Microsoft.Network/virtualNetworks/newapiv/subnets/default3"), + PrivateEndpointSubnetId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/olawal/providers/Microsoft.Network/virtualNetworks/newapiv/subnets/default"), + WorkspaceSubnetId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/olawal/providers/Microsoft.Network/virtualNetworks/newapiv/subnets/default2"), + CustomerManagedKeys = Discovery.Models.CustomerManagedKeys.Enabled, + KeyVaultProperties = new Discovery.Models.KeyVaultProperties(new System.Uri("https://newapik.vault.azure.net/"), "discoverykey") + { + KeyVersion = "2c9db3cf55d247b4a1c1831fbbdad906" + }, + LogAnalyticsClusterId = new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/olawal/providers/Microsoft.OperationalInsights/clusters/mycluse"), + PublicNetworkAccess = Discovery.Models.PublicNetworkAccess.Disabled, + }, + }; + + // Act + var operation = await resourceGroup.GetWorkspaces().CreateOrUpdateAsync( + WaitUntil.Completed, + workspaceName, + workspaceData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Name, Is.EqualTo(workspaceName)); + } + + [RecordedTest] + [Ignore("Requires existing workspace to delete - should create first then delete")] + public async Task DeleteWorkspace() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspaceName = "test-wrksp-dotnet01"; + var workspace = await resourceGroup.GetWorkspaces().GetAsync(workspaceName); + + // Act + var operation = await workspace.Value.DeleteAsync(WaitUntil.Completed); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + } + + [RecordedTest] + [Ignore("Requires existing workspace with properties that can be updated")] + public async Task UpdateWorkspace() + { + // Arrange + var resourceGroup = await GetResourceGroupAsync(TestEnvironment.ResourceGroupName); + var workspaceName = TestEnvironment.WorkspaceName; + var workspace = await resourceGroup.GetWorkspaces().GetAsync(workspaceName); + + // Update tags matching Python/Java pattern + var updateData = workspace.Value.Data; + updateData.Tags["SkipAutoDeleteTill"] = "2026-12-31"; + + // Act + var operation = await resourceGroup.GetWorkspaces().CreateOrUpdateAsync( + WaitUntil.Completed, + workspaceName, + updateData); + + // Assert + Assert.That(operation.HasCompleted, Is.True); + Assert.That(operation.Value.Data.Tags.ContainsKey("SkipAutoDeleteTill"), Is.True); + } + } +} diff --git a/sdk/discovery/Azure.ResourceManager.Discovery/tsp-location.yaml b/sdk/discovery/Azure.ResourceManager.Discovery/tsp-location.yaml new file mode 100644 index 000000000000..6bcd29521b0f --- /dev/null +++ b/sdk/discovery/Azure.ResourceManager.Discovery/tsp-location.yaml @@ -0,0 +1,10 @@ +directory: specification/discovery/Discovery.Management +commit: 52f2a91499f8a39cfcb50453a9b36b8c3a681ed8 +repo: Azure/azure-rest-api-specs +additionalDirectories: +- specification/discovery/Discovery.Management.Shared +- specification/discovery/Discovery.Bookshelf.Management +- specification/discovery/Discovery.Supercomputer.Management +- specification/discovery/Discovery.Workspace.Management + +emitterPackageJsonPath: eng/azure-typespec-http-client-csharp-mgmt-emitter-package.json \ No newline at end of file