@azure/arm-managementgroups 1.2.0 → 2.0.0-alpha.20211215.1

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 (173) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/{LICENSE.txt → LICENSE} +2 -2
  3. package/README.md +72 -83
  4. package/dist/index.js +2881 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.min.js +1 -0
  7. package/dist/index.min.js.map +1 -0
  8. package/dist-esm/src/index.d.ts +6 -0
  9. package/dist-esm/src/index.d.ts.map +1 -0
  10. package/dist-esm/src/index.js +13 -0
  11. package/dist-esm/src/index.js.map +1 -0
  12. package/dist-esm/src/lroImpl.d.ts +16 -0
  13. package/dist-esm/src/lroImpl.d.ts.map +1 -0
  14. package/dist-esm/src/lroImpl.js +29 -0
  15. package/dist-esm/src/lroImpl.js.map +1 -0
  16. package/dist-esm/src/managementGroupsAPI.d.ts +34 -0
  17. package/dist-esm/src/managementGroupsAPI.d.ts.map +1 -0
  18. package/dist-esm/src/managementGroupsAPI.js +102 -0
  19. package/dist-esm/src/managementGroupsAPI.js.map +1 -0
  20. package/dist-esm/src/managementGroupsAPIContext.d.ts +14 -0
  21. package/dist-esm/src/managementGroupsAPIContext.d.ts.map +1 -0
  22. package/dist-esm/src/managementGroupsAPIContext.js +43 -0
  23. package/dist-esm/src/managementGroupsAPIContext.js.map +1 -0
  24. package/dist-esm/src/models/index.d.ts +956 -0
  25. package/dist-esm/src/models/index.d.ts.map +1 -0
  26. package/dist-esm/src/models/index.js +46 -0
  27. package/dist-esm/src/models/index.js.map +1 -0
  28. package/dist-esm/src/models/mappers.d.ts +39 -0
  29. package/dist-esm/src/models/mappers.d.ts.map +1 -0
  30. package/{esm → dist-esm/src}/models/mappers.js +776 -396
  31. package/dist-esm/src/models/mappers.js.map +1 -0
  32. package/dist-esm/src/models/parameters.d.ts +24 -0
  33. package/dist-esm/src/models/parameters.d.ts.map +1 -0
  34. package/dist-esm/src/models/parameters.js +200 -0
  35. package/dist-esm/src/models/parameters.js.map +1 -0
  36. package/dist-esm/src/operations/entities.d.ts +34 -0
  37. package/dist-esm/src/operations/entities.d.ts.map +1 -0
  38. package/dist-esm/src/operations/entities.js +142 -0
  39. package/dist-esm/src/operations/entities.js.map +1 -0
  40. package/dist-esm/src/operations/hierarchySettingsOperations.d.ts +52 -0
  41. package/dist-esm/src/operations/hierarchySettingsOperations.d.ts.map +1 -0
  42. package/dist-esm/src/operations/hierarchySettingsOperations.js +154 -0
  43. package/dist-esm/src/operations/hierarchySettingsOperations.js.map +1 -0
  44. package/{esm → dist-esm/src}/operations/index.d.ts +1 -0
  45. package/dist-esm/src/operations/index.d.ts.map +1 -0
  46. package/{esm → dist-esm/src}/operations/index.js +4 -5
  47. package/dist-esm/src/operations/index.js.map +1 -0
  48. package/dist-esm/src/operations/managementGroupSubscriptions.d.ts +62 -0
  49. package/dist-esm/src/operations/managementGroupSubscriptions.d.ts.map +1 -0
  50. package/dist-esm/src/operations/managementGroupSubscriptions.js +215 -0
  51. package/dist-esm/src/operations/managementGroupSubscriptions.js.map +1 -0
  52. package/dist-esm/src/operations/managementGroups.d.ts +109 -0
  53. package/dist-esm/src/operations/managementGroups.d.ts.map +1 -0
  54. package/dist-esm/src/operations/managementGroups.js +462 -0
  55. package/dist-esm/src/operations/managementGroups.js.map +1 -0
  56. package/dist-esm/src/operations/operations.d.ts +32 -0
  57. package/dist-esm/src/operations/operations.d.ts.map +1 -0
  58. package/dist-esm/src/operations/operations.js +120 -0
  59. package/dist-esm/src/operations/operations.js.map +1 -0
  60. package/dist-esm/src/operationsInterfaces/entities.d.ts +12 -0
  61. package/dist-esm/src/operationsInterfaces/entities.d.ts.map +1 -0
  62. package/dist-esm/src/operationsInterfaces/entities.js +9 -0
  63. package/dist-esm/src/operationsInterfaces/entities.js.map +1 -0
  64. package/dist-esm/src/operationsInterfaces/hierarchySettingsOperations.d.ts +44 -0
  65. package/dist-esm/src/operationsInterfaces/hierarchySettingsOperations.d.ts.map +1 -0
  66. package/dist-esm/src/operationsInterfaces/hierarchySettingsOperations.js +9 -0
  67. package/dist-esm/src/operationsInterfaces/hierarchySettingsOperations.js.map +1 -0
  68. package/dist-esm/src/operationsInterfaces/index.d.ts +6 -0
  69. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -0
  70. package/dist-esm/src/operationsInterfaces/index.js +13 -0
  71. package/dist-esm/src/operationsInterfaces/index.js.map +1 -0
  72. package/dist-esm/src/operationsInterfaces/managementGroupSubscriptions.d.ts +37 -0
  73. package/dist-esm/src/operationsInterfaces/managementGroupSubscriptions.d.ts.map +1 -0
  74. package/dist-esm/src/operationsInterfaces/managementGroupSubscriptions.js +9 -0
  75. package/dist-esm/src/operationsInterfaces/managementGroupSubscriptions.js.map +1 -0
  76. package/dist-esm/src/operationsInterfaces/managementGroups.d.ts +71 -0
  77. package/dist-esm/src/operationsInterfaces/managementGroups.d.ts.map +1 -0
  78. package/dist-esm/src/operationsInterfaces/managementGroups.js +9 -0
  79. package/dist-esm/src/operationsInterfaces/managementGroups.js.map +1 -0
  80. package/dist-esm/src/operationsInterfaces/operations.d.ts +11 -0
  81. package/dist-esm/src/operationsInterfaces/operations.d.ts.map +1 -0
  82. package/dist-esm/src/operationsInterfaces/operations.js +9 -0
  83. package/dist-esm/src/operationsInterfaces/operations.js.map +1 -0
  84. package/dist-esm/test/sampleTest.d.ts +2 -0
  85. package/dist-esm/test/sampleTest.d.ts.map +1 -0
  86. package/dist-esm/test/sampleTest.js +40 -0
  87. package/dist-esm/test/sampleTest.js.map +1 -0
  88. package/package.json +69 -24
  89. package/review/arm-managementgroups.api.md +667 -0
  90. package/rollup.config.js +184 -27
  91. package/src/index.ts +13 -0
  92. package/src/lroImpl.ts +34 -0
  93. package/src/managementGroupsAPI.ts +93 -130
  94. package/src/managementGroupsAPIContext.ts +45 -45
  95. package/src/models/index.ts +801 -1185
  96. package/src/models/mappers.ts +792 -400
  97. package/src/models/parameters.ts +130 -94
  98. package/src/operations/entities.ts +105 -79
  99. package/src/operations/hierarchySettingsOperations.ts +214 -0
  100. package/src/operations/index.ts +4 -5
  101. package/src/operations/managementGroupSubscriptions.ts +226 -72
  102. package/src/operations/managementGroups.ts +449 -222
  103. package/src/operations/operations.ts +84 -70
  104. package/src/operationsInterfaces/entities.ts +23 -0
  105. package/src/operationsInterfaces/hierarchySettingsOperations.ts +80 -0
  106. package/src/operationsInterfaces/index.ts +13 -0
  107. package/src/operationsInterfaces/managementGroupSubscriptions.ts +69 -0
  108. package/src/operationsInterfaces/managementGroups.ts +131 -0
  109. package/src/operationsInterfaces/operations.ts +22 -0
  110. package/tsconfig.json +4 -4
  111. package/types/arm-managementgroups.d.ts +1266 -0
  112. package/types/tsdoc-metadata.json +11 -0
  113. package/dist/arm-managementgroups.js +0 -2017
  114. package/dist/arm-managementgroups.js.map +0 -1
  115. package/dist/arm-managementgroups.min.js +0 -1
  116. package/dist/arm-managementgroups.min.js.map +0 -1
  117. package/esm/managementGroupsAPI.d.ts +0 -74
  118. package/esm/managementGroupsAPI.d.ts.map +0 -1
  119. package/esm/managementGroupsAPI.js +0 -120
  120. package/esm/managementGroupsAPI.js.map +0 -1
  121. package/esm/managementGroupsAPIContext.d.ts +0 -20
  122. package/esm/managementGroupsAPIContext.d.ts.map +0 -1
  123. package/esm/managementGroupsAPIContext.js +0 -56
  124. package/esm/managementGroupsAPIContext.js.map +0 -1
  125. package/esm/models/entitiesMappers.d.ts +0 -2
  126. package/esm/models/entitiesMappers.d.ts.map +0 -1
  127. package/esm/models/entitiesMappers.js +0 -11
  128. package/esm/models/entitiesMappers.js.map +0 -1
  129. package/esm/models/index.d.ts +0 -1390
  130. package/esm/models/index.d.ts.map +0 -1
  131. package/esm/models/index.js +0 -10
  132. package/esm/models/index.js.map +0 -1
  133. package/esm/models/managementGroupSubscriptionsMappers.d.ts +0 -2
  134. package/esm/models/managementGroupSubscriptionsMappers.d.ts.map +0 -1
  135. package/esm/models/managementGroupSubscriptionsMappers.js +0 -11
  136. package/esm/models/managementGroupSubscriptionsMappers.js.map +0 -1
  137. package/esm/models/managementGroupsMappers.d.ts +0 -2
  138. package/esm/models/managementGroupsMappers.d.ts.map +0 -1
  139. package/esm/models/managementGroupsMappers.js +0 -11
  140. package/esm/models/managementGroupsMappers.js.map +0 -1
  141. package/esm/models/mappers.d.ts +0 -28
  142. package/esm/models/mappers.d.ts.map +0 -1
  143. package/esm/models/mappers.js.map +0 -1
  144. package/esm/models/operationsMappers.d.ts +0 -2
  145. package/esm/models/operationsMappers.d.ts.map +0 -1
  146. package/esm/models/operationsMappers.js +0 -11
  147. package/esm/models/operationsMappers.js.map +0 -1
  148. package/esm/models/parameters.d.ts +0 -18
  149. package/esm/models/parameters.d.ts.map +0 -1
  150. package/esm/models/parameters.js +0 -194
  151. package/esm/models/parameters.js.map +0 -1
  152. package/esm/operations/entities.d.ts +0 -46
  153. package/esm/operations/entities.d.ts.map +0 -1
  154. package/esm/operations/entities.js +0 -87
  155. package/esm/operations/entities.js.map +0 -1
  156. package/esm/operations/index.d.ts.map +0 -1
  157. package/esm/operations/index.js.map +0 -1
  158. package/esm/operations/managementGroupSubscriptions.d.ts +0 -55
  159. package/esm/operations/managementGroupSubscriptions.d.ts.map +0 -1
  160. package/esm/operations/managementGroupSubscriptions.js +0 -85
  161. package/esm/operations/managementGroupSubscriptions.js.map +0 -1
  162. package/esm/operations/managementGroups.d.ts +0 -120
  163. package/esm/operations/managementGroups.d.ts.map +0 -1
  164. package/esm/operations/managementGroups.js +0 -252
  165. package/esm/operations/managementGroups.js.map +0 -1
  166. package/esm/operations/operations.d.ts +0 -46
  167. package/esm/operations/operations.d.ts.map +0 -1
  168. package/esm/operations/operations.js +0 -77
  169. package/esm/operations/operations.js.map +0 -1
  170. package/src/models/entitiesMappers.ts +0 -18
  171. package/src/models/managementGroupSubscriptionsMappers.ts +0 -15
  172. package/src/models/managementGroupsMappers.ts +0 -29
  173. package/src/models/operationsMappers.ts +0 -18
@@ -1,27 +1,50 @@
1
1
  /*
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for
4
- * license information.
2
+ * Copyright (c) Microsoft Corporation.
3
+ * Licensed under the MIT License.
5
4
  *
6
5
  * Code generated by Microsoft (R) AutoRest Code Generator.
7
- * Changes may cause incorrect behavior and will be lost if the code is
8
- * regenerated.
6
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
9
7
  */
10
8
 
11
- import * as msRest from "@azure/ms-rest-js";
12
- import * as msRestAzure from "@azure/ms-rest-azure-js";
13
- import * as Models from "../models";
14
- import * as Mappers from "../models/managementGroupsMappers";
9
+ import { PagedAsyncIterableIterator } from "@azure/core-paging";
10
+ import { ManagementGroups } from "../operationsInterfaces";
11
+ import * as coreClient from "@azure/core-client";
12
+ import * as Mappers from "../models/mappers";
15
13
  import * as Parameters from "../models/parameters";
16
14
  import { ManagementGroupsAPIContext } from "../managementGroupsAPIContext";
15
+ import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro";
16
+ import { LroImpl } from "../lroImpl";
17
+ import {
18
+ ManagementGroupInfo,
19
+ ManagementGroupsListNextOptionalParams,
20
+ ManagementGroupsListOptionalParams,
21
+ DescendantInfo,
22
+ ManagementGroupsGetDescendantsNextOptionalParams,
23
+ ManagementGroupsGetDescendantsOptionalParams,
24
+ ManagementGroupsListResponse,
25
+ ManagementGroupsGetOptionalParams,
26
+ ManagementGroupsGetResponse,
27
+ CreateManagementGroupRequest,
28
+ ManagementGroupsCreateOrUpdateOptionalParams,
29
+ ManagementGroupsCreateOrUpdateResponse,
30
+ PatchManagementGroupRequest,
31
+ ManagementGroupsUpdateOptionalParams,
32
+ ManagementGroupsUpdateResponse,
33
+ ManagementGroupsDeleteOptionalParams,
34
+ ManagementGroupsDeleteResponse,
35
+ ManagementGroupsGetDescendantsResponse,
36
+ ManagementGroupsListNextResponse,
37
+ ManagementGroupsGetDescendantsNextResponse
38
+ } from "../models";
17
39
 
18
- /** Class representing a ManagementGroups. */
19
- export class ManagementGroups {
40
+ /// <reference lib="esnext.asynciterable" />
41
+ /** Class containing ManagementGroups operations. */
42
+ export class ManagementGroupsImpl implements ManagementGroups {
20
43
  private readonly client: ManagementGroupsAPIContext;
21
44
 
22
45
  /**
23
- * Create a ManagementGroups.
24
- * @param {ManagementGroupsAPIContext} client Reference to the service client.
46
+ * Initialize a new instance of the class ManagementGroups class.
47
+ * @param client Reference to the service client
25
48
  */
26
49
  constructor(client: ManagementGroupsAPIContext) {
27
50
  this.client = client;
@@ -29,191 +52,371 @@ export class ManagementGroups {
29
52
 
30
53
  /**
31
54
  * List management groups for the authenticated user.
32
- * @param [options] The optional parameters
33
- * @returns Promise<Models.ManagementGroupsListResponse>
55
+ *
56
+ * @param options The options parameters.
34
57
  */
35
- list(options?: Models.ManagementGroupsListOptionalParams): Promise<Models.ManagementGroupsListResponse>;
36
- /**
37
- * @param callback The callback
38
- */
39
- list(callback: msRest.ServiceCallback<Models.ManagementGroupListResult>): void;
40
- /**
41
- * @param options The optional parameters
42
- * @param callback The callback
43
- */
44
- list(options: Models.ManagementGroupsListOptionalParams, callback: msRest.ServiceCallback<Models.ManagementGroupListResult>): void;
45
- list(options?: Models.ManagementGroupsListOptionalParams | msRest.ServiceCallback<Models.ManagementGroupListResult>, callback?: msRest.ServiceCallback<Models.ManagementGroupListResult>): Promise<Models.ManagementGroupsListResponse> {
46
- return this.client.sendOperationRequest(
47
- {
48
- options
58
+ public list(
59
+ options?: ManagementGroupsListOptionalParams
60
+ ): PagedAsyncIterableIterator<ManagementGroupInfo> {
61
+ const iter = this.listPagingAll(options);
62
+ return {
63
+ next() {
64
+ return iter.next();
65
+ },
66
+ [Symbol.asyncIterator]() {
67
+ return this;
49
68
  },
50
- listOperationSpec,
51
- callback) as Promise<Models.ManagementGroupsListResponse>;
69
+ byPage: () => {
70
+ return this.listPagingPage(options);
71
+ }
72
+ };
73
+ }
74
+
75
+ private async *listPagingPage(
76
+ options?: ManagementGroupsListOptionalParams
77
+ ): AsyncIterableIterator<ManagementGroupInfo[]> {
78
+ let result = await this._list(options);
79
+ yield result.value || [];
80
+ let continuationToken = result.nextLink;
81
+ while (continuationToken) {
82
+ result = await this._listNext(continuationToken, options);
83
+ continuationToken = result.nextLink;
84
+ yield result.value || [];
85
+ }
86
+ }
87
+
88
+ private async *listPagingAll(
89
+ options?: ManagementGroupsListOptionalParams
90
+ ): AsyncIterableIterator<ManagementGroupInfo> {
91
+ for await (const page of this.listPagingPage(options)) {
92
+ yield* page;
93
+ }
52
94
  }
53
95
 
54
96
  /**
55
- * Get the details of the management group.
97
+ * List all entities that descend from a management group.
98
+ *
56
99
  * @param groupId Management Group ID.
57
- * @param [options] The optional parameters
58
- * @returns Promise<Models.ManagementGroupsGetResponse>
100
+ * @param options The options parameters.
59
101
  */
60
- get(groupId: string, options?: Models.ManagementGroupsGetOptionalParams): Promise<Models.ManagementGroupsGetResponse>;
102
+ public listDescendants(
103
+ groupId: string,
104
+ options?: ManagementGroupsGetDescendantsOptionalParams
105
+ ): PagedAsyncIterableIterator<DescendantInfo> {
106
+ const iter = this.getDescendantsPagingAll(groupId, options);
107
+ return {
108
+ next() {
109
+ return iter.next();
110
+ },
111
+ [Symbol.asyncIterator]() {
112
+ return this;
113
+ },
114
+ byPage: () => {
115
+ return this.getDescendantsPagingPage(groupId, options);
116
+ }
117
+ };
118
+ }
119
+
120
+ private async *getDescendantsPagingPage(
121
+ groupId: string,
122
+ options?: ManagementGroupsGetDescendantsOptionalParams
123
+ ): AsyncIterableIterator<DescendantInfo[]> {
124
+ let result = await this._getDescendants(groupId, options);
125
+ yield result.value || [];
126
+ let continuationToken = result.nextLink;
127
+ while (continuationToken) {
128
+ result = await this._getDescendantsNext(
129
+ groupId,
130
+ continuationToken,
131
+ options
132
+ );
133
+ continuationToken = result.nextLink;
134
+ yield result.value || [];
135
+ }
136
+ }
137
+
138
+ private async *getDescendantsPagingAll(
139
+ groupId: string,
140
+ options?: ManagementGroupsGetDescendantsOptionalParams
141
+ ): AsyncIterableIterator<DescendantInfo> {
142
+ for await (const page of this.getDescendantsPagingPage(groupId, options)) {
143
+ yield* page;
144
+ }
145
+ }
146
+
61
147
  /**
62
- * @param groupId Management Group ID.
63
- * @param callback The callback
148
+ * List management groups for the authenticated user.
149
+ *
150
+ * @param options The options parameters.
64
151
  */
65
- get(groupId: string, callback: msRest.ServiceCallback<Models.ManagementGroup>): void;
152
+ private _list(
153
+ options?: ManagementGroupsListOptionalParams
154
+ ): Promise<ManagementGroupsListResponse> {
155
+ return this.client.sendOperationRequest({ options }, listOperationSpec);
156
+ }
157
+
66
158
  /**
159
+ * Get the details of the management group.
160
+ *
67
161
  * @param groupId Management Group ID.
68
- * @param options The optional parameters
69
- * @param callback The callback
162
+ * @param options The options parameters.
70
163
  */
71
- get(groupId: string, options: Models.ManagementGroupsGetOptionalParams, callback: msRest.ServiceCallback<Models.ManagementGroup>): void;
72
- get(groupId: string, options?: Models.ManagementGroupsGetOptionalParams | msRest.ServiceCallback<Models.ManagementGroup>, callback?: msRest.ServiceCallback<Models.ManagementGroup>): Promise<Models.ManagementGroupsGetResponse> {
164
+ get(
165
+ groupId: string,
166
+ options?: ManagementGroupsGetOptionalParams
167
+ ): Promise<ManagementGroupsGetResponse> {
73
168
  return this.client.sendOperationRequest(
74
- {
75
- groupId,
76
- options
77
- },
78
- getOperationSpec,
79
- callback) as Promise<Models.ManagementGroupsGetResponse>;
169
+ { groupId, options },
170
+ getOperationSpec
171
+ );
80
172
  }
81
173
 
82
174
  /**
83
- * Create or update a management group. If a management group is already created and a subsequent
84
- * create request is issued with different properties, the management group properties will be
85
- * updated.
175
+ * Create or update a management group.
176
+ * If a management group is already created and a subsequent create request is issued with different
177
+ * properties, the management group properties will be updated.
178
+ *
86
179
  * @param groupId Management Group ID.
87
180
  * @param createManagementGroupRequest Management group creation parameters.
88
- * @param [options] The optional parameters
89
- * @returns Promise<Models.ManagementGroupsCreateOrUpdateResponse>
181
+ * @param options The options parameters.
90
182
  */
91
- createOrUpdate(groupId: string, createManagementGroupRequest: Models.CreateManagementGroupRequest, options?: Models.ManagementGroupsCreateOrUpdateOptionalParams): Promise<Models.ManagementGroupsCreateOrUpdateResponse> {
92
- return this.beginCreateOrUpdate(groupId,createManagementGroupRequest,options)
93
- .then(lroPoller => lroPoller.pollUntilFinished()) as Promise<Models.ManagementGroupsCreateOrUpdateResponse>;
183
+ async beginCreateOrUpdate(
184
+ groupId: string,
185
+ createManagementGroupRequest: CreateManagementGroupRequest,
186
+ options?: ManagementGroupsCreateOrUpdateOptionalParams
187
+ ): Promise<
188
+ PollerLike<
189
+ PollOperationState<ManagementGroupsCreateOrUpdateResponse>,
190
+ ManagementGroupsCreateOrUpdateResponse
191
+ >
192
+ > {
193
+ const directSendOperation = async (
194
+ args: coreClient.OperationArguments,
195
+ spec: coreClient.OperationSpec
196
+ ): Promise<ManagementGroupsCreateOrUpdateResponse> => {
197
+ return this.client.sendOperationRequest(args, spec);
198
+ };
199
+ const sendOperation = async (
200
+ args: coreClient.OperationArguments,
201
+ spec: coreClient.OperationSpec
202
+ ) => {
203
+ let currentRawResponse:
204
+ | coreClient.FullOperationResponse
205
+ | undefined = undefined;
206
+ const providedCallback = args.options?.onResponse;
207
+ const callback: coreClient.RawResponseCallback = (
208
+ rawResponse: coreClient.FullOperationResponse,
209
+ flatResponse: unknown
210
+ ) => {
211
+ currentRawResponse = rawResponse;
212
+ providedCallback?.(rawResponse, flatResponse);
213
+ };
214
+ const updatedArgs = {
215
+ ...args,
216
+ options: {
217
+ ...args.options,
218
+ onResponse: callback
219
+ }
220
+ };
221
+ const flatResponse = await directSendOperation(updatedArgs, spec);
222
+ return {
223
+ flatResponse,
224
+ rawResponse: {
225
+ statusCode: currentRawResponse!.status,
226
+ body: currentRawResponse!.parsedBody,
227
+ headers: currentRawResponse!.headers.toJSON()
228
+ }
229
+ };
230
+ };
231
+
232
+ const lro = new LroImpl(
233
+ sendOperation,
234
+ { groupId, createManagementGroupRequest, options },
235
+ createOrUpdateOperationSpec
236
+ );
237
+ return new LroEngine(lro, {
238
+ resumeFrom: options?.resumeFrom,
239
+ intervalInMs: options?.updateIntervalInMs,
240
+ lroResourceLocationConfig: "azure-async-operation"
241
+ });
94
242
  }
95
243
 
96
244
  /**
97
- * Update a management group.
98
- * @param groupId Management Group ID.
99
- * @param patchGroupRequest Management group patch parameters.
100
- * @param [options] The optional parameters
101
- * @returns Promise<Models.ManagementGroupsUpdateResponse>
102
- */
103
- update(groupId: string, patchGroupRequest: Models.PatchManagementGroupRequest, options?: Models.ManagementGroupsUpdateOptionalParams): Promise<Models.ManagementGroupsUpdateResponse>;
104
- /**
245
+ * Create or update a management group.
246
+ * If a management group is already created and a subsequent create request is issued with different
247
+ * properties, the management group properties will be updated.
248
+ *
105
249
  * @param groupId Management Group ID.
106
- * @param patchGroupRequest Management group patch parameters.
107
- * @param callback The callback
250
+ * @param createManagementGroupRequest Management group creation parameters.
251
+ * @param options The options parameters.
108
252
  */
109
- update(groupId: string, patchGroupRequest: Models.PatchManagementGroupRequest, callback: msRest.ServiceCallback<Models.ManagementGroup>): void;
253
+ async beginCreateOrUpdateAndWait(
254
+ groupId: string,
255
+ createManagementGroupRequest: CreateManagementGroupRequest,
256
+ options?: ManagementGroupsCreateOrUpdateOptionalParams
257
+ ): Promise<ManagementGroupsCreateOrUpdateResponse> {
258
+ const poller = await this.beginCreateOrUpdate(
259
+ groupId,
260
+ createManagementGroupRequest,
261
+ options
262
+ );
263
+ return poller.pollUntilDone();
264
+ }
265
+
110
266
  /**
267
+ * Update a management group.
268
+ *
111
269
  * @param groupId Management Group ID.
112
270
  * @param patchGroupRequest Management group patch parameters.
113
- * @param options The optional parameters
114
- * @param callback The callback
271
+ * @param options The options parameters.
115
272
  */
116
- update(groupId: string, patchGroupRequest: Models.PatchManagementGroupRequest, options: Models.ManagementGroupsUpdateOptionalParams, callback: msRest.ServiceCallback<Models.ManagementGroup>): void;
117
- update(groupId: string, patchGroupRequest: Models.PatchManagementGroupRequest, options?: Models.ManagementGroupsUpdateOptionalParams | msRest.ServiceCallback<Models.ManagementGroup>, callback?: msRest.ServiceCallback<Models.ManagementGroup>): Promise<Models.ManagementGroupsUpdateResponse> {
273
+ update(
274
+ groupId: string,
275
+ patchGroupRequest: PatchManagementGroupRequest,
276
+ options?: ManagementGroupsUpdateOptionalParams
277
+ ): Promise<ManagementGroupsUpdateResponse> {
118
278
  return this.client.sendOperationRequest(
119
- {
120
- groupId,
121
- patchGroupRequest,
122
- options
123
- },
124
- updateOperationSpec,
125
- callback) as Promise<Models.ManagementGroupsUpdateResponse>;
279
+ { groupId, patchGroupRequest, options },
280
+ updateOperationSpec
281
+ );
126
282
  }
127
283
 
128
284
  /**
129
- * Delete management group. If a management group contains child resources, the request will fail.
285
+ * Delete management group.
286
+ * If a management group contains child resources, the request will fail.
287
+ *
130
288
  * @param groupId Management Group ID.
131
- * @param [options] The optional parameters
132
- * @returns Promise<Models.ManagementGroupsDeleteMethodResponse>
289
+ * @param options The options parameters.
133
290
  */
134
- deleteMethod(groupId: string, options?: Models.ManagementGroupsDeleteMethodOptionalParams): Promise<Models.ManagementGroupsDeleteMethodResponse> {
135
- return this.beginDeleteMethod(groupId,options)
136
- .then(lroPoller => lroPoller.pollUntilFinished()) as Promise<Models.ManagementGroupsDeleteMethodResponse>;
291
+ async beginDelete(
292
+ groupId: string,
293
+ options?: ManagementGroupsDeleteOptionalParams
294
+ ): Promise<
295
+ PollerLike<
296
+ PollOperationState<ManagementGroupsDeleteResponse>,
297
+ ManagementGroupsDeleteResponse
298
+ >
299
+ > {
300
+ const directSendOperation = async (
301
+ args: coreClient.OperationArguments,
302
+ spec: coreClient.OperationSpec
303
+ ): Promise<ManagementGroupsDeleteResponse> => {
304
+ return this.client.sendOperationRequest(args, spec);
305
+ };
306
+ const sendOperation = async (
307
+ args: coreClient.OperationArguments,
308
+ spec: coreClient.OperationSpec
309
+ ) => {
310
+ let currentRawResponse:
311
+ | coreClient.FullOperationResponse
312
+ | undefined = undefined;
313
+ const providedCallback = args.options?.onResponse;
314
+ const callback: coreClient.RawResponseCallback = (
315
+ rawResponse: coreClient.FullOperationResponse,
316
+ flatResponse: unknown
317
+ ) => {
318
+ currentRawResponse = rawResponse;
319
+ providedCallback?.(rawResponse, flatResponse);
320
+ };
321
+ const updatedArgs = {
322
+ ...args,
323
+ options: {
324
+ ...args.options,
325
+ onResponse: callback
326
+ }
327
+ };
328
+ const flatResponse = await directSendOperation(updatedArgs, spec);
329
+ return {
330
+ flatResponse,
331
+ rawResponse: {
332
+ statusCode: currentRawResponse!.status,
333
+ body: currentRawResponse!.parsedBody,
334
+ headers: currentRawResponse!.headers.toJSON()
335
+ }
336
+ };
337
+ };
338
+
339
+ const lro = new LroImpl(
340
+ sendOperation,
341
+ { groupId, options },
342
+ deleteOperationSpec
343
+ );
344
+ return new LroEngine(lro, {
345
+ resumeFrom: options?.resumeFrom,
346
+ intervalInMs: options?.updateIntervalInMs,
347
+ lroResourceLocationConfig: "azure-async-operation"
348
+ });
137
349
  }
138
350
 
139
351
  /**
140
- * Create or update a management group. If a management group is already created and a subsequent
141
- * create request is issued with different properties, the management group properties will be
142
- * updated.
352
+ * Delete management group.
353
+ * If a management group contains child resources, the request will fail.
354
+ *
143
355
  * @param groupId Management Group ID.
144
- * @param createManagementGroupRequest Management group creation parameters.
145
- * @param [options] The optional parameters
146
- * @returns Promise<msRestAzure.LROPoller>
356
+ * @param options The options parameters.
147
357
  */
148
- beginCreateOrUpdate(groupId: string, createManagementGroupRequest: Models.CreateManagementGroupRequest, options?: Models.ManagementGroupsBeginCreateOrUpdateOptionalParams): Promise<msRestAzure.LROPoller> {
149
- return this.client.sendLRORequest(
150
- {
151
- groupId,
152
- createManagementGroupRequest,
153
- options
154
- },
155
- beginCreateOrUpdateOperationSpec,
156
- options);
358
+ async beginDeleteAndWait(
359
+ groupId: string,
360
+ options?: ManagementGroupsDeleteOptionalParams
361
+ ): Promise<ManagementGroupsDeleteResponse> {
362
+ const poller = await this.beginDelete(groupId, options);
363
+ return poller.pollUntilDone();
157
364
  }
158
365
 
159
366
  /**
160
- * Delete management group. If a management group contains child resources, the request will fail.
367
+ * List all entities that descend from a management group.
368
+ *
161
369
  * @param groupId Management Group ID.
162
- * @param [options] The optional parameters
163
- * @returns Promise<msRestAzure.LROPoller>
370
+ * @param options The options parameters.
164
371
  */
165
- beginDeleteMethod(groupId: string, options?: Models.ManagementGroupsBeginDeleteMethodOptionalParams): Promise<msRestAzure.LROPoller> {
166
- return this.client.sendLRORequest(
167
- {
168
- groupId,
169
- options
170
- },
171
- beginDeleteMethodOperationSpec,
172
- options);
372
+ private _getDescendants(
373
+ groupId: string,
374
+ options?: ManagementGroupsGetDescendantsOptionalParams
375
+ ): Promise<ManagementGroupsGetDescendantsResponse> {
376
+ return this.client.sendOperationRequest(
377
+ { groupId, options },
378
+ getDescendantsOperationSpec
379
+ );
173
380
  }
174
381
 
175
382
  /**
176
- * List management groups for the authenticated user.
177
- * @param nextPageLink The NextLink from the previous successful call to List operation.
178
- * @param [options] The optional parameters
179
- * @returns Promise<Models.ManagementGroupsListNextResponse>
180
- */
181
- listNext(nextPageLink: string, options?: Models.ManagementGroupsListNextOptionalParams): Promise<Models.ManagementGroupsListNextResponse>;
182
- /**
183
- * @param nextPageLink The NextLink from the previous successful call to List operation.
184
- * @param callback The callback
383
+ * ListNext
384
+ * @param nextLink The nextLink from the previous successful call to the List method.
385
+ * @param options The options parameters.
185
386
  */
186
- listNext(nextPageLink: string, callback: msRest.ServiceCallback<Models.ManagementGroupListResult>): void;
387
+ private _listNext(
388
+ nextLink: string,
389
+ options?: ManagementGroupsListNextOptionalParams
390
+ ): Promise<ManagementGroupsListNextResponse> {
391
+ return this.client.sendOperationRequest(
392
+ { nextLink, options },
393
+ listNextOperationSpec
394
+ );
395
+ }
396
+
187
397
  /**
188
- * @param nextPageLink The NextLink from the previous successful call to List operation.
189
- * @param options The optional parameters
190
- * @param callback The callback
398
+ * GetDescendantsNext
399
+ * @param groupId Management Group ID.
400
+ * @param nextLink The nextLink from the previous successful call to the GetDescendants method.
401
+ * @param options The options parameters.
191
402
  */
192
- listNext(nextPageLink: string, options: Models.ManagementGroupsListNextOptionalParams, callback: msRest.ServiceCallback<Models.ManagementGroupListResult>): void;
193
- listNext(nextPageLink: string, options?: Models.ManagementGroupsListNextOptionalParams | msRest.ServiceCallback<Models.ManagementGroupListResult>, callback?: msRest.ServiceCallback<Models.ManagementGroupListResult>): Promise<Models.ManagementGroupsListNextResponse> {
403
+ private _getDescendantsNext(
404
+ groupId: string,
405
+ nextLink: string,
406
+ options?: ManagementGroupsGetDescendantsNextOptionalParams
407
+ ): Promise<ManagementGroupsGetDescendantsNextResponse> {
194
408
  return this.client.sendOperationRequest(
195
- {
196
- nextPageLink,
197
- options
198
- },
199
- listNextOperationSpec,
200
- callback) as Promise<Models.ManagementGroupsListNextResponse>;
409
+ { groupId, nextLink, options },
410
+ getDescendantsNextOperationSpec
411
+ );
201
412
  }
202
413
  }
203
-
204
414
  // Operation Specifications
205
- const serializer = new msRest.Serializer(Mappers);
206
- const listOperationSpec: msRest.OperationSpec = {
415
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
416
+
417
+ const listOperationSpec: coreClient.OperationSpec = {
418
+ path: "/providers/Microsoft.Management/managementGroups",
207
419
  httpMethod: "GET",
208
- path: "providers/Microsoft.Management/managementGroups",
209
- queryParameters: [
210
- Parameters.apiVersion,
211
- Parameters.skiptoken
212
- ],
213
- headerParameters: [
214
- Parameters.cacheControl,
215
- Parameters.acceptLanguage
216
- ],
217
420
  responses: {
218
421
  200: {
219
422
  bodyMapper: Mappers.ManagementGroupListResult
@@ -222,56 +425,66 @@ const listOperationSpec: msRest.OperationSpec = {
222
425
  bodyMapper: Mappers.ErrorResponse
223
426
  }
224
427
  },
428
+ queryParameters: [Parameters.apiVersion, Parameters.skiptoken],
429
+ urlParameters: [Parameters.$host],
430
+ headerParameters: [Parameters.accept, Parameters.cacheControl],
225
431
  serializer
226
432
  };
227
-
228
- const getOperationSpec: msRest.OperationSpec = {
433
+ const getOperationSpec: coreClient.OperationSpec = {
434
+ path: "/providers/Microsoft.Management/managementGroups/{groupId}",
229
435
  httpMethod: "GET",
230
- path: "providers/Microsoft.Management/managementGroups/{groupId}",
231
- urlParameters: [
232
- Parameters.groupId
233
- ],
436
+ responses: {
437
+ 200: {
438
+ bodyMapper: Mappers.ManagementGroup
439
+ },
440
+ default: {
441
+ bodyMapper: Mappers.ErrorResponse
442
+ }
443
+ },
234
444
  queryParameters: [
235
445
  Parameters.apiVersion,
236
446
  Parameters.expand,
237
447
  Parameters.recurse,
238
448
  Parameters.filter
239
449
  ],
240
- headerParameters: [
241
- Parameters.cacheControl,
242
- Parameters.acceptLanguage
243
- ],
450
+ urlParameters: [Parameters.$host, Parameters.groupId],
451
+ headerParameters: [Parameters.accept, Parameters.cacheControl],
452
+ serializer
453
+ };
454
+ const createOrUpdateOperationSpec: coreClient.OperationSpec = {
455
+ path: "/providers/Microsoft.Management/managementGroups/{groupId}",
456
+ httpMethod: "PUT",
244
457
  responses: {
245
458
  200: {
246
459
  bodyMapper: Mappers.ManagementGroup
247
460
  },
461
+ 201: {
462
+ bodyMapper: Mappers.ManagementGroup
463
+ },
464
+ 202: {
465
+ bodyMapper: Mappers.ManagementGroup
466
+ },
467
+ 204: {
468
+ bodyMapper: Mappers.ManagementGroup
469
+ },
248
470
  default: {
249
471
  bodyMapper: Mappers.ErrorResponse
250
472
  }
251
473
  },
252
- serializer
253
- };
254
-
255
- const updateOperationSpec: msRest.OperationSpec = {
256
- httpMethod: "PATCH",
257
- path: "providers/Microsoft.Management/managementGroups/{groupId}",
258
- urlParameters: [
259
- Parameters.groupId
260
- ],
261
- queryParameters: [
262
- Parameters.apiVersion
263
- ],
474
+ requestBody: Parameters.createManagementGroupRequest,
475
+ queryParameters: [Parameters.apiVersion],
476
+ urlParameters: [Parameters.$host, Parameters.groupId],
264
477
  headerParameters: [
478
+ Parameters.accept,
265
479
  Parameters.cacheControl,
266
- Parameters.acceptLanguage
480
+ Parameters.contentType
267
481
  ],
268
- requestBody: {
269
- parameterPath: "patchGroupRequest",
270
- mapper: {
271
- ...Mappers.PatchManagementGroupRequest,
272
- required: true
273
- }
274
- },
482
+ mediaType: "json",
483
+ serializer
484
+ };
485
+ const updateOperationSpec: coreClient.OperationSpec = {
486
+ path: "/providers/Microsoft.Management/managementGroups/{groupId}",
487
+ httpMethod: "PATCH",
275
488
  responses: {
276
489
  200: {
277
490
  bodyMapper: Mappers.ManagementGroup
@@ -280,86 +493,100 @@ const updateOperationSpec: msRest.OperationSpec = {
280
493
  bodyMapper: Mappers.ErrorResponse
281
494
  }
282
495
  },
283
- serializer
284
- };
285
-
286
- const beginCreateOrUpdateOperationSpec: msRest.OperationSpec = {
287
- httpMethod: "PUT",
288
- path: "providers/Microsoft.Management/managementGroups/{groupId}",
289
- urlParameters: [
290
- Parameters.groupId
291
- ],
292
- queryParameters: [
293
- Parameters.apiVersion
294
- ],
496
+ requestBody: Parameters.patchGroupRequest,
497
+ queryParameters: [Parameters.apiVersion],
498
+ urlParameters: [Parameters.$host, Parameters.groupId],
295
499
  headerParameters: [
500
+ Parameters.accept,
296
501
  Parameters.cacheControl,
297
- Parameters.acceptLanguage
502
+ Parameters.contentType
298
503
  ],
299
- requestBody: {
300
- parameterPath: "createManagementGroupRequest",
301
- mapper: {
302
- ...Mappers.CreateManagementGroupRequest,
303
- required: true
304
- }
305
- },
504
+ mediaType: "json",
505
+ serializer
506
+ };
507
+ const deleteOperationSpec: coreClient.OperationSpec = {
508
+ path: "/providers/Microsoft.Management/managementGroups/{groupId}",
509
+ httpMethod: "DELETE",
306
510
  responses: {
307
511
  200: {
308
- bodyMapper: Mappers.ManagementGroup
512
+ bodyMapper: Mappers.AzureAsyncOperationResults,
513
+ headersMapper: Mappers.ManagementGroupsDeleteHeaders
514
+ },
515
+ 201: {
516
+ bodyMapper: Mappers.AzureAsyncOperationResults,
517
+ headersMapper: Mappers.ManagementGroupsDeleteHeaders
309
518
  },
310
519
  202: {
311
- bodyMapper: Mappers.OperationResults
520
+ bodyMapper: Mappers.AzureAsyncOperationResults,
521
+ headersMapper: Mappers.ManagementGroupsDeleteHeaders
522
+ },
523
+ 204: {
524
+ bodyMapper: Mappers.AzureAsyncOperationResults,
525
+ headersMapper: Mappers.ManagementGroupsDeleteHeaders
312
526
  },
313
527
  default: {
314
528
  bodyMapper: Mappers.ErrorResponse
315
529
  }
316
530
  },
531
+ queryParameters: [Parameters.apiVersion],
532
+ urlParameters: [Parameters.$host, Parameters.groupId],
533
+ headerParameters: [Parameters.accept, Parameters.cacheControl],
317
534
  serializer
318
535
  };
319
-
320
- const beginDeleteMethodOperationSpec: msRest.OperationSpec = {
321
- httpMethod: "DELETE",
322
- path: "providers/Microsoft.Management/managementGroups/{groupId}",
323
- urlParameters: [
324
- Parameters.groupId
325
- ],
536
+ const getDescendantsOperationSpec: coreClient.OperationSpec = {
537
+ path:
538
+ "/providers/Microsoft.Management/managementGroups/{groupId}/descendants",
539
+ httpMethod: "GET",
540
+ responses: {
541
+ 200: {
542
+ bodyMapper: Mappers.DescendantListResult
543
+ },
544
+ default: {
545
+ bodyMapper: Mappers.ErrorResponse
546
+ }
547
+ },
326
548
  queryParameters: [
327
- Parameters.apiVersion
328
- ],
329
- headerParameters: [
330
- Parameters.cacheControl,
331
- Parameters.acceptLanguage
549
+ Parameters.apiVersion,
550
+ Parameters.skiptoken,
551
+ Parameters.top
332
552
  ],
553
+ urlParameters: [Parameters.$host, Parameters.groupId],
554
+ headerParameters: [Parameters.accept],
555
+ serializer
556
+ };
557
+ const listNextOperationSpec: coreClient.OperationSpec = {
558
+ path: "{nextLink}",
559
+ httpMethod: "GET",
333
560
  responses: {
334
- 202: {
335
- bodyMapper: Mappers.OperationResults
561
+ 200: {
562
+ bodyMapper: Mappers.ManagementGroupListResult
336
563
  },
337
- 204: {},
338
564
  default: {
339
565
  bodyMapper: Mappers.ErrorResponse
340
566
  }
341
567
  },
568
+ queryParameters: [Parameters.apiVersion, Parameters.skiptoken],
569
+ urlParameters: [Parameters.$host, Parameters.nextLink],
570
+ headerParameters: [Parameters.accept, Parameters.cacheControl],
342
571
  serializer
343
572
  };
344
-
345
- const listNextOperationSpec: msRest.OperationSpec = {
346
- httpMethod: "GET",
347
- baseUrl: "https://management.azure.com",
573
+ const getDescendantsNextOperationSpec: coreClient.OperationSpec = {
348
574
  path: "{nextLink}",
349
- urlParameters: [
350
- Parameters.nextPageLink
351
- ],
352
- headerParameters: [
353
- Parameters.cacheControl,
354
- Parameters.acceptLanguage
355
- ],
575
+ httpMethod: "GET",
356
576
  responses: {
357
577
  200: {
358
- bodyMapper: Mappers.ManagementGroupListResult
578
+ bodyMapper: Mappers.DescendantListResult
359
579
  },
360
580
  default: {
361
581
  bodyMapper: Mappers.ErrorResponse
362
582
  }
363
583
  },
584
+ queryParameters: [
585
+ Parameters.apiVersion,
586
+ Parameters.skiptoken,
587
+ Parameters.top
588
+ ],
589
+ urlParameters: [Parameters.$host, Parameters.groupId, Parameters.nextLink],
590
+ headerParameters: [Parameters.accept],
364
591
  serializer
365
592
  };