public virtual ArmOperation <GenericResource> Update(bool waitForCompletion, GenericResourceData parameters, CancellationToken cancellationToken = default) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _clientDiagnostics.CreateScope("GenericResource.Update"); scope.Start(); try { var apiVersion = GetApiVersion(cancellationToken); var response = _resourcesRestClient.UpdateById(Id, apiVersion, parameters, cancellationToken); var operation = new ResourcesArmOperation <GenericResource>(new GenericResourceOperationSource(Client), _clientDiagnostics, Pipeline, _resourcesRestClient.CreateUpdateByIdRequest(Id, apiVersion, parameters).Request, response, OperationFinalStateVia.Location); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
GenericResource IOperationSource <GenericResource> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = GenericResourceData.DeserializeGenericResourceData(document.RootElement); return(new GenericResource(_client, data)); }
/// <summary> Updates a resource by ID. </summary> /// <param name="parameters"> Update resource parameters. </param> /// <param name="waitForCompletion"> Waits for the completion of the long running operations. </param> /// <param name="cancellationToken"> The cancellation token to use. </param> /// <exception cref="ArgumentNullException"> <paramref name="parameters"/> is null. </exception> public virtual async Task <ResourceUpdateByIdOperation> UpdateAsync(GenericResourceData parameters, bool waitForCompletion = true, CancellationToken cancellationToken = default) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _clientDiagnostics.CreateScope("GenericResource.Update"); scope.Start(); try { var apiVersion = await GetApiVersionAsync(cancellationToken).ConfigureAwait(false); var originalResponse = await _restClient.UpdateByIdAsync(Id, apiVersion, parameters, cancellationToken).ConfigureAwait(false); var operation = new ResourceUpdateByIdOperation(this, _clientDiagnostics, Pipeline, _restClient.CreateUpdateByIdRequest(Id, apiVersion, parameters).Request, originalResponse); if (waitForCompletion) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> /// Initializes a new instance of the <see cref="GenericResource"/> class. /// </summary> /// <param name="operations"> The operations object to copy the client parameters from. </param> /// <param name="resource"> The data model representing the generic azure resource. </param> /// <exception cref="ArgumentNullException"> If <see cref="ArmClientOptions"/> or <see cref="TokenCredential"/> is null. </exception> internal GenericResource(ArmResource operations, GenericResourceData resource) : base(operations, resource.Id) { _data = resource; HasData = true; _clientDiagnostics = new ClientDiagnostics(ClientOptions); _restClient = new ResourcesRestOperations(_clientDiagnostics, Pipeline, ClientOptions, Id.SubscriptionId, BaseUri); }
/// <summary> Updates a resource by ID. </summary> /// <param name="parameters"> Update resource parameters. </param> /// <param name="cancellationToken"> The cancellation token to use. </param> /// <exception cref="ArgumentNullException"> <paramref name="parameters"/> is null. </exception> public virtual Response <GenericResource> Update(GenericResourceData parameters, CancellationToken cancellationToken = default) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = Diagnostics.CreateScope("GenericResourceOperations.Update"); scope.Start(); try { var operation = StartUpdate(parameters, cancellationToken); return(operation.WaitForCompletion(cancellationToken)); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> Updates a resource by ID. </summary> /// <param name="parameters"> Update resource parameters. </param> /// <param name="cancellationToken"> The cancellation token to use. </param> /// <exception cref="ArgumentNullException"> <paramref name="parameters"/> is null. </exception> public virtual ResourcesUpdateByIdOperation StartUpdate(GenericResourceData parameters, CancellationToken cancellationToken = default) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = Diagnostics.CreateScope("GenericResourceOperations.StartUpdate"); scope.Start(); try { var apiVersion = GetApiVersion(cancellationToken); var originalResponse = RestClient.UpdateById(Id, apiVersion, parameters, cancellationToken); return(new ResourcesUpdateByIdOperation(this, Diagnostics, Pipeline, RestClient.CreateUpdateByIdRequest(Id, apiVersion, parameters).Request, originalResponse)); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> Updates a resource by ID. </summary> /// <param name="parameters"> Update resource parameters. </param> /// <param name="cancellationToken"> The cancellation token to use. </param> /// <exception cref="ArgumentNullException"> <paramref name="parameters"/> is null. </exception> public virtual async Task <Response <GenericResource> > UpdateAsync(GenericResourceData parameters, CancellationToken cancellationToken = default) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = Diagnostics.CreateScope("GenericResourceOperations.Update"); scope.Start(); try { var operation = await StartUpdateAsync(parameters, cancellationToken).ConfigureAwait(false); return(await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false)); } catch (Exception e) { scope.Failed(e); throw; } }
public async virtual Task <ArmOperation <GenericResource> > CreateOrUpdateAsync(WaitUntil waitUntil, ResourceIdentifier resourceId, GenericResourceData parameters, CancellationToken cancellationToken = default) { if (resourceId == null) { throw new ArgumentNullException(nameof(resourceId)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _clientDiagnostics.CreateScope("GenericResourceCollection.CreateOrUpdate"); scope.Start(); try { var apiVersion = await GetApiVersionAsync(new ResourceIdentifier(resourceId), cancellationToken).ConfigureAwait(false); var response = await _resourcesRestClient.CreateOrUpdateByIdAsync(resourceId, apiVersion, parameters, cancellationToken).ConfigureAwait(false); var operation = new ResourcesArmOperation <GenericResource>(new GenericResourceOperationSource(Client), _clientDiagnostics, Pipeline, _resourcesRestClient.CreateCreateOrUpdateByIdRequest(resourceId, apiVersion, parameters).Request, response, OperationFinalStateVia.Location); if (waitUntil == WaitUntil.Completed) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> /// Initializes a new instance of the <see cref="GenericResource"/> class. /// </summary> /// <param name="operations"> The operations object to copy the client parameters from. </param> /// <param name="resource"> The data model representing the generic azure resource. </param> /// <exception cref="ArgumentNullException"> If <see cref="ArmClientOptions"/> or <see cref="TokenCredential"/> is null. </exception> internal GenericResource(ResourceOperations operations, GenericResourceData resource) : base(operations, resource.Id) { Data = resource; }
public virtual GenericResourceCreateOrUpdateOperation CreateOrUpdate(bool waitForCompletion, ResourceIdentifier resourceId, GenericResourceData parameters, CancellationToken cancellationToken = default) { if (resourceId == null) { throw new ArgumentNullException(nameof(resourceId)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _clientDiagnostics.CreateScope("GenericResourceCollection.CreateOrUpdate"); scope.Start(); try { var apiVersion = GetApiVersion(new ResourceIdentifier(resourceId), cancellationToken); var response = _resourcesRestClient.CreateOrUpdateById(resourceId, apiVersion, parameters, cancellationToken); var operation = new GenericResourceCreateOrUpdateOperation(ArmClient, _clientDiagnostics, Pipeline, _resourcesRestClient.CreateCreateOrUpdateByIdRequest(resourceId, apiVersion, parameters).Request, response); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> Create a resource by ID. </summary> /// <param name="resourceId"> The fully qualified ID of the resource, including the resource name and resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}. </param> /// <param name="parameters"> Create or update resource parameters. </param> /// <param name="waitForCompletion"> Waits for the completion of the long running operations. </param> /// <param name="cancellationToken"> The cancellation token to use. </param> /// <exception cref="ArgumentNullException"> <paramref name="resourceId"/> or <paramref name="parameters"/> is null. </exception> public virtual ResourceCreateOrUpdateByIdOperation CreateOrUpdate(string resourceId, GenericResourceData parameters, bool waitForCompletion = true, CancellationToken cancellationToken = default) { if (resourceId == null) { throw new ArgumentNullException(nameof(resourceId)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = Diagnostics.CreateScope("GenericResourceContainer.CreateOrUpdate"); scope.Start(); try { var apiVersion = GetApiVersion(resourceId, cancellationToken); var originalResponse = RestClient.CreateOrUpdateById(resourceId, apiVersion, parameters, cancellationToken); var operation = new ResourceCreateOrUpdateByIdOperation(this, Diagnostics, Pipeline, RestClient.CreateCreateOrUpdateByIdRequest(resourceId, apiVersion, parameters).Request, originalResponse); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
internal GenericResource(ArmClient client, GenericResourceData data) : this(client, data.Id) { HasData = true; _data = data; }
/// <summary> Create a resource by ID. </summary> /// <param name="resourceId"> The fully qualified ID of the resource, including the resource name and resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/{resource-provider-namespace}/{resource-type}/{resource-name}. </param> /// <param name="parameters"> Create or update resource parameters. </param> /// <param name="cancellationToken"> The cancellation token to use. </param> /// <exception cref="ArgumentNullException"> <paramref name="resourceId"/> or <paramref name="parameters"/> is null. </exception> public virtual async Task <ResourcesCreateOrUpdateByIdOperation> StartCreateOrUpdateAsync(string resourceId, GenericResourceData parameters, CancellationToken cancellationToken = default) { if (resourceId == null) { throw new ArgumentNullException(nameof(resourceId)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = Diagnostics.CreateScope("GenericResourceContainer.StartCreateOrUpdate"); scope.Start(); try { var apiVersion = await GetApiVersionAsync(resourceId, cancellationToken).ConfigureAwait(false); var originalResponse = await RestClient.CreateOrUpdateByIdAsync(resourceId, apiVersion, parameters, cancellationToken).ConfigureAwait(false); return(new ResourcesCreateOrUpdateByIdOperation(this, Diagnostics, Pipeline, RestClient.CreateCreateOrUpdateByIdRequest(resourceId, apiVersion, parameters).Request, originalResponse)); } catch (Exception e) { scope.Failed(e); throw; } }
public virtual ArmOperation <GenericResource> CreateOrUpdate(WaitUntil waitUntil, ResourceIdentifier resourceId, GenericResourceData data, CancellationToken cancellationToken = default) { if (resourceId == null) { throw new ArgumentNullException(nameof(resourceId)); } if (data == null) { throw new ArgumentNullException(nameof(data)); } using var scope = _clientDiagnostics.CreateScope("GenericResourceCollection.CreateOrUpdate"); scope.Start(); try { var apiVersion = GetApiVersion(new ResourceIdentifier(resourceId), cancellationToken); var response = _resourcesRestClient.CreateOrUpdateById(resourceId, apiVersion, data, cancellationToken); var operation = new ResourcesArmOperation <GenericResource>(new GenericResourceOperationSource(Client), _clientDiagnostics, Pipeline, _resourcesRestClient.CreateCreateOrUpdateByIdRequest(resourceId, apiVersion, data).Request, response, OperationFinalStateVia.Location); if (waitUntil == WaitUntil.Completed) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }