mirror of
https://github.com/dotnet/skills.git
synced 2026-09-20 09:49:54 +08:00
042a9d2b2c
* Reorganize plugins per agreed structure (#271) Split the dotnet plugin into domain-specific plugins per discussion in #271: - dotnet: narrowed to common everyday C#/.NET coding tasks - dotnet-diag: perf investigations, debugging, incident analysis - dotnet-data: data access and Entity Framework - dotnet-aspnet, dotnet-wpf, dotnet-winforms, dotnet-maui: scaffolded empty to convey intent for future framework-specific skills Moved skills, tests, and CODEOWNERS entries accordingly. No file content was changed; all skill/test moves are pure renames. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve dotnet-diag and dotnet-winforms descriptions - dotnet-diag: add '.NET' qualifier to clarify scope - dotnet-winforms: use official 'Windows Forms (WinForms)' name Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add .NET qualifier to dotnet-data description Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Remove empty plugins; list them in CONTRIBUTING.md as future options Remove the four empty placeholder plugins (dotnet-aspnet, dotnet-wpf, dotnet-winforms, dotnet-maui) that had only plugin.json and no skills. Add a 'Plugin organization' section to CONTRIBUTING.md that describes the domain-specific plugin groupings introduced in this PR and lists the four removed plugin names as reserved candidates for future contributions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Create dotnet-upgrade plugin with migration/upgrade skills Move migrate-nullable-references, thread-abort-migration, and dotnet-aot-compat from dotnet to the new dotnet-upgrade plugin. Update CODEOWNERS paths (same owners), CONTRIBUTING.md plugin table, and fix the thread-abort-migration SKILL.md link in CONTRIBUTING.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
517 lines
29 KiB
C#
517 lines
29 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
// <auto-generated/>
|
|
|
|
#nullable disable
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Azure.Core;
|
|
using Azure.Core.Pipeline;
|
|
|
|
namespace Azure.ResourceManager.ManagementGroups
|
|
{
|
|
/// <summary>
|
|
/// A class representing a collection of <see cref="ManagementGroupSubscriptionResource"/> and their operations.
|
|
/// Each <see cref="ManagementGroupSubscriptionResource"/> in the collection will belong to the same instance of <see cref="ManagementGroupResource"/>.
|
|
/// To get a <see cref="ManagementGroupSubscriptionCollection"/> instance call the GetManagementGroupSubscriptions method from an instance of <see cref="ManagementGroupResource"/>.
|
|
/// </summary>
|
|
public partial class ManagementGroupSubscriptionCollection : ArmCollection, IEnumerable<ManagementGroupSubscriptionResource>, IAsyncEnumerable<ManagementGroupSubscriptionResource>
|
|
{
|
|
private readonly ClientDiagnostics _managementGroupSubscriptionClientDiagnostics;
|
|
private readonly ManagementGroupSubscriptionsRestOperations _managementGroupSubscriptionRestClient;
|
|
|
|
/// <summary> Initializes a new instance of the <see cref="ManagementGroupSubscriptionCollection"/> class for mocking. </summary>
|
|
protected ManagementGroupSubscriptionCollection()
|
|
{
|
|
}
|
|
|
|
/// <summary> Initializes a new instance of the <see cref="ManagementGroupSubscriptionCollection"/> class. </summary>
|
|
/// <param name="client"> The client parameters to use in these operations. </param>
|
|
/// <param name="id"> The identifier of the parent resource that is the target of operations. </param>
|
|
internal ManagementGroupSubscriptionCollection(ArmClient client, ResourceIdentifier id) : base(client, id)
|
|
{
|
|
_managementGroupSubscriptionClientDiagnostics = new ClientDiagnostics("Azure.ResourceManager.ManagementGroups", ManagementGroupSubscriptionResource.ResourceType.Namespace, Diagnostics);
|
|
TryGetApiVersion(ManagementGroupSubscriptionResource.ResourceType, out string managementGroupSubscriptionApiVersion);
|
|
_managementGroupSubscriptionRestClient = new ManagementGroupSubscriptionsRestOperations(Pipeline, Diagnostics.ApplicationId, Endpoint, managementGroupSubscriptionApiVersion);
|
|
#if DEBUG
|
|
ValidateResourceId(Id);
|
|
#endif
|
|
}
|
|
|
|
internal static void ValidateResourceId(ResourceIdentifier id)
|
|
{
|
|
if (id.ResourceType != ManagementGroupResource.ResourceType)
|
|
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Invalid resource type {0} expected {1}", id.ResourceType, ManagementGroupResource.ResourceType), nameof(id));
|
|
}
|
|
|
|
/// <summary>
|
|
/// Associates existing subscription with the management group.
|
|
///
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_Create</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="waitUntil"> <see cref="WaitUntil.Completed"/> if the method should wait to return until the long-running operation has completed on the service; <see cref="WaitUntil.Started"/> if it should return after starting the operation. For more information on long-running operations, please see <see href="https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/LongRunningOperations.md"> Azure.Core Long-Running Operation samples</see>. </param>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual async Task<ArmOperation<ManagementGroupSubscriptionResource>> CreateOrUpdateAsync(WaitUntil waitUntil, string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.CreateOrUpdate");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = await _managementGroupSubscriptionRestClient.CreateAsync(Id.Name, subscriptionId, cacheControl, cancellationToken).ConfigureAwait(false);
|
|
var uri = _managementGroupSubscriptionRestClient.CreateCreateRequestUri(Id.Name, subscriptionId, cacheControl);
|
|
var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Put, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString());
|
|
var operation = new ManagementGroupsArmOperation<ManagementGroupSubscriptionResource>(Response.FromValue(new ManagementGroupSubscriptionResource(Client, response), response.GetRawResponse()), rehydrationToken);
|
|
if (waitUntil == WaitUntil.Completed)
|
|
await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false);
|
|
return operation;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Associates existing subscription with the management group.
|
|
///
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_Create</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="waitUntil"> <see cref="WaitUntil.Completed"/> if the method should wait to return until the long-running operation has completed on the service; <see cref="WaitUntil.Started"/> if it should return after starting the operation. For more information on long-running operations, please see <see href="https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/LongRunningOperations.md"> Azure.Core Long-Running Operation samples</see>. </param>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual ArmOperation<ManagementGroupSubscriptionResource> CreateOrUpdate(WaitUntil waitUntil, string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.CreateOrUpdate");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = _managementGroupSubscriptionRestClient.Create(Id.Name, subscriptionId, cacheControl, cancellationToken);
|
|
var uri = _managementGroupSubscriptionRestClient.CreateCreateRequestUri(Id.Name, subscriptionId, cacheControl);
|
|
var rehydrationToken = NextLinkOperationImplementation.GetRehydrationToken(RequestMethod.Put, uri.ToUri(), uri.ToString(), "None", null, OperationFinalStateVia.OriginalUri.ToString());
|
|
var operation = new ManagementGroupsArmOperation<ManagementGroupSubscriptionResource>(Response.FromValue(new ManagementGroupSubscriptionResource(Client, response), response.GetRawResponse()), rehydrationToken);
|
|
if (waitUntil == WaitUntil.Completed)
|
|
operation.WaitForCompletion(cancellationToken);
|
|
return operation;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves details about given subscription which is associated with the management group.
|
|
///
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscription</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual async Task<Response<ManagementGroupSubscriptionResource>> GetAsync(string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.Get");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = await _managementGroupSubscriptionRestClient.GetSubscriptionAsync(Id.Name, subscriptionId, cacheControl, cancellationToken).ConfigureAwait(false);
|
|
if (response.Value == null)
|
|
throw new RequestFailedException(response.GetRawResponse());
|
|
return Response.FromValue(new ManagementGroupSubscriptionResource(Client, response.Value), response.GetRawResponse());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves details about given subscription which is associated with the management group.
|
|
///
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscription</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual Response<ManagementGroupSubscriptionResource> Get(string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.Get");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = _managementGroupSubscriptionRestClient.GetSubscription(Id.Name, subscriptionId, cacheControl, cancellationToken);
|
|
if (response.Value == null)
|
|
throw new RequestFailedException(response.GetRawResponse());
|
|
return Response.FromValue(new ManagementGroupSubscriptionResource(Client, response.Value), response.GetRawResponse());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves details about all subscriptions which are associated with the management group.
|
|
///
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscriptionsUnderManagementGroup</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="skipToken">
|
|
/// Page continuation token is only used if a previous operation returned a partial result.
|
|
/// If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.
|
|
///
|
|
/// </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <returns> An async collection of <see cref="ManagementGroupSubscriptionResource"/> that may take multiple service requests to iterate over. </returns>
|
|
public virtual AsyncPageable<ManagementGroupSubscriptionResource> GetAllAsync(string skipToken = null, CancellationToken cancellationToken = default)
|
|
{
|
|
HttpMessage FirstPageRequest(int? pageSizeHint) => _managementGroupSubscriptionRestClient.CreateGetSubscriptionsUnderManagementGroupRequest(Id.Name, skipToken);
|
|
HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _managementGroupSubscriptionRestClient.CreateGetSubscriptionsUnderManagementGroupNextPageRequest(nextLink, Id.Name, skipToken);
|
|
return GeneratorPageableHelpers.CreateAsyncPageable(FirstPageRequest, NextPageRequest, e => new ManagementGroupSubscriptionResource(Client, ManagementGroupSubscriptionData.DeserializeManagementGroupSubscriptionData(e)), _managementGroupSubscriptionClientDiagnostics, Pipeline, "ManagementGroupSubscriptionCollection.GetAll", "value", "nextLink", cancellationToken);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves details about all subscriptions which are associated with the management group.
|
|
///
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscriptionsUnderManagementGroup</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="skipToken">
|
|
/// Page continuation token is only used if a previous operation returned a partial result.
|
|
/// If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.
|
|
///
|
|
/// </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <returns> A collection of <see cref="ManagementGroupSubscriptionResource"/> that may take multiple service requests to iterate over. </returns>
|
|
public virtual Pageable<ManagementGroupSubscriptionResource> GetAll(string skipToken = null, CancellationToken cancellationToken = default)
|
|
{
|
|
HttpMessage FirstPageRequest(int? pageSizeHint) => _managementGroupSubscriptionRestClient.CreateGetSubscriptionsUnderManagementGroupRequest(Id.Name, skipToken);
|
|
HttpMessage NextPageRequest(int? pageSizeHint, string nextLink) => _managementGroupSubscriptionRestClient.CreateGetSubscriptionsUnderManagementGroupNextPageRequest(nextLink, Id.Name, skipToken);
|
|
return GeneratorPageableHelpers.CreatePageable(FirstPageRequest, NextPageRequest, e => new ManagementGroupSubscriptionResource(Client, ManagementGroupSubscriptionData.DeserializeManagementGroupSubscriptionData(e)), _managementGroupSubscriptionClientDiagnostics, Pipeline, "ManagementGroupSubscriptionCollection.GetAll", "value", "nextLink", cancellationToken);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Checks to see if the resource exists in azure.
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscription</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual async Task<Response<bool>> ExistsAsync(string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.Exists");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = await _managementGroupSubscriptionRestClient.GetSubscriptionAsync(Id.Name, subscriptionId, cacheControl, cancellationToken: cancellationToken).ConfigureAwait(false);
|
|
return Response.FromValue(response.Value != null, response.GetRawResponse());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Checks to see if the resource exists in azure.
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscription</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual Response<bool> Exists(string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.Exists");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = _managementGroupSubscriptionRestClient.GetSubscription(Id.Name, subscriptionId, cacheControl, cancellationToken: cancellationToken);
|
|
return Response.FromValue(response.Value != null, response.GetRawResponse());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tries to get details for this resource from the service.
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscription</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual async Task<NullableResponse<ManagementGroupSubscriptionResource>> GetIfExistsAsync(string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.GetIfExists");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = await _managementGroupSubscriptionRestClient.GetSubscriptionAsync(Id.Name, subscriptionId, cacheControl, cancellationToken: cancellationToken).ConfigureAwait(false);
|
|
if (response.Value == null)
|
|
return new NoValueResponse<ManagementGroupSubscriptionResource>(response.GetRawResponse());
|
|
return Response.FromValue(new ManagementGroupSubscriptionResource(Client, response.Value), response.GetRawResponse());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Tries to get details for this resource from the service.
|
|
/// <list type="bullet">
|
|
/// <item>
|
|
/// <term>Request Path</term>
|
|
/// <description>/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Operation Id</term>
|
|
/// <description>ManagementGroupSubscriptions_GetSubscription</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Default Api Version</term>
|
|
/// <description>2021-04-01</description>
|
|
/// </item>
|
|
/// <item>
|
|
/// <term>Resource</term>
|
|
/// <description><see cref="ManagementGroupSubscriptionResource"/></description>
|
|
/// </item>
|
|
/// </list>
|
|
/// </summary>
|
|
/// <param name="subscriptionId"> Subscription ID. </param>
|
|
/// <param name="cacheControl"> Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. </param>
|
|
/// <param name="cancellationToken"> The cancellation token to use. </param>
|
|
/// <exception cref="ArgumentException"> <paramref name="subscriptionId"/> is an empty string, and was expected to be non-empty. </exception>
|
|
/// <exception cref="ArgumentNullException"> <paramref name="subscriptionId"/> is null. </exception>
|
|
public virtual NullableResponse<ManagementGroupSubscriptionResource> GetIfExists(string subscriptionId, string cacheControl = null, CancellationToken cancellationToken = default)
|
|
{
|
|
Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId));
|
|
|
|
using var scope = _managementGroupSubscriptionClientDiagnostics.CreateScope("ManagementGroupSubscriptionCollection.GetIfExists");
|
|
scope.Start();
|
|
try
|
|
{
|
|
var response = _managementGroupSubscriptionRestClient.GetSubscription(Id.Name, subscriptionId, cacheControl, cancellationToken: cancellationToken);
|
|
if (response.Value == null)
|
|
return new NoValueResponse<ManagementGroupSubscriptionResource>(response.GetRawResponse());
|
|
return Response.FromValue(new ManagementGroupSubscriptionResource(Client, response.Value), response.GetRawResponse());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
scope.Failed(e);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
IEnumerator<ManagementGroupSubscriptionResource> IEnumerable<ManagementGroupSubscriptionResource>.GetEnumerator()
|
|
{
|
|
return GetAll().GetEnumerator();
|
|
}
|
|
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
{
|
|
return GetAll().GetEnumerator();
|
|
}
|
|
|
|
IAsyncEnumerator<ManagementGroupSubscriptionResource> IAsyncEnumerable<ManagementGroupSubscriptionResource>.GetAsyncEnumerator(CancellationToken cancellationToken)
|
|
{
|
|
return GetAllAsync(cancellationToken: cancellationToken).GetAsyncEnumerator(cancellationToken);
|
|
}
|
|
}
|
|
}
|