1package msi
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"context"
11	"encoding/json"
12	"github.com/Azure/go-autorest/autorest"
13	"github.com/Azure/go-autorest/autorest/to"
14	"github.com/Azure/go-autorest/tracing"
15	"github.com/gofrs/uuid"
16	"net/http"
17)
18
19// The package's fully qualified name.
20const fqdn = "github.com/Azure/azure-sdk-for-go/services/preview/msi/mgmt/2015-08-31-preview/msi"
21
22// AzureEntityResource the resource model definition for an Azure Resource Manager resource with an etag.
23type AzureEntityResource struct {
24	// Etag - READ-ONLY; Resource Etag.
25	Etag *string `json:"etag,omitempty"`
26	// ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
27	ID *string `json:"id,omitempty"`
28	// Name - READ-ONLY; The name of the resource
29	Name *string `json:"name,omitempty"`
30	// Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
31	Type *string `json:"type,omitempty"`
32}
33
34// MarshalJSON is the custom marshaler for AzureEntityResource.
35func (aer AzureEntityResource) MarshalJSON() ([]byte, error) {
36	objectMap := make(map[string]interface{})
37	return json.Marshal(objectMap)
38}
39
40// CloudError an error response from the ManagedServiceIdentity service.
41type CloudError struct {
42	// Error - A list of additional details about the error.
43	Error *CloudErrorBody `json:"error,omitempty"`
44}
45
46// CloudErrorBody an error response from the ManagedServiceIdentity service.
47type CloudErrorBody struct {
48	// Code - An identifier for the error.
49	Code *string `json:"code,omitempty"`
50	// Message - A message describing the error, intended to be suitable for display in a user interface.
51	Message *string `json:"message,omitempty"`
52	// Target - The target of the particular error. For example, the name of the property in error.
53	Target *string `json:"target,omitempty"`
54	// Details - A list of additional details about the error.
55	Details *[]CloudErrorBody `json:"details,omitempty"`
56}
57
58// Identity describes an identity resource.
59type Identity struct {
60	autorest.Response `json:"-"`
61	// IdentityProperties - READ-ONLY; The properties associated with the identity.
62	*IdentityProperties `json:"properties,omitempty"`
63	// Tags - Resource tags.
64	Tags map[string]*string `json:"tags"`
65	// Location - The geo-location where the resource lives
66	Location *string `json:"location,omitempty"`
67	// ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
68	ID *string `json:"id,omitempty"`
69	// Name - READ-ONLY; The name of the resource
70	Name *string `json:"name,omitempty"`
71	// Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
72	Type *string `json:"type,omitempty"`
73}
74
75// MarshalJSON is the custom marshaler for Identity.
76func (i Identity) MarshalJSON() ([]byte, error) {
77	objectMap := make(map[string]interface{})
78	if i.Tags != nil {
79		objectMap["tags"] = i.Tags
80	}
81	if i.Location != nil {
82		objectMap["location"] = i.Location
83	}
84	return json.Marshal(objectMap)
85}
86
87// UnmarshalJSON is the custom unmarshaler for Identity struct.
88func (i *Identity) UnmarshalJSON(body []byte) error {
89	var m map[string]*json.RawMessage
90	err := json.Unmarshal(body, &m)
91	if err != nil {
92		return err
93	}
94	for k, v := range m {
95		switch k {
96		case "properties":
97			if v != nil {
98				var identityProperties IdentityProperties
99				err = json.Unmarshal(*v, &identityProperties)
100				if err != nil {
101					return err
102				}
103				i.IdentityProperties = &identityProperties
104			}
105		case "tags":
106			if v != nil {
107				var tags map[string]*string
108				err = json.Unmarshal(*v, &tags)
109				if err != nil {
110					return err
111				}
112				i.Tags = tags
113			}
114		case "location":
115			if v != nil {
116				var location string
117				err = json.Unmarshal(*v, &location)
118				if err != nil {
119					return err
120				}
121				i.Location = &location
122			}
123		case "id":
124			if v != nil {
125				var ID string
126				err = json.Unmarshal(*v, &ID)
127				if err != nil {
128					return err
129				}
130				i.ID = &ID
131			}
132		case "name":
133			if v != nil {
134				var name string
135				err = json.Unmarshal(*v, &name)
136				if err != nil {
137					return err
138				}
139				i.Name = &name
140			}
141		case "type":
142			if v != nil {
143				var typeVar string
144				err = json.Unmarshal(*v, &typeVar)
145				if err != nil {
146					return err
147				}
148				i.Type = &typeVar
149			}
150		}
151	}
152
153	return nil
154}
155
156// IdentityProperties the properties associated with the identity.
157type IdentityProperties struct {
158	// TenantID - READ-ONLY; The id of the tenant which the identity belongs to.
159	TenantID *uuid.UUID `json:"tenantId,omitempty"`
160	// PrincipalID - READ-ONLY; The id of the service principal object associated with the created identity.
161	PrincipalID *uuid.UUID `json:"principalId,omitempty"`
162	// ClientID - READ-ONLY; The id of the app associated with the identity. This is a random generated UUID by MSI.
163	ClientID *uuid.UUID `json:"clientId,omitempty"`
164	// ClientSecretURL - READ-ONLY;  The ManagedServiceIdentity DataPlane URL that can be queried to obtain the identity credentials.
165	ClientSecretURL *string `json:"clientSecretUrl,omitempty"`
166}
167
168// MarshalJSON is the custom marshaler for IdentityProperties.
169func (IP IdentityProperties) MarshalJSON() ([]byte, error) {
170	objectMap := make(map[string]interface{})
171	return json.Marshal(objectMap)
172}
173
174// Operation operation supported by the Microsoft.ManagedIdentity REST API.
175type Operation struct {
176	// Name - The name of the REST Operation. This is of the format {provider}/{resource}/{operation}.
177	Name *string `json:"name,omitempty"`
178	// Display - The object that describes the operation.
179	Display *OperationDisplay `json:"display,omitempty"`
180}
181
182// OperationDisplay the object that describes the operation.
183type OperationDisplay struct {
184	// Provider - Friendly name of the resource provider.
185	Provider *string `json:"provider,omitempty"`
186	// Operation - The type of operation. For example: read, write, delete.
187	Operation *string `json:"operation,omitempty"`
188	// Resource - The resource type on which the operation is performed.
189	Resource *string `json:"resource,omitempty"`
190	// Description - A description of the operation.
191	Description *string `json:"description,omitempty"`
192}
193
194// OperationListResult a list of operations supported by Microsoft.ManagedIdentity Resource Provider.
195type OperationListResult struct {
196	autorest.Response `json:"-"`
197	// Value - A list of operations supported by Microsoft.ManagedIdentity Resource Provider.
198	Value *[]Operation `json:"value,omitempty"`
199	// NextLink - The url to get the next page of results, if any.
200	NextLink *string `json:"nextLink,omitempty"`
201}
202
203// OperationListResultIterator provides access to a complete listing of Operation values.
204type OperationListResultIterator struct {
205	i    int
206	page OperationListResultPage
207}
208
209// NextWithContext advances to the next value.  If there was an error making
210// the request the iterator does not advance and the error is returned.
211func (iter *OperationListResultIterator) NextWithContext(ctx context.Context) (err error) {
212	if tracing.IsEnabled() {
213		ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultIterator.NextWithContext")
214		defer func() {
215			sc := -1
216			if iter.Response().Response.Response != nil {
217				sc = iter.Response().Response.Response.StatusCode
218			}
219			tracing.EndSpan(ctx, sc, err)
220		}()
221	}
222	iter.i++
223	if iter.i < len(iter.page.Values()) {
224		return nil
225	}
226	err = iter.page.NextWithContext(ctx)
227	if err != nil {
228		iter.i--
229		return err
230	}
231	iter.i = 0
232	return nil
233}
234
235// Next advances to the next value.  If there was an error making
236// the request the iterator does not advance and the error is returned.
237// Deprecated: Use NextWithContext() instead.
238func (iter *OperationListResultIterator) Next() error {
239	return iter.NextWithContext(context.Background())
240}
241
242// NotDone returns true if the enumeration should be started or is not yet complete.
243func (iter OperationListResultIterator) NotDone() bool {
244	return iter.page.NotDone() && iter.i < len(iter.page.Values())
245}
246
247// Response returns the raw server response from the last page request.
248func (iter OperationListResultIterator) Response() OperationListResult {
249	return iter.page.Response()
250}
251
252// Value returns the current value or a zero-initialized value if the
253// iterator has advanced beyond the end of the collection.
254func (iter OperationListResultIterator) Value() Operation {
255	if !iter.page.NotDone() {
256		return Operation{}
257	}
258	return iter.page.Values()[iter.i]
259}
260
261// Creates a new instance of the OperationListResultIterator type.
262func NewOperationListResultIterator(page OperationListResultPage) OperationListResultIterator {
263	return OperationListResultIterator{page: page}
264}
265
266// IsEmpty returns true if the ListResult contains no values.
267func (olr OperationListResult) IsEmpty() bool {
268	return olr.Value == nil || len(*olr.Value) == 0
269}
270
271// hasNextLink returns true if the NextLink is not empty.
272func (olr OperationListResult) hasNextLink() bool {
273	return olr.NextLink != nil && len(*olr.NextLink) != 0
274}
275
276// operationListResultPreparer prepares a request to retrieve the next set of results.
277// It returns nil if no more results exist.
278func (olr OperationListResult) operationListResultPreparer(ctx context.Context) (*http.Request, error) {
279	if !olr.hasNextLink() {
280		return nil, nil
281	}
282	return autorest.Prepare((&http.Request{}).WithContext(ctx),
283		autorest.AsJSON(),
284		autorest.AsGet(),
285		autorest.WithBaseURL(to.String(olr.NextLink)))
286}
287
288// OperationListResultPage contains a page of Operation values.
289type OperationListResultPage struct {
290	fn  func(context.Context, OperationListResult) (OperationListResult, error)
291	olr OperationListResult
292}
293
294// NextWithContext advances to the next page of values.  If there was an error making
295// the request the page does not advance and the error is returned.
296func (page *OperationListResultPage) NextWithContext(ctx context.Context) (err error) {
297	if tracing.IsEnabled() {
298		ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultPage.NextWithContext")
299		defer func() {
300			sc := -1
301			if page.Response().Response.Response != nil {
302				sc = page.Response().Response.Response.StatusCode
303			}
304			tracing.EndSpan(ctx, sc, err)
305		}()
306	}
307	for {
308		next, err := page.fn(ctx, page.olr)
309		if err != nil {
310			return err
311		}
312		page.olr = next
313		if !next.hasNextLink() || !next.IsEmpty() {
314			break
315		}
316	}
317	return nil
318}
319
320// Next advances to the next page of values.  If there was an error making
321// the request the page does not advance and the error is returned.
322// Deprecated: Use NextWithContext() instead.
323func (page *OperationListResultPage) Next() error {
324	return page.NextWithContext(context.Background())
325}
326
327// NotDone returns true if the page enumeration should be started or is not yet complete.
328func (page OperationListResultPage) NotDone() bool {
329	return !page.olr.IsEmpty()
330}
331
332// Response returns the raw server response from the last page request.
333func (page OperationListResultPage) Response() OperationListResult {
334	return page.olr
335}
336
337// Values returns the slice of values for the current page or nil if there are no values.
338func (page OperationListResultPage) Values() []Operation {
339	if page.olr.IsEmpty() {
340		return nil
341	}
342	return *page.olr.Value
343}
344
345// Creates a new instance of the OperationListResultPage type.
346func NewOperationListResultPage(cur OperationListResult, getNextPage func(context.Context, OperationListResult) (OperationListResult, error)) OperationListResultPage {
347	return OperationListResultPage{
348		fn:  getNextPage,
349		olr: cur,
350	}
351}
352
353// ProxyResource the resource model definition for a Azure Resource Manager proxy resource. It will not
354// have tags and a location
355type ProxyResource struct {
356	// ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
357	ID *string `json:"id,omitempty"`
358	// Name - READ-ONLY; The name of the resource
359	Name *string `json:"name,omitempty"`
360	// Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
361	Type *string `json:"type,omitempty"`
362}
363
364// MarshalJSON is the custom marshaler for ProxyResource.
365func (pr ProxyResource) MarshalJSON() ([]byte, error) {
366	objectMap := make(map[string]interface{})
367	return json.Marshal(objectMap)
368}
369
370// Resource common fields that are returned in the response for all Azure Resource Manager resources
371type Resource struct {
372	// ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
373	ID *string `json:"id,omitempty"`
374	// Name - READ-ONLY; The name of the resource
375	Name *string `json:"name,omitempty"`
376	// Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
377	Type *string `json:"type,omitempty"`
378}
379
380// MarshalJSON is the custom marshaler for Resource.
381func (r Resource) MarshalJSON() ([]byte, error) {
382	objectMap := make(map[string]interface{})
383	return json.Marshal(objectMap)
384}
385
386// SystemAssignedIdentity describes a system assigned identity resource.
387type SystemAssignedIdentity struct {
388	autorest.Response `json:"-"`
389	// Location - The geo-location where the resource lives
390	Location *string `json:"location,omitempty"`
391	// Tags - Resource tags
392	Tags map[string]*string `json:"tags"`
393	// IdentityProperties - READ-ONLY; The properties associated with the identity.
394	*IdentityProperties `json:"properties,omitempty"`
395	// ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
396	ID *string `json:"id,omitempty"`
397	// Name - READ-ONLY; The name of the resource
398	Name *string `json:"name,omitempty"`
399	// Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
400	Type *string `json:"type,omitempty"`
401}
402
403// MarshalJSON is the custom marshaler for SystemAssignedIdentity.
404func (sai SystemAssignedIdentity) MarshalJSON() ([]byte, error) {
405	objectMap := make(map[string]interface{})
406	if sai.Location != nil {
407		objectMap["location"] = sai.Location
408	}
409	if sai.Tags != nil {
410		objectMap["tags"] = sai.Tags
411	}
412	return json.Marshal(objectMap)
413}
414
415// UnmarshalJSON is the custom unmarshaler for SystemAssignedIdentity struct.
416func (sai *SystemAssignedIdentity) UnmarshalJSON(body []byte) error {
417	var m map[string]*json.RawMessage
418	err := json.Unmarshal(body, &m)
419	if err != nil {
420		return err
421	}
422	for k, v := range m {
423		switch k {
424		case "location":
425			if v != nil {
426				var location string
427				err = json.Unmarshal(*v, &location)
428				if err != nil {
429					return err
430				}
431				sai.Location = &location
432			}
433		case "tags":
434			if v != nil {
435				var tags map[string]*string
436				err = json.Unmarshal(*v, &tags)
437				if err != nil {
438					return err
439				}
440				sai.Tags = tags
441			}
442		case "properties":
443			if v != nil {
444				var identityProperties IdentityProperties
445				err = json.Unmarshal(*v, &identityProperties)
446				if err != nil {
447					return err
448				}
449				sai.IdentityProperties = &identityProperties
450			}
451		case "id":
452			if v != nil {
453				var ID string
454				err = json.Unmarshal(*v, &ID)
455				if err != nil {
456					return err
457				}
458				sai.ID = &ID
459			}
460		case "name":
461			if v != nil {
462				var name string
463				err = json.Unmarshal(*v, &name)
464				if err != nil {
465					return err
466				}
467				sai.Name = &name
468			}
469		case "type":
470			if v != nil {
471				var typeVar string
472				err = json.Unmarshal(*v, &typeVar)
473				if err != nil {
474					return err
475				}
476				sai.Type = &typeVar
477			}
478		}
479	}
480
481	return nil
482}
483
484// TrackedResource the resource model definition for an Azure Resource Manager tracked top level resource
485// which has 'tags' and a 'location'
486type TrackedResource struct {
487	// Tags - Resource tags.
488	Tags map[string]*string `json:"tags"`
489	// Location - The geo-location where the resource lives
490	Location *string `json:"location,omitempty"`
491	// ID - READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
492	ID *string `json:"id,omitempty"`
493	// Name - READ-ONLY; The name of the resource
494	Name *string `json:"name,omitempty"`
495	// Type - READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
496	Type *string `json:"type,omitempty"`
497}
498
499// MarshalJSON is the custom marshaler for TrackedResource.
500func (tr TrackedResource) MarshalJSON() ([]byte, error) {
501	objectMap := make(map[string]interface{})
502	if tr.Tags != nil {
503		objectMap["tags"] = tr.Tags
504	}
505	if tr.Location != nil {
506		objectMap["location"] = tr.Location
507	}
508	return json.Marshal(objectMap)
509}
510
511// UserAssignedIdentitiesListResult values returned by the List operation.
512type UserAssignedIdentitiesListResult struct {
513	autorest.Response `json:"-"`
514	// Value - The collection of userAssignedIdentities returned by the listing operation.
515	Value *[]Identity `json:"value,omitempty"`
516	// NextLink - The url to get the next page of results, if any.
517	NextLink *string `json:"nextLink,omitempty"`
518}
519
520// UserAssignedIdentitiesListResultIterator provides access to a complete listing of Identity values.
521type UserAssignedIdentitiesListResultIterator struct {
522	i    int
523	page UserAssignedIdentitiesListResultPage
524}
525
526// NextWithContext advances to the next value.  If there was an error making
527// the request the iterator does not advance and the error is returned.
528func (iter *UserAssignedIdentitiesListResultIterator) NextWithContext(ctx context.Context) (err error) {
529	if tracing.IsEnabled() {
530		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesListResultIterator.NextWithContext")
531		defer func() {
532			sc := -1
533			if iter.Response().Response.Response != nil {
534				sc = iter.Response().Response.Response.StatusCode
535			}
536			tracing.EndSpan(ctx, sc, err)
537		}()
538	}
539	iter.i++
540	if iter.i < len(iter.page.Values()) {
541		return nil
542	}
543	err = iter.page.NextWithContext(ctx)
544	if err != nil {
545		iter.i--
546		return err
547	}
548	iter.i = 0
549	return nil
550}
551
552// Next advances to the next value.  If there was an error making
553// the request the iterator does not advance and the error is returned.
554// Deprecated: Use NextWithContext() instead.
555func (iter *UserAssignedIdentitiesListResultIterator) Next() error {
556	return iter.NextWithContext(context.Background())
557}
558
559// NotDone returns true if the enumeration should be started or is not yet complete.
560func (iter UserAssignedIdentitiesListResultIterator) NotDone() bool {
561	return iter.page.NotDone() && iter.i < len(iter.page.Values())
562}
563
564// Response returns the raw server response from the last page request.
565func (iter UserAssignedIdentitiesListResultIterator) Response() UserAssignedIdentitiesListResult {
566	return iter.page.Response()
567}
568
569// Value returns the current value or a zero-initialized value if the
570// iterator has advanced beyond the end of the collection.
571func (iter UserAssignedIdentitiesListResultIterator) Value() Identity {
572	if !iter.page.NotDone() {
573		return Identity{}
574	}
575	return iter.page.Values()[iter.i]
576}
577
578// Creates a new instance of the UserAssignedIdentitiesListResultIterator type.
579func NewUserAssignedIdentitiesListResultIterator(page UserAssignedIdentitiesListResultPage) UserAssignedIdentitiesListResultIterator {
580	return UserAssignedIdentitiesListResultIterator{page: page}
581}
582
583// IsEmpty returns true if the ListResult contains no values.
584func (uailr UserAssignedIdentitiesListResult) IsEmpty() bool {
585	return uailr.Value == nil || len(*uailr.Value) == 0
586}
587
588// hasNextLink returns true if the NextLink is not empty.
589func (uailr UserAssignedIdentitiesListResult) hasNextLink() bool {
590	return uailr.NextLink != nil && len(*uailr.NextLink) != 0
591}
592
593// userAssignedIdentitiesListResultPreparer prepares a request to retrieve the next set of results.
594// It returns nil if no more results exist.
595func (uailr UserAssignedIdentitiesListResult) userAssignedIdentitiesListResultPreparer(ctx context.Context) (*http.Request, error) {
596	if !uailr.hasNextLink() {
597		return nil, nil
598	}
599	return autorest.Prepare((&http.Request{}).WithContext(ctx),
600		autorest.AsJSON(),
601		autorest.AsGet(),
602		autorest.WithBaseURL(to.String(uailr.NextLink)))
603}
604
605// UserAssignedIdentitiesListResultPage contains a page of Identity values.
606type UserAssignedIdentitiesListResultPage struct {
607	fn    func(context.Context, UserAssignedIdentitiesListResult) (UserAssignedIdentitiesListResult, error)
608	uailr UserAssignedIdentitiesListResult
609}
610
611// NextWithContext advances to the next page of values.  If there was an error making
612// the request the page does not advance and the error is returned.
613func (page *UserAssignedIdentitiesListResultPage) NextWithContext(ctx context.Context) (err error) {
614	if tracing.IsEnabled() {
615		ctx = tracing.StartSpan(ctx, fqdn+"/UserAssignedIdentitiesListResultPage.NextWithContext")
616		defer func() {
617			sc := -1
618			if page.Response().Response.Response != nil {
619				sc = page.Response().Response.Response.StatusCode
620			}
621			tracing.EndSpan(ctx, sc, err)
622		}()
623	}
624	for {
625		next, err := page.fn(ctx, page.uailr)
626		if err != nil {
627			return err
628		}
629		page.uailr = next
630		if !next.hasNextLink() || !next.IsEmpty() {
631			break
632		}
633	}
634	return nil
635}
636
637// Next advances to the next page of values.  If there was an error making
638// the request the page does not advance and the error is returned.
639// Deprecated: Use NextWithContext() instead.
640func (page *UserAssignedIdentitiesListResultPage) Next() error {
641	return page.NextWithContext(context.Background())
642}
643
644// NotDone returns true if the page enumeration should be started or is not yet complete.
645func (page UserAssignedIdentitiesListResultPage) NotDone() bool {
646	return !page.uailr.IsEmpty()
647}
648
649// Response returns the raw server response from the last page request.
650func (page UserAssignedIdentitiesListResultPage) Response() UserAssignedIdentitiesListResult {
651	return page.uailr
652}
653
654// Values returns the slice of values for the current page or nil if there are no values.
655func (page UserAssignedIdentitiesListResultPage) Values() []Identity {
656	if page.uailr.IsEmpty() {
657		return nil
658	}
659	return *page.uailr.Value
660}
661
662// Creates a new instance of the UserAssignedIdentitiesListResultPage type.
663func NewUserAssignedIdentitiesListResultPage(cur UserAssignedIdentitiesListResult, getNextPage func(context.Context, UserAssignedIdentitiesListResult) (UserAssignedIdentitiesListResult, error)) UserAssignedIdentitiesListResultPage {
664	return UserAssignedIdentitiesListResultPage{
665		fn:    getNextPage,
666		uailr: cur,
667	}
668}
669