@azure/arm-msi 2.1.0-beta.1 → 2.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/dist/index.js +406 -32
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.min.js +1 -1
  5. package/dist/index.min.js.map +1 -1
  6. package/dist-esm/samples-dev/federatedIdentityCredentialsCreateOrUpdateSample.d.ts +2 -0
  7. package/dist-esm/samples-dev/federatedIdentityCredentialsCreateOrUpdateSample.d.ts.map +1 -0
  8. package/dist-esm/samples-dev/federatedIdentityCredentialsCreateOrUpdateSample.js +37 -0
  9. package/dist-esm/samples-dev/federatedIdentityCredentialsCreateOrUpdateSample.js.map +1 -0
  10. package/dist-esm/samples-dev/federatedIdentityCredentialsDeleteSample.d.ts +2 -0
  11. package/dist-esm/samples-dev/federatedIdentityCredentialsDeleteSample.d.ts.map +1 -0
  12. package/dist-esm/samples-dev/federatedIdentityCredentialsDeleteSample.js +32 -0
  13. package/dist-esm/samples-dev/federatedIdentityCredentialsDeleteSample.js.map +1 -0
  14. package/dist-esm/samples-dev/federatedIdentityCredentialsGetSample.d.ts +2 -0
  15. package/dist-esm/samples-dev/federatedIdentityCredentialsGetSample.d.ts.map +1 -0
  16. package/dist-esm/samples-dev/federatedIdentityCredentialsGetSample.js +32 -0
  17. package/dist-esm/samples-dev/federatedIdentityCredentialsGetSample.js.map +1 -0
  18. package/dist-esm/samples-dev/federatedIdentityCredentialsListSample.d.ts +2 -0
  19. package/dist-esm/samples-dev/federatedIdentityCredentialsListSample.d.ts.map +1 -0
  20. package/dist-esm/samples-dev/federatedIdentityCredentialsListSample.js +45 -0
  21. package/dist-esm/samples-dev/federatedIdentityCredentialsListSample.js.map +1 -0
  22. package/dist-esm/samples-dev/operationsListSample.js +1 -1
  23. package/dist-esm/samples-dev/systemAssignedIdentitiesGetByScopeSample.js +1 -1
  24. package/dist-esm/samples-dev/userAssignedIdentitiesCreateOrUpdateSample.js +1 -1
  25. package/dist-esm/samples-dev/userAssignedIdentitiesDeleteSample.js +1 -1
  26. package/dist-esm/samples-dev/userAssignedIdentitiesGetSample.js +1 -1
  27. package/dist-esm/samples-dev/userAssignedIdentitiesListAssociatedResourcesSample.js +1 -1
  28. package/dist-esm/samples-dev/userAssignedIdentitiesListByResourceGroupSample.js +1 -1
  29. package/dist-esm/samples-dev/userAssignedIdentitiesListBySubscriptionSample.js +1 -1
  30. package/dist-esm/samples-dev/userAssignedIdentitiesUpdateSample.js +1 -1
  31. package/dist-esm/src/managedServiceIdentityClient.d.ts +4 -1
  32. package/dist-esm/src/managedServiceIdentityClient.d.ts.map +1 -1
  33. package/dist-esm/src/managedServiceIdentityClient.js +50 -6
  34. package/dist-esm/src/managedServiceIdentityClient.js.map +1 -1
  35. package/dist-esm/src/models/index.d.ts +57 -9
  36. package/dist-esm/src/models/index.d.ts.map +1 -1
  37. package/dist-esm/src/models/mappers.d.ts +2 -0
  38. package/dist-esm/src/models/mappers.d.ts.map +1 -1
  39. package/dist-esm/src/models/mappers.js +53 -0
  40. package/dist-esm/src/models/mappers.js.map +1 -1
  41. package/dist-esm/src/models/parameters.d.ts +2 -0
  42. package/dist-esm/src/models/parameters.d.ts.map +1 -1
  43. package/dist-esm/src/models/parameters.js +16 -2
  44. package/dist-esm/src/models/parameters.js.map +1 -1
  45. package/dist-esm/src/operations/federatedIdentityCredentials.d.ts +66 -0
  46. package/dist-esm/src/operations/federatedIdentityCredentials.d.ts.map +1 -0
  47. package/dist-esm/src/operations/federatedIdentityCredentials.js +265 -0
  48. package/dist-esm/src/operations/federatedIdentityCredentials.js.map +1 -0
  49. package/dist-esm/src/operations/index.d.ts +1 -0
  50. package/dist-esm/src/operations/index.d.ts.map +1 -1
  51. package/dist-esm/src/operations/index.js +1 -0
  52. package/dist-esm/src/operations/index.js.map +1 -1
  53. package/dist-esm/src/operationsInterfaces/federatedIdentityCredentials.d.ts +41 -0
  54. package/dist-esm/src/operationsInterfaces/federatedIdentityCredentials.d.ts.map +1 -0
  55. package/dist-esm/src/operationsInterfaces/federatedIdentityCredentials.js +9 -0
  56. package/dist-esm/src/operationsInterfaces/federatedIdentityCredentials.js.map +1 -0
  57. package/dist-esm/src/operationsInterfaces/index.d.ts +1 -0
  58. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -1
  59. package/dist-esm/src/operationsInterfaces/index.js +1 -0
  60. package/dist-esm/src/operationsInterfaces/index.js.map +1 -1
  61. package/dist-esm/test/sampleTest.js +11 -13
  62. package/dist-esm/test/sampleTest.js.map +1 -1
  63. package/package.json +12 -9
  64. package/review/arm-msi.api.md +77 -17
  65. package/src/managedServiceIdentityClient.ts +68 -7
  66. package/src/models/index.ts +69 -9
  67. package/src/models/mappers.ts +60 -0
  68. package/src/models/parameters.ts +19 -2
  69. package/src/operations/federatedIdentityCredentials.ts +342 -0
  70. package/src/operations/index.ts +1 -0
  71. package/src/operationsInterfaces/federatedIdentityCredentials.ts +78 -0
  72. package/src/operationsInterfaces/index.ts +1 -0
  73. package/types/arm-msi.d.ts +110 -9
  74. package/types/tsdoc-metadata.json +1 -1
@@ -7,16 +7,24 @@
7
7
  */
8
8
 
9
9
  import * as coreClient from "@azure/core-client";
10
+ import * as coreRestPipeline from "@azure/core-rest-pipeline";
11
+ import {
12
+ PipelineRequest,
13
+ PipelineResponse,
14
+ SendRequest
15
+ } from "@azure/core-rest-pipeline";
10
16
  import * as coreAuth from "@azure/core-auth";
11
17
  import {
12
18
  SystemAssignedIdentitiesImpl,
13
19
  OperationsImpl,
14
- UserAssignedIdentitiesImpl
20
+ UserAssignedIdentitiesImpl,
21
+ FederatedIdentityCredentialsImpl
15
22
  } from "./operations";
16
23
  import {
17
24
  SystemAssignedIdentities,
18
25
  Operations,
19
- UserAssignedIdentities
26
+ UserAssignedIdentities,
27
+ FederatedIdentityCredentials
20
28
  } from "./operationsInterfaces";
21
29
  import { ManagedServiceIdentityClientOptionalParams } from "./models";
22
30
 
@@ -52,15 +60,12 @@ export class ManagedServiceIdentityClient extends coreClient.ServiceClient {
52
60
  credential: credentials
53
61
  };
54
62
 
55
- const packageDetails = `azsdk-js-arm-msi/2.1.0-beta.1`;
63
+ const packageDetails = `azsdk-js-arm-msi/2.1.0-beta.2`;
56
64
  const userAgentPrefix =
57
65
  options.userAgentOptions && options.userAgentOptions.userAgentPrefix
58
66
  ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
59
67
  : `${packageDetails}`;
60
68
 
61
- if (!options.credentialScopes) {
62
- options.credentialScopes = ["https://management.azure.com/.default"];
63
- }
64
69
  const optionsWithDefaults = {
65
70
  ...defaults,
66
71
  ...options,
@@ -71,18 +76,74 @@ export class ManagedServiceIdentityClient extends coreClient.ServiceClient {
71
76
  options.endpoint ?? options.baseUri ?? "https://management.azure.com"
72
77
  };
73
78
  super(optionsWithDefaults);
79
+
80
+ if (options?.pipeline && options.pipeline.getOrderedPolicies().length > 0) {
81
+ const pipelinePolicies: coreRestPipeline.PipelinePolicy[] = options.pipeline.getOrderedPolicies();
82
+ const bearerTokenAuthenticationPolicyFound = pipelinePolicies.some(
83
+ (pipelinePolicy) =>
84
+ pipelinePolicy.name ===
85
+ coreRestPipeline.bearerTokenAuthenticationPolicyName
86
+ );
87
+ if (!bearerTokenAuthenticationPolicyFound) {
88
+ this.pipeline.removePolicy({
89
+ name: coreRestPipeline.bearerTokenAuthenticationPolicyName
90
+ });
91
+ this.pipeline.addPolicy(
92
+ coreRestPipeline.bearerTokenAuthenticationPolicy({
93
+ scopes: `${optionsWithDefaults.baseUri}/.default`,
94
+ challengeCallbacks: {
95
+ authorizeRequestOnChallenge:
96
+ coreClient.authorizeRequestOnClaimChallenge
97
+ }
98
+ })
99
+ );
100
+ }
101
+ }
74
102
  // Parameter assignments
75
103
  this.subscriptionId = subscriptionId;
76
104
 
77
105
  // Assigning values to Constant parameters
78
106
  this.$host = options.$host || "https://management.azure.com";
79
- this.apiVersion = options.apiVersion || "2021-09-30-preview";
107
+ this.apiVersion = options.apiVersion || "2022-01-31-preview";
80
108
  this.systemAssignedIdentities = new SystemAssignedIdentitiesImpl(this);
81
109
  this.operations = new OperationsImpl(this);
82
110
  this.userAssignedIdentities = new UserAssignedIdentitiesImpl(this);
111
+ this.federatedIdentityCredentials = new FederatedIdentityCredentialsImpl(
112
+ this
113
+ );
114
+ this.addCustomApiVersionPolicy(options.apiVersion);
115
+ }
116
+
117
+ /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */
118
+ private addCustomApiVersionPolicy(apiVersion?: string) {
119
+ if (!apiVersion) {
120
+ return;
121
+ }
122
+ const apiVersionPolicy = {
123
+ name: "CustomApiVersionPolicy",
124
+ async sendRequest(
125
+ request: PipelineRequest,
126
+ next: SendRequest
127
+ ): Promise<PipelineResponse> {
128
+ const param = request.url.split("?");
129
+ if (param.length > 1) {
130
+ const newParams = param[1].split("&").map((item) => {
131
+ if (item.indexOf("api-version") > -1) {
132
+ return "api-version=" + apiVersion;
133
+ } else {
134
+ return item;
135
+ }
136
+ });
137
+ request.url = param[0] + "?" + newParams.join("&");
138
+ }
139
+ return next(request);
140
+ }
141
+ };
142
+ this.pipeline.addPolicy(apiVersionPolicy);
83
143
  }
84
144
 
85
145
  systemAssignedIdentities: SystemAssignedIdentities;
86
146
  operations: Operations;
87
147
  userAssignedIdentities: UserAssignedIdentities;
148
+ federatedIdentityCredentials: FederatedIdentityCredentials;
88
149
  }
@@ -134,19 +134,27 @@ export interface AzureResource {
134
134
  readonly subscriptionDisplayName?: string;
135
135
  }
136
136
 
137
+ /** Values returned by the List operation for federated identity credentials. */
138
+ export interface FederatedIdentityCredentialsListResult {
139
+ /** The collection of federated identity credentials returned by the listing operation. */
140
+ value?: FederatedIdentityCredential[];
141
+ /** The url to get the next page of results, if any. */
142
+ nextLink?: string;
143
+ }
144
+
137
145
  /** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */
138
- export type ProxyResource = Resource & {};
146
+ export interface ProxyResource extends Resource {}
139
147
 
140
148
  /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */
141
- export type TrackedResource = Resource & {
149
+ export interface TrackedResource extends Resource {
142
150
  /** Resource tags. */
143
151
  tags?: { [propertyName: string]: string };
144
152
  /** The geo-location where the resource lives */
145
153
  location: string;
146
- };
154
+ }
147
155
 
148
156
  /** Describes an identity resource. */
149
- export type IdentityUpdate = Resource & {
157
+ export interface IdentityUpdate extends Resource {
150
158
  /** The geo-location where the resource lives */
151
159
  location?: string;
152
160
  /** Resource tags */
@@ -166,10 +174,10 @@ export type IdentityUpdate = Resource & {
166
174
  * NOTE: This property will not be serialized. It can only be populated by the server.
167
175
  */
168
176
  readonly clientId?: string;
169
- };
177
+ }
170
178
 
171
179
  /** Describes a system assigned identity resource. */
172
- export type SystemAssignedIdentity = ProxyResource & {
180
+ export interface SystemAssignedIdentity extends ProxyResource {
173
181
  /** The geo-location where the resource lives */
174
182
  location: string;
175
183
  /** Resource tags */
@@ -194,10 +202,20 @@ export type SystemAssignedIdentity = ProxyResource & {
194
202
  * NOTE: This property will not be serialized. It can only be populated by the server.
195
203
  */
196
204
  readonly clientSecretUrl?: string;
197
- };
205
+ }
206
+
207
+ /** Describes a federated identity credential. */
208
+ export interface FederatedIdentityCredential extends ProxyResource {
209
+ /** The URL of the issuer to be trusted. */
210
+ issuer?: string;
211
+ /** The identifier of the external identity. */
212
+ subject?: string;
213
+ /** The list of audiences that can appear in the issued token. */
214
+ audiences?: string[];
215
+ }
198
216
 
199
217
  /** Describes an identity resource. */
200
- export type Identity = TrackedResource & {
218
+ export interface Identity extends TrackedResource {
201
219
  /**
202
220
  * The id of the tenant which the identity belongs to.
203
221
  * NOTE: This property will not be serialized. It can only be populated by the server.
@@ -213,7 +231,7 @@ export type Identity = TrackedResource & {
213
231
  * NOTE: This property will not be serialized. It can only be populated by the server.
214
232
  */
215
233
  readonly clientId?: string;
216
- };
234
+ }
217
235
 
218
236
  /** Optional parameters. */
219
237
  export interface SystemAssignedIdentitiesGetByScopeOptionalParams
@@ -325,6 +343,48 @@ export interface UserAssignedIdentitiesListAssociatedResourcesNextOptionalParams
325
343
  /** Contains response data for the listAssociatedResourcesNext operation. */
326
344
  export type UserAssignedIdentitiesListAssociatedResourcesNextResponse = AssociatedResourcesListResult;
327
345
 
346
+ /** Optional parameters. */
347
+ export interface FederatedIdentityCredentialsListOptionalParams
348
+ extends coreClient.OperationOptions {
349
+ /** Number of records to return. */
350
+ top?: number;
351
+ /** A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls. */
352
+ skiptoken?: string;
353
+ }
354
+
355
+ /** Contains response data for the list operation. */
356
+ export type FederatedIdentityCredentialsListResponse = FederatedIdentityCredentialsListResult;
357
+
358
+ /** Optional parameters. */
359
+ export interface FederatedIdentityCredentialsCreateOrUpdateOptionalParams
360
+ extends coreClient.OperationOptions {}
361
+
362
+ /** Contains response data for the createOrUpdate operation. */
363
+ export type FederatedIdentityCredentialsCreateOrUpdateResponse = FederatedIdentityCredential;
364
+
365
+ /** Optional parameters. */
366
+ export interface FederatedIdentityCredentialsGetOptionalParams
367
+ extends coreClient.OperationOptions {}
368
+
369
+ /** Contains response data for the get operation. */
370
+ export type FederatedIdentityCredentialsGetResponse = FederatedIdentityCredential;
371
+
372
+ /** Optional parameters. */
373
+ export interface FederatedIdentityCredentialsDeleteOptionalParams
374
+ extends coreClient.OperationOptions {}
375
+
376
+ /** Optional parameters. */
377
+ export interface FederatedIdentityCredentialsListNextOptionalParams
378
+ extends coreClient.OperationOptions {
379
+ /** Number of records to return. */
380
+ top?: number;
381
+ /** A skip token is used to continue retrieving items after an operation returns a partial result. If a previous response contains a nextLink element, the value of the nextLink element will include a skipToken parameter that specifies a starting point to use for subsequent calls. */
382
+ skiptoken?: string;
383
+ }
384
+
385
+ /** Contains response data for the listNext operation. */
386
+ export type FederatedIdentityCredentialsListNextResponse = FederatedIdentityCredentialsListResult;
387
+
328
388
  /** Optional parameters. */
329
389
  export interface ManagedServiceIdentityClientOptionalParams
330
390
  extends coreClient.ServiceClientOptions {
@@ -289,6 +289,33 @@ export const AzureResource: coreClient.CompositeMapper = {
289
289
  }
290
290
  };
291
291
 
292
+ export const FederatedIdentityCredentialsListResult: coreClient.CompositeMapper = {
293
+ type: {
294
+ name: "Composite",
295
+ className: "FederatedIdentityCredentialsListResult",
296
+ modelProperties: {
297
+ value: {
298
+ serializedName: "value",
299
+ type: {
300
+ name: "Sequence",
301
+ element: {
302
+ type: {
303
+ name: "Composite",
304
+ className: "FederatedIdentityCredential"
305
+ }
306
+ }
307
+ }
308
+ },
309
+ nextLink: {
310
+ serializedName: "nextLink",
311
+ type: {
312
+ name: "String"
313
+ }
314
+ }
315
+ }
316
+ }
317
+ };
318
+
292
319
  export const ProxyResource: coreClient.CompositeMapper = {
293
320
  type: {
294
321
  name: "Composite",
@@ -419,6 +446,39 @@ export const SystemAssignedIdentity: coreClient.CompositeMapper = {
419
446
  }
420
447
  };
421
448
 
449
+ export const FederatedIdentityCredential: coreClient.CompositeMapper = {
450
+ type: {
451
+ name: "Composite",
452
+ className: "FederatedIdentityCredential",
453
+ modelProperties: {
454
+ ...ProxyResource.type.modelProperties,
455
+ issuer: {
456
+ serializedName: "properties.issuer",
457
+ type: {
458
+ name: "String"
459
+ }
460
+ },
461
+ subject: {
462
+ serializedName: "properties.subject",
463
+ type: {
464
+ name: "String"
465
+ }
466
+ },
467
+ audiences: {
468
+ serializedName: "properties.audiences",
469
+ type: {
470
+ name: "Sequence",
471
+ element: {
472
+ type: {
473
+ name: "String"
474
+ }
475
+ }
476
+ }
477
+ }
478
+ }
479
+ }
480
+ };
481
+
422
482
  export const Identity: coreClient.CompositeMapper = {
423
483
  type: {
424
484
  name: "Composite",
@@ -13,7 +13,8 @@ import {
13
13
  } from "@azure/core-client";
14
14
  import {
15
15
  Identity as IdentityMapper,
16
- IdentityUpdate as IdentityUpdateMapper
16
+ IdentityUpdate as IdentityUpdateMapper,
17
+ FederatedIdentityCredential as FederatedIdentityCredentialMapper
17
18
  } from "../models/mappers";
18
19
 
19
20
  export const accept: OperationParameter = {
@@ -55,7 +56,7 @@ export const scope: OperationURLParameter = {
55
56
  export const apiVersion: OperationQueryParameter = {
56
57
  parameterPath: "apiVersion",
57
58
  mapper: {
58
- defaultValue: "2021-09-30-preview",
59
+ defaultValue: "2022-01-31-preview",
59
60
  isConstant: true,
60
61
  serializedName: "api-version",
61
62
  type: {
@@ -186,3 +187,19 @@ export const parameters1: OperationParameter = {
186
187
  parameterPath: "parameters",
187
188
  mapper: IdentityUpdateMapper
188
189
  };
190
+
191
+ export const parameters2: OperationParameter = {
192
+ parameterPath: "parameters",
193
+ mapper: FederatedIdentityCredentialMapper
194
+ };
195
+
196
+ export const federatedIdentityCredentialResourceName: OperationURLParameter = {
197
+ parameterPath: "federatedIdentityCredentialResourceName",
198
+ mapper: {
199
+ serializedName: "federatedIdentityCredentialResourceName",
200
+ required: true,
201
+ type: {
202
+ name: "String"
203
+ }
204
+ }
205
+ };
@@ -0,0 +1,342 @@
1
+ /*
2
+ * Copyright (c) Microsoft Corporation.
3
+ * Licensed under the MIT License.
4
+ *
5
+ * Code generated by Microsoft (R) AutoRest Code Generator.
6
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
+ */
8
+
9
+ import { PagedAsyncIterableIterator } from "@azure/core-paging";
10
+ import { FederatedIdentityCredentials } from "../operationsInterfaces";
11
+ import * as coreClient from "@azure/core-client";
12
+ import * as Mappers from "../models/mappers";
13
+ import * as Parameters from "../models/parameters";
14
+ import { ManagedServiceIdentityClient } from "../managedServiceIdentityClient";
15
+ import {
16
+ FederatedIdentityCredential,
17
+ FederatedIdentityCredentialsListNextOptionalParams,
18
+ FederatedIdentityCredentialsListOptionalParams,
19
+ FederatedIdentityCredentialsListResponse,
20
+ FederatedIdentityCredentialsCreateOrUpdateOptionalParams,
21
+ FederatedIdentityCredentialsCreateOrUpdateResponse,
22
+ FederatedIdentityCredentialsGetOptionalParams,
23
+ FederatedIdentityCredentialsGetResponse,
24
+ FederatedIdentityCredentialsDeleteOptionalParams,
25
+ FederatedIdentityCredentialsListNextResponse
26
+ } from "../models";
27
+
28
+ /// <reference lib="esnext.asynciterable" />
29
+ /** Class containing FederatedIdentityCredentials operations. */
30
+ export class FederatedIdentityCredentialsImpl
31
+ implements FederatedIdentityCredentials {
32
+ private readonly client: ManagedServiceIdentityClient;
33
+
34
+ /**
35
+ * Initialize a new instance of the class FederatedIdentityCredentials class.
36
+ * @param client Reference to the service client
37
+ */
38
+ constructor(client: ManagedServiceIdentityClient) {
39
+ this.client = client;
40
+ }
41
+
42
+ /**
43
+ * Lists all the federated identity credentials under the specified user assigned identity.
44
+ * @param resourceGroupName The name of the Resource Group to which the identity belongs.
45
+ * @param resourceName The name of the identity resource.
46
+ * @param options The options parameters.
47
+ */
48
+ public list(
49
+ resourceGroupName: string,
50
+ resourceName: string,
51
+ options?: FederatedIdentityCredentialsListOptionalParams
52
+ ): PagedAsyncIterableIterator<FederatedIdentityCredential> {
53
+ const iter = this.listPagingAll(resourceGroupName, resourceName, options);
54
+ return {
55
+ next() {
56
+ return iter.next();
57
+ },
58
+ [Symbol.asyncIterator]() {
59
+ return this;
60
+ },
61
+ byPage: () => {
62
+ return this.listPagingPage(resourceGroupName, resourceName, options);
63
+ }
64
+ };
65
+ }
66
+
67
+ private async *listPagingPage(
68
+ resourceGroupName: string,
69
+ resourceName: string,
70
+ options?: FederatedIdentityCredentialsListOptionalParams
71
+ ): AsyncIterableIterator<FederatedIdentityCredential[]> {
72
+ let result = await this._list(resourceGroupName, resourceName, options);
73
+ yield result.value || [];
74
+ let continuationToken = result.nextLink;
75
+ while (continuationToken) {
76
+ result = await this._listNext(
77
+ resourceGroupName,
78
+ resourceName,
79
+ continuationToken,
80
+ options
81
+ );
82
+ continuationToken = result.nextLink;
83
+ yield result.value || [];
84
+ }
85
+ }
86
+
87
+ private async *listPagingAll(
88
+ resourceGroupName: string,
89
+ resourceName: string,
90
+ options?: FederatedIdentityCredentialsListOptionalParams
91
+ ): AsyncIterableIterator<FederatedIdentityCredential> {
92
+ for await (const page of this.listPagingPage(
93
+ resourceGroupName,
94
+ resourceName,
95
+ options
96
+ )) {
97
+ yield* page;
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Lists all the federated identity credentials under the specified user assigned identity.
103
+ * @param resourceGroupName The name of the Resource Group to which the identity belongs.
104
+ * @param resourceName The name of the identity resource.
105
+ * @param options The options parameters.
106
+ */
107
+ private _list(
108
+ resourceGroupName: string,
109
+ resourceName: string,
110
+ options?: FederatedIdentityCredentialsListOptionalParams
111
+ ): Promise<FederatedIdentityCredentialsListResponse> {
112
+ return this.client.sendOperationRequest(
113
+ { resourceGroupName, resourceName, options },
114
+ listOperationSpec
115
+ );
116
+ }
117
+
118
+ /**
119
+ * Create or update a federated identity credential under the specified user assigned identity.
120
+ * @param resourceGroupName The name of the Resource Group to which the identity belongs.
121
+ * @param resourceName The name of the identity resource.
122
+ * @param federatedIdentityCredentialResourceName The name of the federated identity credential
123
+ * resource.
124
+ * @param parameters Parameters to create or update the federated identity credential.
125
+ * @param options The options parameters.
126
+ */
127
+ createOrUpdate(
128
+ resourceGroupName: string,
129
+ resourceName: string,
130
+ federatedIdentityCredentialResourceName: string,
131
+ parameters: FederatedIdentityCredential,
132
+ options?: FederatedIdentityCredentialsCreateOrUpdateOptionalParams
133
+ ): Promise<FederatedIdentityCredentialsCreateOrUpdateResponse> {
134
+ return this.client.sendOperationRequest(
135
+ {
136
+ resourceGroupName,
137
+ resourceName,
138
+ federatedIdentityCredentialResourceName,
139
+ parameters,
140
+ options
141
+ },
142
+ createOrUpdateOperationSpec
143
+ );
144
+ }
145
+
146
+ /**
147
+ * Gets the federated identity credential.
148
+ * @param resourceGroupName The name of the Resource Group to which the identity belongs.
149
+ * @param resourceName The name of the identity resource.
150
+ * @param federatedIdentityCredentialResourceName The name of the federated identity credential
151
+ * resource.
152
+ * @param options The options parameters.
153
+ */
154
+ get(
155
+ resourceGroupName: string,
156
+ resourceName: string,
157
+ federatedIdentityCredentialResourceName: string,
158
+ options?: FederatedIdentityCredentialsGetOptionalParams
159
+ ): Promise<FederatedIdentityCredentialsGetResponse> {
160
+ return this.client.sendOperationRequest(
161
+ {
162
+ resourceGroupName,
163
+ resourceName,
164
+ federatedIdentityCredentialResourceName,
165
+ options
166
+ },
167
+ getOperationSpec
168
+ );
169
+ }
170
+
171
+ /**
172
+ * Deletes the federated identity credential.
173
+ * @param resourceGroupName The name of the Resource Group to which the identity belongs.
174
+ * @param resourceName The name of the identity resource.
175
+ * @param federatedIdentityCredentialResourceName The name of the federated identity credential
176
+ * resource.
177
+ * @param options The options parameters.
178
+ */
179
+ delete(
180
+ resourceGroupName: string,
181
+ resourceName: string,
182
+ federatedIdentityCredentialResourceName: string,
183
+ options?: FederatedIdentityCredentialsDeleteOptionalParams
184
+ ): Promise<void> {
185
+ return this.client.sendOperationRequest(
186
+ {
187
+ resourceGroupName,
188
+ resourceName,
189
+ federatedIdentityCredentialResourceName,
190
+ options
191
+ },
192
+ deleteOperationSpec
193
+ );
194
+ }
195
+
196
+ /**
197
+ * ListNext
198
+ * @param resourceGroupName The name of the Resource Group to which the identity belongs.
199
+ * @param resourceName The name of the identity resource.
200
+ * @param nextLink The nextLink from the previous successful call to the List method.
201
+ * @param options The options parameters.
202
+ */
203
+ private _listNext(
204
+ resourceGroupName: string,
205
+ resourceName: string,
206
+ nextLink: string,
207
+ options?: FederatedIdentityCredentialsListNextOptionalParams
208
+ ): Promise<FederatedIdentityCredentialsListNextResponse> {
209
+ return this.client.sendOperationRequest(
210
+ { resourceGroupName, resourceName, nextLink, options },
211
+ listNextOperationSpec
212
+ );
213
+ }
214
+ }
215
+ // Operation Specifications
216
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
217
+
218
+ const listOperationSpec: coreClient.OperationSpec = {
219
+ path:
220
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}/federatedIdentityCredentials",
221
+ httpMethod: "GET",
222
+ responses: {
223
+ 200: {
224
+ bodyMapper: Mappers.FederatedIdentityCredentialsListResult
225
+ },
226
+ default: {
227
+ bodyMapper: Mappers.CloudError
228
+ }
229
+ },
230
+ queryParameters: [
231
+ Parameters.apiVersion,
232
+ Parameters.top,
233
+ Parameters.skiptoken
234
+ ],
235
+ urlParameters: [
236
+ Parameters.$host,
237
+ Parameters.subscriptionId,
238
+ Parameters.resourceGroupName,
239
+ Parameters.resourceName
240
+ ],
241
+ headerParameters: [Parameters.accept],
242
+ serializer
243
+ };
244
+ const createOrUpdateOperationSpec: coreClient.OperationSpec = {
245
+ path:
246
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}/federatedIdentityCredentials/{federatedIdentityCredentialResourceName}",
247
+ httpMethod: "PUT",
248
+ responses: {
249
+ 200: {
250
+ bodyMapper: Mappers.FederatedIdentityCredential
251
+ },
252
+ 201: {
253
+ bodyMapper: Mappers.FederatedIdentityCredential
254
+ },
255
+ default: {
256
+ bodyMapper: Mappers.CloudError
257
+ }
258
+ },
259
+ requestBody: Parameters.parameters2,
260
+ queryParameters: [Parameters.apiVersion],
261
+ urlParameters: [
262
+ Parameters.$host,
263
+ Parameters.subscriptionId,
264
+ Parameters.resourceGroupName,
265
+ Parameters.resourceName,
266
+ Parameters.federatedIdentityCredentialResourceName
267
+ ],
268
+ headerParameters: [Parameters.accept, Parameters.contentType],
269
+ mediaType: "json",
270
+ serializer
271
+ };
272
+ const getOperationSpec: coreClient.OperationSpec = {
273
+ path:
274
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}/federatedIdentityCredentials/{federatedIdentityCredentialResourceName}",
275
+ httpMethod: "GET",
276
+ responses: {
277
+ 200: {
278
+ bodyMapper: Mappers.FederatedIdentityCredential
279
+ },
280
+ default: {
281
+ bodyMapper: Mappers.CloudError
282
+ }
283
+ },
284
+ queryParameters: [Parameters.apiVersion],
285
+ urlParameters: [
286
+ Parameters.$host,
287
+ Parameters.subscriptionId,
288
+ Parameters.resourceGroupName,
289
+ Parameters.resourceName,
290
+ Parameters.federatedIdentityCredentialResourceName
291
+ ],
292
+ headerParameters: [Parameters.accept],
293
+ serializer
294
+ };
295
+ const deleteOperationSpec: coreClient.OperationSpec = {
296
+ path:
297
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{resourceName}/federatedIdentityCredentials/{federatedIdentityCredentialResourceName}",
298
+ httpMethod: "DELETE",
299
+ responses: {
300
+ 200: {},
301
+ 204: {},
302
+ default: {
303
+ bodyMapper: Mappers.CloudError
304
+ }
305
+ },
306
+ queryParameters: [Parameters.apiVersion],
307
+ urlParameters: [
308
+ Parameters.$host,
309
+ Parameters.subscriptionId,
310
+ Parameters.resourceGroupName,
311
+ Parameters.resourceName,
312
+ Parameters.federatedIdentityCredentialResourceName
313
+ ],
314
+ headerParameters: [Parameters.accept],
315
+ serializer
316
+ };
317
+ const listNextOperationSpec: coreClient.OperationSpec = {
318
+ path: "{nextLink}",
319
+ httpMethod: "GET",
320
+ responses: {
321
+ 200: {
322
+ bodyMapper: Mappers.FederatedIdentityCredentialsListResult
323
+ },
324
+ default: {
325
+ bodyMapper: Mappers.CloudError
326
+ }
327
+ },
328
+ queryParameters: [
329
+ Parameters.apiVersion,
330
+ Parameters.top,
331
+ Parameters.skiptoken
332
+ ],
333
+ urlParameters: [
334
+ Parameters.$host,
335
+ Parameters.nextLink,
336
+ Parameters.subscriptionId,
337
+ Parameters.resourceGroupName,
338
+ Parameters.resourceName
339
+ ],
340
+ headerParameters: [Parameters.accept],
341
+ serializer
342
+ };