1package msi
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"context"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/azure"
24	"github.com/Azure/go-autorest/tracing"
25	"net/http"
26)
27
28// UserAssignedIdentitiesClient is the the Managed Service Identity Client.
29type UserAssignedIdentitiesClient struct {
30	BaseClient
31}
32
33// NewUserAssignedIdentitiesClient creates an instance of the UserAssignedIdentitiesClient client.
34func NewUserAssignedIdentitiesClient(subscriptionID string) UserAssignedIdentitiesClient {
35	return NewUserAssignedIdentitiesClientWithBaseURI(DefaultBaseURI, subscriptionID)
36}
37
38// NewUserAssignedIdentitiesClientWithBaseURI creates an instance of the UserAssignedIdentitiesClient client using a
39// custom endpoint.  Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds,
40// Azure stack).
41func NewUserAssignedIdentitiesClientWithBaseURI(baseURI string, subscriptionID string) UserAssignedIdentitiesClient {
42	return UserAssignedIdentitiesClient{NewWithBaseURI(baseURI, subscriptionID)}
43}
44
45// CreateOrUpdate create or update an identity in the specified subscription and resource group.
46// Parameters:
47// resourceGroupName - the name of the Resource Group to which the identity belongs.
48// resourceName - the name of the identity resource.
49// parameters - parameters to create or update the identity
50func (client UserAssignedIdentitiesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, resourceName string, parameters Identity) (result Identity, err error) {
51	if tracing.IsEnabled() {
52		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.CreateOrUpdate")
53		defer func() {
54			sc := -1
55			if result.Response.Response != nil {
56				sc = result.Response.Response.StatusCode
57			}
58			tracing.EndSpan(ctx, sc, err)
59		}()
60	}
61	req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, resourceName, parameters)
62	if err != nil {
63		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "CreateOrUpdate", nil, "Failure preparing request")
64		return
65	}
66
67	resp, err := client.CreateOrUpdateSender(req)
68	if err != nil {
69		result.Response = autorest.Response{Response: resp}
70		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "CreateOrUpdate", resp, "Failure sending request")
71		return
72	}
73
74	result, err = client.CreateOrUpdateResponder(resp)
75	if err != nil {
76		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "CreateOrUpdate", resp, "Failure responding to request")
77		return
78	}
79
80	return
81}
82
83// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
84func (client UserAssignedIdentitiesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, resourceName string, parameters Identity) (*http.Request, error) {
85	pathParameters := map[string]interface{}{
86		"resourceGroupName": autorest.Encode("path", resourceGroupName),
87		"resourceName":      autorest.Encode("path", resourceName),
88		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
89	}
90
91	const APIVersion = "2015-08-31-preview"
92	queryParameters := map[string]interface{}{
93		"api-version": APIVersion,
94	}
95
96	parameters.IdentityProperties = nil
97	preparer := autorest.CreatePreparer(
98		autorest.AsContentType("application/json; charset=utf-8"),
99		autorest.AsPut(),
100		autorest.WithBaseURL(client.BaseURI),
101		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}", pathParameters),
102		autorest.WithJSON(parameters),
103		autorest.WithQueryParameters(queryParameters))
104	return preparer.Prepare((&http.Request{}).WithContext(ctx))
105}
106
107// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
108// http.Response Body if it receives an error.
109func (client UserAssignedIdentitiesClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
110	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
111}
112
113// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
114// closes the http.Response Body.
115func (client UserAssignedIdentitiesClient) CreateOrUpdateResponder(resp *http.Response) (result Identity, err error) {
116	err = autorest.Respond(
117		resp,
118		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
119		autorest.ByUnmarshallingJSON(&result),
120		autorest.ByClosing())
121	result.Response = autorest.Response{Response: resp}
122	return
123}
124
125// Delete deletes the identity.
126// Parameters:
127// resourceGroupName - the name of the Resource Group to which the identity belongs.
128// resourceName - the name of the identity resource.
129func (client UserAssignedIdentitiesClient) Delete(ctx context.Context, resourceGroupName string, resourceName string) (result autorest.Response, err error) {
130	if tracing.IsEnabled() {
131		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.Delete")
132		defer func() {
133			sc := -1
134			if result.Response != nil {
135				sc = result.Response.StatusCode
136			}
137			tracing.EndSpan(ctx, sc, err)
138		}()
139	}
140	req, err := client.DeletePreparer(ctx, resourceGroupName, resourceName)
141	if err != nil {
142		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Delete", nil, "Failure preparing request")
143		return
144	}
145
146	resp, err := client.DeleteSender(req)
147	if err != nil {
148		result.Response = resp
149		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Delete", resp, "Failure sending request")
150		return
151	}
152
153	result, err = client.DeleteResponder(resp)
154	if err != nil {
155		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Delete", resp, "Failure responding to request")
156		return
157	}
158
159	return
160}
161
162// DeletePreparer prepares the Delete request.
163func (client UserAssignedIdentitiesClient) DeletePreparer(ctx context.Context, resourceGroupName string, resourceName string) (*http.Request, error) {
164	pathParameters := map[string]interface{}{
165		"resourceGroupName": autorest.Encode("path", resourceGroupName),
166		"resourceName":      autorest.Encode("path", resourceName),
167		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
168	}
169
170	const APIVersion = "2015-08-31-preview"
171	queryParameters := map[string]interface{}{
172		"api-version": APIVersion,
173	}
174
175	preparer := autorest.CreatePreparer(
176		autorest.AsDelete(),
177		autorest.WithBaseURL(client.BaseURI),
178		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}", pathParameters),
179		autorest.WithQueryParameters(queryParameters))
180	return preparer.Prepare((&http.Request{}).WithContext(ctx))
181}
182
183// DeleteSender sends the Delete request. The method will close the
184// http.Response Body if it receives an error.
185func (client UserAssignedIdentitiesClient) DeleteSender(req *http.Request) (*http.Response, error) {
186	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
187}
188
189// DeleteResponder handles the response to the Delete request. The method always
190// closes the http.Response Body.
191func (client UserAssignedIdentitiesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
192	err = autorest.Respond(
193		resp,
194		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
195		autorest.ByClosing())
196	result.Response = resp
197	return
198}
199
200// Get gets the identity.
201// Parameters:
202// resourceGroupName - the name of the Resource Group to which the identity belongs.
203// resourceName - the name of the identity resource.
204func (client UserAssignedIdentitiesClient) Get(ctx context.Context, resourceGroupName string, resourceName string) (result Identity, err error) {
205	if tracing.IsEnabled() {
206		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.Get")
207		defer func() {
208			sc := -1
209			if result.Response.Response != nil {
210				sc = result.Response.Response.StatusCode
211			}
212			tracing.EndSpan(ctx, sc, err)
213		}()
214	}
215	req, err := client.GetPreparer(ctx, resourceGroupName, resourceName)
216	if err != nil {
217		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Get", nil, "Failure preparing request")
218		return
219	}
220
221	resp, err := client.GetSender(req)
222	if err != nil {
223		result.Response = autorest.Response{Response: resp}
224		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Get", resp, "Failure sending request")
225		return
226	}
227
228	result, err = client.GetResponder(resp)
229	if err != nil {
230		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Get", resp, "Failure responding to request")
231		return
232	}
233
234	return
235}
236
237// GetPreparer prepares the Get request.
238func (client UserAssignedIdentitiesClient) GetPreparer(ctx context.Context, resourceGroupName string, resourceName string) (*http.Request, error) {
239	pathParameters := map[string]interface{}{
240		"resourceGroupName": autorest.Encode("path", resourceGroupName),
241		"resourceName":      autorest.Encode("path", resourceName),
242		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
243	}
244
245	const APIVersion = "2015-08-31-preview"
246	queryParameters := map[string]interface{}{
247		"api-version": APIVersion,
248	}
249
250	preparer := autorest.CreatePreparer(
251		autorest.AsGet(),
252		autorest.WithBaseURL(client.BaseURI),
253		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}", pathParameters),
254		autorest.WithQueryParameters(queryParameters))
255	return preparer.Prepare((&http.Request{}).WithContext(ctx))
256}
257
258// GetSender sends the Get request. The method will close the
259// http.Response Body if it receives an error.
260func (client UserAssignedIdentitiesClient) GetSender(req *http.Request) (*http.Response, error) {
261	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
262}
263
264// GetResponder handles the response to the Get request. The method always
265// closes the http.Response Body.
266func (client UserAssignedIdentitiesClient) GetResponder(resp *http.Response) (result Identity, err error) {
267	err = autorest.Respond(
268		resp,
269		azure.WithErrorUnlessStatusCode(http.StatusOK),
270		autorest.ByUnmarshallingJSON(&result),
271		autorest.ByClosing())
272	result.Response = autorest.Response{Response: resp}
273	return
274}
275
276// ListByResourceGroup lists all the userAssignedIdentities available under the specified ResourceGroup.
277// Parameters:
278// resourceGroupName - the name of the Resource Group to which the identity belongs.
279func (client UserAssignedIdentitiesClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result UserAssignedIdentitiesListResultPage, err error) {
280	if tracing.IsEnabled() {
281		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.ListByResourceGroup")
282		defer func() {
283			sc := -1
284			if result.uailr.Response.Response != nil {
285				sc = result.uailr.Response.Response.StatusCode
286			}
287			tracing.EndSpan(ctx, sc, err)
288		}()
289	}
290	result.fn = client.listByResourceGroupNextResults
291	req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName)
292	if err != nil {
293		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "ListByResourceGroup", nil, "Failure preparing request")
294		return
295	}
296
297	resp, err := client.ListByResourceGroupSender(req)
298	if err != nil {
299		result.uailr.Response = autorest.Response{Response: resp}
300		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "ListByResourceGroup", resp, "Failure sending request")
301		return
302	}
303
304	result.uailr, err = client.ListByResourceGroupResponder(resp)
305	if err != nil {
306		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "ListByResourceGroup", resp, "Failure responding to request")
307		return
308	}
309	if result.uailr.hasNextLink() && result.uailr.IsEmpty() {
310		err = result.NextWithContext(ctx)
311		return
312	}
313
314	return
315}
316
317// ListByResourceGroupPreparer prepares the ListByResourceGroup request.
318func (client UserAssignedIdentitiesClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
319	pathParameters := map[string]interface{}{
320		"resourceGroupName": autorest.Encode("path", resourceGroupName),
321		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
322	}
323
324	const APIVersion = "2015-08-31-preview"
325	queryParameters := map[string]interface{}{
326		"api-version": APIVersion,
327	}
328
329	preparer := autorest.CreatePreparer(
330		autorest.AsGet(),
331		autorest.WithBaseURL(client.BaseURI),
332		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities", pathParameters),
333		autorest.WithQueryParameters(queryParameters))
334	return preparer.Prepare((&http.Request{}).WithContext(ctx))
335}
336
337// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the
338// http.Response Body if it receives an error.
339func (client UserAssignedIdentitiesClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) {
340	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
341}
342
343// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always
344// closes the http.Response Body.
345func (client UserAssignedIdentitiesClient) ListByResourceGroupResponder(resp *http.Response) (result UserAssignedIdentitiesListResult, err error) {
346	err = autorest.Respond(
347		resp,
348		azure.WithErrorUnlessStatusCode(http.StatusOK),
349		autorest.ByUnmarshallingJSON(&result),
350		autorest.ByClosing())
351	result.Response = autorest.Response{Response: resp}
352	return
353}
354
355// listByResourceGroupNextResults retrieves the next set of results, if any.
356func (client UserAssignedIdentitiesClient) listByResourceGroupNextResults(ctx context.Context, lastResults UserAssignedIdentitiesListResult) (result UserAssignedIdentitiesListResult, err error) {
357	req, err := lastResults.userAssignedIdentitiesListResultPreparer(ctx)
358	if err != nil {
359		return result, autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request")
360	}
361	if req == nil {
362		return
363	}
364	resp, err := client.ListByResourceGroupSender(req)
365	if err != nil {
366		result.Response = autorest.Response{Response: resp}
367		return result, autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "listByResourceGroupNextResults", resp, "Failure sending next results request")
368	}
369	result, err = client.ListByResourceGroupResponder(resp)
370	if err != nil {
371		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request")
372	}
373	return
374}
375
376// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required.
377func (client UserAssignedIdentitiesClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result UserAssignedIdentitiesListResultIterator, err error) {
378	if tracing.IsEnabled() {
379		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.ListByResourceGroup")
380		defer func() {
381			sc := -1
382			if result.Response().Response.Response != nil {
383				sc = result.page.Response().Response.Response.StatusCode
384			}
385			tracing.EndSpan(ctx, sc, err)
386		}()
387	}
388	result.page, err = client.ListByResourceGroup(ctx, resourceGroupName)
389	return
390}
391
392// ListBySubscription lists all the userAssignedIdentities available under the specified subscription.
393func (client UserAssignedIdentitiesClient) ListBySubscription(ctx context.Context) (result UserAssignedIdentitiesListResultPage, err error) {
394	if tracing.IsEnabled() {
395		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.ListBySubscription")
396		defer func() {
397			sc := -1
398			if result.uailr.Response.Response != nil {
399				sc = result.uailr.Response.Response.StatusCode
400			}
401			tracing.EndSpan(ctx, sc, err)
402		}()
403	}
404	result.fn = client.listBySubscriptionNextResults
405	req, err := client.ListBySubscriptionPreparer(ctx)
406	if err != nil {
407		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "ListBySubscription", nil, "Failure preparing request")
408		return
409	}
410
411	resp, err := client.ListBySubscriptionSender(req)
412	if err != nil {
413		result.uailr.Response = autorest.Response{Response: resp}
414		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "ListBySubscription", resp, "Failure sending request")
415		return
416	}
417
418	result.uailr, err = client.ListBySubscriptionResponder(resp)
419	if err != nil {
420		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "ListBySubscription", resp, "Failure responding to request")
421		return
422	}
423	if result.uailr.hasNextLink() && result.uailr.IsEmpty() {
424		err = result.NextWithContext(ctx)
425		return
426	}
427
428	return
429}
430
431// ListBySubscriptionPreparer prepares the ListBySubscription request.
432func (client UserAssignedIdentitiesClient) ListBySubscriptionPreparer(ctx context.Context) (*http.Request, error) {
433	pathParameters := map[string]interface{}{
434		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
435	}
436
437	const APIVersion = "2015-08-31-preview"
438	queryParameters := map[string]interface{}{
439		"api-version": APIVersion,
440	}
441
442	preparer := autorest.CreatePreparer(
443		autorest.AsGet(),
444		autorest.WithBaseURL(client.BaseURI),
445		autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.ManagedIdentity/userAssignedIdentities", pathParameters),
446		autorest.WithQueryParameters(queryParameters))
447	return preparer.Prepare((&http.Request{}).WithContext(ctx))
448}
449
450// ListBySubscriptionSender sends the ListBySubscription request. The method will close the
451// http.Response Body if it receives an error.
452func (client UserAssignedIdentitiesClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) {
453	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
454}
455
456// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always
457// closes the http.Response Body.
458func (client UserAssignedIdentitiesClient) ListBySubscriptionResponder(resp *http.Response) (result UserAssignedIdentitiesListResult, err error) {
459	err = autorest.Respond(
460		resp,
461		azure.WithErrorUnlessStatusCode(http.StatusOK),
462		autorest.ByUnmarshallingJSON(&result),
463		autorest.ByClosing())
464	result.Response = autorest.Response{Response: resp}
465	return
466}
467
468// listBySubscriptionNextResults retrieves the next set of results, if any.
469func (client UserAssignedIdentitiesClient) listBySubscriptionNextResults(ctx context.Context, lastResults UserAssignedIdentitiesListResult) (result UserAssignedIdentitiesListResult, err error) {
470	req, err := lastResults.userAssignedIdentitiesListResultPreparer(ctx)
471	if err != nil {
472		return result, autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request")
473	}
474	if req == nil {
475		return
476	}
477	resp, err := client.ListBySubscriptionSender(req)
478	if err != nil {
479		result.Response = autorest.Response{Response: resp}
480		return result, autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "listBySubscriptionNextResults", resp, "Failure sending next results request")
481	}
482	result, err = client.ListBySubscriptionResponder(resp)
483	if err != nil {
484		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request")
485	}
486	return
487}
488
489// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required.
490func (client UserAssignedIdentitiesClient) ListBySubscriptionComplete(ctx context.Context) (result UserAssignedIdentitiesListResultIterator, err error) {
491	if tracing.IsEnabled() {
492		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.ListBySubscription")
493		defer func() {
494			sc := -1
495			if result.Response().Response.Response != nil {
496				sc = result.page.Response().Response.Response.StatusCode
497			}
498			tracing.EndSpan(ctx, sc, err)
499		}()
500	}
501	result.page, err = client.ListBySubscription(ctx)
502	return
503}
504
505// Update update an identity in the specified subscription and resource group.
506// Parameters:
507// resourceGroupName - the name of the Resource Group to which the identity belongs.
508// resourceName - the name of the identity resource.
509// parameters - parameters to update the identity
510func (client UserAssignedIdentitiesClient) Update(ctx context.Context, resourceGroupName string, resourceName string, parameters Identity) (result Identity, err error) {
511	if tracing.IsEnabled() {
512		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesClient.Update")
513		defer func() {
514			sc := -1
515			if result.Response.Response != nil {
516				sc = result.Response.Response.StatusCode
517			}
518			tracing.EndSpan(ctx, sc, err)
519		}()
520	}
521	req, err := client.UpdatePreparer(ctx, resourceGroupName, resourceName, parameters)
522	if err != nil {
523		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Update", nil, "Failure preparing request")
524		return
525	}
526
527	resp, err := client.UpdateSender(req)
528	if err != nil {
529		result.Response = autorest.Response{Response: resp}
530		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Update", resp, "Failure sending request")
531		return
532	}
533
534	result, err = client.UpdateResponder(resp)
535	if err != nil {
536		err = autorest.NewErrorWithError(err, "msi.UserAssignedIdentitiesClient", "Update", resp, "Failure responding to request")
537		return
538	}
539
540	return
541}
542
543// UpdatePreparer prepares the Update request.
544func (client UserAssignedIdentitiesClient) UpdatePreparer(ctx context.Context, resourceGroupName string, resourceName string, parameters Identity) (*http.Request, error) {
545	pathParameters := map[string]interface{}{
546		"resourceGroupName": autorest.Encode("path", resourceGroupName),
547		"resourceName":      autorest.Encode("path", resourceName),
548		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
549	}
550
551	const APIVersion = "2015-08-31-preview"
552	queryParameters := map[string]interface{}{
553		"api-version": APIVersion,
554	}
555
556	parameters.IdentityProperties = nil
557	preparer := autorest.CreatePreparer(
558		autorest.AsContentType("application/json; charset=utf-8"),
559		autorest.AsPatch(),
560		autorest.WithBaseURL(client.BaseURI),
561		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}", pathParameters),
562		autorest.WithJSON(parameters),
563		autorest.WithQueryParameters(queryParameters))
564	return preparer.Prepare((&http.Request{}).WithContext(ctx))
565}
566
567// UpdateSender sends the Update request. The method will close the
568// http.Response Body if it receives an error.
569func (client UserAssignedIdentitiesClient) UpdateSender(req *http.Request) (*http.Response, error) {
570	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
571}
572
573// UpdateResponder handles the response to the Update request. The method always
574// closes the http.Response Body.
575func (client UserAssignedIdentitiesClient) UpdateResponder(resp *http.Response) (result Identity, err error) {
576	err = autorest.Respond(
577		resp,
578		azure.WithErrorUnlessStatusCode(http.StatusOK),
579		autorest.ByUnmarshallingJSON(&result),
580		autorest.ByClosing())
581	result.Response = autorest.Response{Response: resp}
582	return
583}
584