public Response Update(string resourceGroupName, string galleryName, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default) { if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (galleryName == null) { throw new ArgumentNullException(nameof(galleryName)); } if (sharingUpdate == null) { throw new ArgumentNullException(nameof(sharingUpdate)); } using var message = CreateUpdateRequest(resourceGroupName, galleryName, sharingUpdate); _pipeline.Send(message, cancellationToken); switch (message.Response.Status) { case 200: case 202: return(message.Response); default: throw _clientDiagnostics.CreateRequestFailedException(message.Response); } }
/// <summary> /// Update sharing profile of a gallery. /// </summary> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='galleryName'> /// The name of the Shared Image Gallery. /// </param> /// <param name='sharingUpdate'> /// Parameters supplied to the update gallery sharing profile. /// </param> /// <param name='customHeaders'> /// The headers that will be added to request. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public async Task <AzureOperationResponse <SharingUpdate> > UpdateWithHttpMessagesAsync(string resourceGroupName, string galleryName, SharingUpdate sharingUpdate, Dictionary <string, List <string> > customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { // Send request AzureOperationResponse <SharingUpdate> _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, galleryName, sharingUpdate, customHeaders, cancellationToken).ConfigureAwait(false); return(await Client.GetPostOrDeleteOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false)); }
/// <summary> /// Update sharing profile of a gallery. /// </summary> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='galleryName'> /// The name of the Shared Image Gallery. /// </param> /// <param name='sharingUpdate'> /// Parameters supplied to the update gallery sharing profile. /// </param> /// <param name='customHeaders'> /// Headers that will be added to request. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> /// <exception cref="CloudException"> /// Thrown when the operation returned an invalid status code /// </exception> /// <exception cref="SerializationException"> /// Thrown when unable to deserialize the response /// </exception> /// <exception cref="ValidationException"> /// Thrown when a required parameter is null /// </exception> /// <exception cref="System.ArgumentNullException"> /// Thrown when a required parameter is null /// </exception> /// <return> /// A response object containing the response body and response headers. /// </return> public async Task <AzureOperationResponse <SharingUpdate> > BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string galleryName, SharingUpdate sharingUpdate, Dictionary <string, List <string> > customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { if (Client.SubscriptionId == null) { throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); } if (resourceGroupName == null) { throw new ValidationException(ValidationRules.CannotBeNull, "resourceGroupName"); } if (galleryName == null) { throw new ValidationException(ValidationRules.CannotBeNull, "galleryName"); } if (sharingUpdate == null) { throw new ValidationException(ValidationRules.CannotBeNull, "sharingUpdate"); } if (sharingUpdate != null) { sharingUpdate.Validate(); } string apiVersion = "2021-07-01"; // Tracing bool _shouldTrace = ServiceClientTracing.IsEnabled; string _invocationId = null; if (_shouldTrace) { _invocationId = ServiceClientTracing.NextInvocationId.ToString(); Dictionary <string, object> tracingParameters = new Dictionary <string, object>(); tracingParameters.Add("resourceGroupName", resourceGroupName); tracingParameters.Add("galleryName", galleryName); tracingParameters.Add("apiVersion", apiVersion); tracingParameters.Add("sharingUpdate", sharingUpdate); tracingParameters.Add("cancellationToken", cancellationToken); ServiceClientTracing.Enter(_invocationId, this, "BeginUpdate", tracingParameters); } // Construct URL var _baseUrl = Client.BaseUri.AbsoluteUri; var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/share").ToString(); _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(Client.SubscriptionId)); _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); _url = _url.Replace("{galleryName}", System.Uri.EscapeDataString(galleryName)); List <string> _queryParameters = new List <string>(); if (apiVersion != null) { _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(apiVersion))); } if (_queryParameters.Count > 0) { _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); } // Create HTTP transport objects var _httpRequest = new HttpRequestMessage(); HttpResponseMessage _httpResponse = null; _httpRequest.Method = new HttpMethod("POST"); _httpRequest.RequestUri = new System.Uri(_url); // Set Headers if (Client.GenerateClientRequestId != null && Client.GenerateClientRequestId.Value) { _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); } if (Client.AcceptLanguage != null) { if (_httpRequest.Headers.Contains("accept-language")) { _httpRequest.Headers.Remove("accept-language"); } _httpRequest.Headers.TryAddWithoutValidation("accept-language", Client.AcceptLanguage); } if (customHeaders != null) { foreach (var _header in customHeaders) { if (_httpRequest.Headers.Contains(_header.Key)) { _httpRequest.Headers.Remove(_header.Key); } _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); } } // Serialize Request string _requestContent = null; if (sharingUpdate != null) { _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(sharingUpdate, Client.SerializationSettings); _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); } // Set Credentials if (Client.Credentials != null) { cancellationToken.ThrowIfCancellationRequested(); await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); } // Send Request if (_shouldTrace) { ServiceClientTracing.SendRequest(_invocationId, _httpRequest); } cancellationToken.ThrowIfCancellationRequested(); _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); if (_shouldTrace) { ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); } HttpStatusCode _statusCode = _httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); string _responseContent = null; if ((int)_statusCode != 200 && (int)_statusCode != 202) { var ex = new CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); try { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); CloudError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject <CloudError>(_responseContent, Client.DeserializationSettings); if (_errorBody != null) { ex = new CloudException(_errorBody.Message); ex.Body = _errorBody; } } catch (JsonException) { // Ignore the exception } ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); if (_httpResponse.Headers.Contains("x-ms-request-id")) { ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); } if (_shouldTrace) { ServiceClientTracing.Error(_invocationId, ex); } _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw ex; } // Create Result var _result = new AzureOperationResponse <SharingUpdate>(); _result.Request = _httpRequest; _result.Response = _httpResponse; if (_httpResponse.Headers.Contains("x-ms-request-id")) { _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); } // Deserialize Response if ((int)_statusCode == 200) { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); try { _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject <SharingUpdate>(_responseContent, Client.DeserializationSettings); } catch (JsonException ex) { _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); } } // Deserialize Response if ((int)_statusCode == 202) { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); try { _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject <SharingUpdate>(_responseContent, Client.DeserializationSettings); } catch (JsonException ex) { _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); } } if (_shouldTrace) { ServiceClientTracing.Exit(_invocationId, _result); } return(_result); }
public async Task <Response> UpdateAsync(string subscriptionId, string resourceGroupName, string galleryName, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default) { if (subscriptionId == null) { throw new ArgumentNullException(nameof(subscriptionId)); } if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (galleryName == null) { throw new ArgumentNullException(nameof(galleryName)); } if (sharingUpdate == null) { throw new ArgumentNullException(nameof(sharingUpdate)); } using var message = CreateUpdateRequest(subscriptionId, resourceGroupName, galleryName, sharingUpdate); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: case 202: return(message.Response); default: throw await ClientDiagnostics.CreateRequestFailedExceptionAsync(message.Response).ConfigureAwait(false); } }
internal HttpMessage CreateUpdateRequest(string subscriptionId, string resourceGroupName, string galleryName, SharingUpdate sharingUpdate) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Post; var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/subscriptions/", false); uri.AppendPath(subscriptionId, true); uri.AppendPath("/resourceGroups/", false); uri.AppendPath(resourceGroupName, true); uri.AppendPath("/providers/Microsoft.Compute/galleries/", false); uri.AppendPath(galleryName, true); uri.AppendPath("/share", false); uri.AppendQuery("api-version", _apiVersion, true); request.Uri = uri; request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); var content = new Utf8JsonRequestContent(); content.JsonWriter.WriteObjectValue(sharingUpdate); request.Content = content; message.SetProperty("SDKUserAgent", _userAgent); return(message); }
public void Gallery_WithSharingProfile_CRUD_Tests() { using (MockContext context = MockContext.Start(this.GetType())) { EnsureClientsInitialized(context); string rgName = ComputeManagementTestUtilities.GenerateName(ResourceGroupPrefix); m_ResourcesClient.ResourceGroups.CreateOrUpdate(rgName, new ResourceGroup { Location = galleryHomeLocation }); Trace.TraceInformation("Created the resource group: " + rgName); string galleryName = ComputeManagementTestUtilities.GenerateName(GalleryNamePrefix); Gallery galleryIn = GetTestInputSharedGallery(); m_CrpClient.Galleries.CreateOrUpdate(rgName, galleryName, galleryIn); Trace.TraceInformation(string.Format("Created the shared gallery: {0} in resource group: {1} with sharing profile permission: {2}", galleryName, rgName, galleryIn.SharingProfile.Permissions)); Gallery galleryOut = m_CrpClient.Galleries.Get(rgName, galleryName); Trace.TraceInformation("Got the gallery."); Assert.NotNull(galleryOut); ValidateGallery(galleryIn, galleryOut); Trace.TraceInformation("Update the sharing profile via post, add the sharing profile groups."); string newTenantId = "583d66a9-0041-4999-8838-75baece101d5"; SharingProfileGroup tenantGroups = new SharingProfileGroup() { Type = "AADTenants", Ids = new List <string> { newTenantId } }; string newSubId = "640c5810-13bf-4b82-b94d-f38c2565e3bc"; SharingProfileGroup subGroups = new SharingProfileGroup() { Type = "Subscriptions", Ids = new List <string> { newSubId } }; List <SharingProfileGroup> groups = new List <SharingProfileGroup> { tenantGroups, subGroups }; SharingUpdate sharingUpdate = new SharingUpdate() { OperationType = SharingUpdateOperationTypes.Add, Groups = groups }; m_CrpClient.GallerySharingProfile.Update(rgName, galleryName, sharingUpdate); Gallery galleryOutWithSharingProfile = m_CrpClient.Galleries.Get(rgName, galleryName, SelectPermissions.Permissions); Trace.TraceInformation("Got the gallery"); Assert.NotNull(galleryOut); ValidateSharingProfile(galleryIn, galleryOutWithSharingProfile, groups); Trace.TraceInformation("Reset this gallery to private before deleting it."); SharingUpdate resetPrivateUpdate = new SharingUpdate() { OperationType = SharingUpdateOperationTypes.Reset, Groups = null }; m_CrpClient.GallerySharingProfile.Update(rgName, galleryName, resetPrivateUpdate); Trace.TraceInformation("Deleting this gallery."); m_CrpClient.Galleries.Delete(rgName, galleryName); // resource groups cleanup is taken cared by MockContext.Dispose() method. } }
public void Gallery_SharingToCommunity_CRUD_Tests() { using (MockContext context = MockContext.Start(this.GetType())) { EnsureClientsInitialized(context); string rgName = ComputeManagementTestUtilities.GenerateName(ResourceGroupPrefix); try { m_ResourcesClient.ResourceGroups.CreateOrUpdate(rgName, new ResourceGroup { Location = galleryHomeLocation }); Trace.TraceInformation("Created the resource group: " + rgName); string galleryName = ComputeManagementTestUtilities.GenerateName(GalleryNamePrefix); Gallery galleryIn = GetTestInputCommunityGallery(); m_CrpClient.Galleries.CreateOrUpdate(rgName, galleryName, galleryIn); Trace.TraceInformation(string.Format("Created the community gallery: {0} in resource group: {1} with sharing profile permission: {2}", galleryName, rgName, galleryIn.SharingProfile.Permissions)); Gallery galleryOut = m_CrpClient.Galleries.Get(rgName, galleryName); Trace.TraceInformation("Got the gallery."); Assert.NotNull(galleryOut); ValidateGallery(galleryIn, galleryOut); Assert.NotNull(galleryOut.SharingProfile); Assert.NotNull(galleryOut.SharingProfile.CommunityGalleryInfo); Assert.Equal("Community", galleryOut.SharingProfile.Permissions); Trace.TraceInformation("Enable sharing to the public via post"); SharingUpdate sharingUpdate = new SharingUpdate() { OperationType = SharingUpdateOperationTypes.EnableCommunity }; m_CrpClient.GallerySharingProfile.Update(rgName, galleryName, sharingUpdate); Gallery galleryOutWithSharingProfile = m_CrpClient.Galleries.Get(rgName, galleryName, SelectPermissions.Permissions); Trace.TraceInformation("Got the gallery"); Assert.NotNull(galleryOutWithSharingProfile); CommunityGalleryInfo communityGalleryInfo = JsonConvert.DeserializeObject <CommunityGalleryInfo>(galleryOutWithSharingProfile.SharingProfile.CommunityGalleryInfo.ToString()); Assert.True(communityGalleryInfo.CommunityGalleryEnabled); Trace.TraceInformation("Reset this gallery to private before deleting it."); SharingUpdate resetPrivateUpdate = new SharingUpdate() { OperationType = SharingUpdateOperationTypes.Reset }; m_CrpClient.GallerySharingProfile.Update(rgName, galleryName, resetPrivateUpdate); Trace.TraceInformation("Deleting this gallery."); m_CrpClient.Galleries.Delete(rgName, galleryName); } finally { m_ResourcesClient.ResourceGroups.Delete(rgName); } // resource groups cleanup is taken cared by MockContext.Dispose() method. } }
public async Task <Response> UpdateAsync(string subscriptionId, string resourceGroupName, string galleryName, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); Argument.AssertNotNullOrEmpty(galleryName, nameof(galleryName)); Argument.AssertNotNull(sharingUpdate, nameof(sharingUpdate)); using var message = CreateUpdateRequest(subscriptionId, resourceGroupName, galleryName, sharingUpdate); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: case 202: return(message.Response); default: throw new RequestFailedException(message.Response); } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (ShouldProcess(this.Name, VerbsData.Update)) { string resourceGroupName; string galleryName; switch (this.ParameterSetName) { case "ResourceIdParameter": resourceGroupName = GetResourceGroupName(this.ResourceId); galleryName = GetResourceName(this.ResourceId, "Microsoft.Compute/Galleries"); break; case "ObjectParameter": resourceGroupName = GetResourceGroupName(this.InputObject.Id); galleryName = GetResourceName(this.InputObject.Id, "Microsoft.Compute/Galleries"); break; default: resourceGroupName = this.ResourceGroupName; galleryName = this.Name; break; } Gallery gallery = new Gallery(); if (this.ParameterSetName == "ObjectParameter") { ComputeAutomationAutoMapperProfile.Mapper.Map <PSGallery, Gallery>(this.InputObject, gallery); } else { gallery = GalleriesClient.Get(resourceGroupName, galleryName); } if (this.IsParameterBound(c => c.Description)) { gallery.Description = this.Description; } if (this.IsParameterBound(c => c.Tag)) { gallery.Tags = this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value); } if (this.IsParameterBound(c => c.Permission)) { if (gallery.SharingProfile == null) { gallery.SharingProfile = new SharingProfile(); } gallery.SharingProfile.Permissions = this.Permission; } SharingUpdate sharingUpdate = new SharingUpdate(); if (this.Share.IsPresent) { if (this.Reset.IsPresent) { // if sub or tenant is present return error if (this.IsParameterBound(c => c.Subscription) || this.IsParameterBound(c => c.Tenant)) { throw new Exception("Parameter '-Reset' cannot be used with parameters '-Tenant' or '-Subscription'."); } else { sharingUpdate.OperationType = "Reset"; } } if (this.IsParameterBound(c => c.Subscription)) { if (sharingUpdate.Groups == null) { sharingUpdate.Groups = new List <SharingProfileGroup>(); } SharingProfileGroup sharingProfile = new SharingProfileGroup(); sharingProfile.Type = "Subscriptions"; sharingProfile.Ids = new List <string>(); foreach (var id in this.Subscription) { sharingProfile.Ids.Add(id); } sharingUpdate.Groups.Add(sharingProfile); sharingUpdate.OperationType = "Add"; } if (this.IsParameterBound(c => c.Tenant)) { if (sharingUpdate.Groups == null) { sharingUpdate.Groups = new List <SharingProfileGroup>(); } SharingProfileGroup sharingProfile = new SharingProfileGroup(); sharingProfile.Type = "AADTenants"; sharingProfile.Ids = new List <string>(); foreach (var id in this.Tenant) { sharingProfile.Ids.Add(id); } sharingUpdate.Groups.Add(sharingProfile); sharingUpdate.OperationType = "Add"; } if (this.IsParameterBound(c => c.RemoveTenant)) { if (sharingUpdate.Groups == null) { sharingUpdate.Groups = new List <SharingProfileGroup>(); } SharingProfileGroup sharingProfile = new SharingProfileGroup(); sharingProfile.Type = "AADTenants"; sharingProfile.Ids = new List <string>(); foreach (var id in this.RemoveTenant) { sharingProfile.Ids.Add(id); } sharingUpdate.Groups.Add(sharingProfile); sharingUpdate.OperationType = "Remove"; } if (this.IsParameterBound(c => c.RemoveSubscription)) { if (sharingUpdate.Groups == null) { sharingUpdate.Groups = new List <SharingProfileGroup>(); } SharingProfileGroup sharingProfile = new SharingProfileGroup(); sharingProfile.Type = "Subscriptions"; sharingProfile.Ids = new List <string>(); foreach (var id in this.RemoveSubscription) { sharingProfile.Ids.Add(id); } sharingUpdate.Groups.Add(sharingProfile); sharingUpdate.OperationType = "Remove"; } } else if (this.IsParameterBound(c => c.Subscription) || this.IsParameterBound(c => c.Tenant) || this.Reset.IsPresent || this.IsParameterBound(c => c.RemoveSubscription) || this.IsParameterBound(c => c.RemoveTenant)) { throw new Exception("Parameters '-Subscription', '-Tenant', '-RemoveSubscription', '-RemoveTenant', and '-Reset' must be used with '-Share' parameter."); } var result = GalleriesClient.CreateOrUpdate(resourceGroupName, galleryName, gallery); if (this.Share.IsPresent) { GallerySharingProfileClient.Update(resourceGroupName, galleryName, sharingUpdate); result = GalleriesClient.Get(ResourceGroupName, galleryName, "Permissions"); } var psObject = new PSGallery(); ComputeAutomationAutoMapperProfile.Mapper.Map <Gallery, PSGallery>(result, psObject); WriteObject(psObject); } }); }
public virtual ArmOperation <SharingUpdate> UpdateSharingProfile(bool waitForCompletion, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default) { Argument.AssertNotNull(sharingUpdate, nameof(sharingUpdate)); using var scope = _gallerySharingProfileClientDiagnostics.CreateScope("Gallery.UpdateSharingProfile"); scope.Start(); try { var response = _gallerySharingProfileRestClient.Update(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, sharingUpdate, cancellationToken); var operation = new ComputeArmOperation <SharingUpdate>(new SharingUpdateOperationSource(), _gallerySharingProfileClientDiagnostics, Pipeline, _gallerySharingProfileRestClient.CreateUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, sharingUpdate).Request, response, OperationFinalStateVia.Location); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public virtual GalleryUpdateSharingProfileOperation UpdateSharingProfile(bool waitForCompletion, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default) { if (sharingUpdate == null) { throw new ArgumentNullException(nameof(sharingUpdate)); } using var scope = _gallerySharingProfileClientDiagnostics.CreateScope("Gallery.UpdateSharingProfile"); scope.Start(); try { var response = _gallerySharingProfileRestClient.Update(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, sharingUpdate, cancellationToken); var operation = new GalleryUpdateSharingProfileOperation(_gallerySharingProfileClientDiagnostics, Pipeline, _gallerySharingProfileRestClient.CreateUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, sharingUpdate).Request, response); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
/// <summary> /// Update sharing profile of a gallery. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='galleryName'> /// The name of the Shared Image Gallery. /// </param> /// <param name='sharingUpdate'> /// Parameters supplied to the update gallery sharing profile. /// </param> public static SharingUpdate BeginUpdate(this IGallerySharingProfileOperations operations, string resourceGroupName, string galleryName, SharingUpdate sharingUpdate) { return(operations.BeginUpdateAsync(resourceGroupName, galleryName, sharingUpdate).GetAwaiter().GetResult()); }
/// <summary> /// Update sharing profile of a gallery. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. /// </param> /// <param name='galleryName'> /// The name of the Shared Image Gallery. /// </param> /// <param name='sharingUpdate'> /// Parameters supplied to the update gallery sharing profile. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <SharingUpdate> UpdateAsync(this IGallerySharingProfileOperations operations, string resourceGroupName, string galleryName, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, galleryName, sharingUpdate, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public async virtual Task <ArmOperation <SharingUpdate> > UpdateSharingProfileAsync(bool waitForCompletion, SharingUpdate sharingUpdate, CancellationToken cancellationToken = default) { if (sharingUpdate == null) { throw new ArgumentNullException(nameof(sharingUpdate)); } using var scope = _gallerySharingProfileClientDiagnostics.CreateScope("Gallery.UpdateSharingProfile"); scope.Start(); try { var response = await _gallerySharingProfileRestClient.UpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, sharingUpdate, cancellationToken).ConfigureAwait(false); var operation = new ComputeArmOperation <SharingUpdate>(new SharingUpdateOperationSource(), _gallerySharingProfileClientDiagnostics, Pipeline, _gallerySharingProfileRestClient.CreateUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, sharingUpdate).Request, response, OperationFinalStateVia.Location); if (waitForCompletion) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }