@azure/arm-devopsinfrastructure 1.0.0-alpha.20240531.3

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 (165) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +21 -0
  3. package/README.md +109 -0
  4. package/dist/index.js +3582 -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/samples-dev/imageVersionsListByImageSample.d.ts +2 -0
  9. package/dist-esm/samples-dev/imageVersionsListByImageSample.d.ts.map +1 -0
  10. package/dist-esm/samples-dev/imageVersionsListByImageSample.js +55 -0
  11. package/dist-esm/samples-dev/imageVersionsListByImageSample.js.map +1 -0
  12. package/dist-esm/samples-dev/operationsListSample.d.ts +2 -0
  13. package/dist-esm/samples-dev/operationsListSample.d.ts.map +1 -0
  14. package/dist-esm/samples-dev/operationsListSample.js +53 -0
  15. package/dist-esm/samples-dev/operationsListSample.js.map +1 -0
  16. package/dist-esm/samples-dev/poolsCreateOrUpdateSample.d.ts +2 -0
  17. package/dist-esm/samples-dev/poolsCreateOrUpdateSample.d.ts.map +1 -0
  18. package/dist-esm/samples-dev/poolsCreateOrUpdateSample.js +61 -0
  19. package/dist-esm/samples-dev/poolsCreateOrUpdateSample.js.map +1 -0
  20. package/dist-esm/samples-dev/poolsDeleteSample.d.ts +2 -0
  21. package/dist-esm/samples-dev/poolsDeleteSample.d.ts.map +1 -0
  22. package/dist-esm/samples-dev/poolsDeleteSample.js +39 -0
  23. package/dist-esm/samples-dev/poolsDeleteSample.js.map +1 -0
  24. package/dist-esm/samples-dev/poolsGetSample.d.ts +2 -0
  25. package/dist-esm/samples-dev/poolsGetSample.d.ts.map +1 -0
  26. package/dist-esm/samples-dev/poolsGetSample.js +39 -0
  27. package/dist-esm/samples-dev/poolsGetSample.js.map +1 -0
  28. package/dist-esm/samples-dev/poolsListByResourceGroupSample.d.ts +2 -0
  29. package/dist-esm/samples-dev/poolsListByResourceGroupSample.d.ts.map +1 -0
  30. package/dist-esm/samples-dev/poolsListByResourceGroupSample.js +54 -0
  31. package/dist-esm/samples-dev/poolsListByResourceGroupSample.js.map +1 -0
  32. package/dist-esm/samples-dev/poolsListBySubscriptionSample.d.ts +2 -0
  33. package/dist-esm/samples-dev/poolsListBySubscriptionSample.d.ts.map +1 -0
  34. package/dist-esm/samples-dev/poolsListBySubscriptionSample.js +53 -0
  35. package/dist-esm/samples-dev/poolsListBySubscriptionSample.js.map +1 -0
  36. package/dist-esm/samples-dev/poolsUpdateSample.d.ts +2 -0
  37. package/dist-esm/samples-dev/poolsUpdateSample.d.ts.map +1 -0
  38. package/dist-esm/samples-dev/poolsUpdateSample.js +40 -0
  39. package/dist-esm/samples-dev/poolsUpdateSample.js.map +1 -0
  40. package/dist-esm/samples-dev/resourceDetailsListByPoolSample.d.ts +2 -0
  41. package/dist-esm/samples-dev/resourceDetailsListByPoolSample.d.ts.map +1 -0
  42. package/dist-esm/samples-dev/resourceDetailsListByPoolSample.js +55 -0
  43. package/dist-esm/samples-dev/resourceDetailsListByPoolSample.js.map +1 -0
  44. package/dist-esm/samples-dev/skuListByLocationSample.d.ts +2 -0
  45. package/dist-esm/samples-dev/skuListByLocationSample.d.ts.map +1 -0
  46. package/dist-esm/samples-dev/skuListByLocationSample.js +54 -0
  47. package/dist-esm/samples-dev/skuListByLocationSample.js.map +1 -0
  48. package/dist-esm/samples-dev/subscriptionUsagesListByLocationSample.d.ts +2 -0
  49. package/dist-esm/samples-dev/subscriptionUsagesListByLocationSample.d.ts.map +1 -0
  50. package/dist-esm/samples-dev/subscriptionUsagesListByLocationSample.js +54 -0
  51. package/dist-esm/samples-dev/subscriptionUsagesListByLocationSample.js.map +1 -0
  52. package/dist-esm/src/index.d.ts +6 -0
  53. package/dist-esm/src/index.d.ts.map +1 -0
  54. package/dist-esm/src/index.js +13 -0
  55. package/dist-esm/src/index.js.map +1 -0
  56. package/dist-esm/src/lroImpl.d.ts +11 -0
  57. package/dist-esm/src/lroImpl.d.ts.map +1 -0
  58. package/dist-esm/src/lroImpl.js +21 -0
  59. package/dist-esm/src/lroImpl.js.map +1 -0
  60. package/dist-esm/src/managedDevOpsInfrastructure.d.ts +25 -0
  61. package/dist-esm/src/managedDevOpsInfrastructure.d.ts.map +1 -0
  62. package/dist-esm/src/managedDevOpsInfrastructure.js +105 -0
  63. package/dist-esm/src/managedDevOpsInfrastructure.js.map +1 -0
  64. package/dist-esm/src/models/index.d.ts +1044 -0
  65. package/dist-esm/src/models/index.d.ts.map +1 -0
  66. package/dist-esm/src/models/index.js +182 -0
  67. package/dist-esm/src/models/index.js.map +1 -0
  68. package/dist-esm/src/models/mappers.d.ts +86 -0
  69. package/dist-esm/src/models/mappers.d.ts.map +1 -0
  70. package/dist-esm/src/models/mappers.js +1766 -0
  71. package/dist-esm/src/models/mappers.js.map +1 -0
  72. package/dist-esm/src/models/parameters.d.ts +14 -0
  73. package/dist-esm/src/models/parameters.d.ts.map +1 -0
  74. package/dist-esm/src/models/parameters.js +135 -0
  75. package/dist-esm/src/models/parameters.js.map +1 -0
  76. package/dist-esm/src/operations/imageVersions.d.ts +38 -0
  77. package/dist-esm/src/operations/imageVersions.d.ts.map +1 -0
  78. package/dist-esm/src/operations/imageVersions.js +150 -0
  79. package/dist-esm/src/operations/imageVersions.js.map +1 -0
  80. package/dist-esm/src/operations/index.d.ts +7 -0
  81. package/dist-esm/src/operations/index.d.ts.map +1 -0
  82. package/dist-esm/src/operations/index.js +14 -0
  83. package/dist-esm/src/operations/index.js.map +1 -0
  84. package/dist-esm/src/operations/operations.d.ts +32 -0
  85. package/dist-esm/src/operations/operations.d.ts.map +1 -0
  86. package/dist-esm/src/operations/operations.js +133 -0
  87. package/dist-esm/src/operations/operations.js.map +1 -0
  88. package/dist-esm/src/operations/pools.d.ts +107 -0
  89. package/dist-esm/src/operations/pools.d.ts.map +1 -0
  90. package/dist-esm/src/operations/pools.js +554 -0
  91. package/dist-esm/src/operations/pools.js.map +1 -0
  92. package/dist-esm/src/operations/resourceDetails.d.ts +38 -0
  93. package/dist-esm/src/operations/resourceDetails.d.ts.map +1 -0
  94. package/dist-esm/src/operations/resourceDetails.js +150 -0
  95. package/dist-esm/src/operations/resourceDetails.js.map +1 -0
  96. package/dist-esm/src/operations/sku.d.ts +35 -0
  97. package/dist-esm/src/operations/sku.d.ts.map +1 -0
  98. package/dist-esm/src/operations/sku.js +145 -0
  99. package/dist-esm/src/operations/sku.js.map +1 -0
  100. package/dist-esm/src/operations/subscriptionUsages.d.ts +35 -0
  101. package/dist-esm/src/operations/subscriptionUsages.d.ts.map +1 -0
  102. package/dist-esm/src/operations/subscriptionUsages.js +145 -0
  103. package/dist-esm/src/operations/subscriptionUsages.js.map +1 -0
  104. package/dist-esm/src/operationsInterfaces/imageVersions.d.ts +13 -0
  105. package/dist-esm/src/operationsInterfaces/imageVersions.d.ts.map +1 -0
  106. package/dist-esm/src/operationsInterfaces/imageVersions.js +9 -0
  107. package/dist-esm/src/operationsInterfaces/imageVersions.js.map +1 -0
  108. package/dist-esm/src/operationsInterfaces/index.d.ts +7 -0
  109. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -0
  110. package/dist-esm/src/operationsInterfaces/index.js +14 -0
  111. package/dist-esm/src/operationsInterfaces/index.js.map +1 -0
  112. package/dist-esm/src/operationsInterfaces/operations.d.ts +11 -0
  113. package/dist-esm/src/operationsInterfaces/operations.d.ts.map +1 -0
  114. package/dist-esm/src/operationsInterfaces/operations.js +9 -0
  115. package/dist-esm/src/operationsInterfaces/operations.js.map +1 -0
  116. package/dist-esm/src/operationsInterfaces/pools.d.ts +71 -0
  117. package/dist-esm/src/operationsInterfaces/pools.d.ts.map +1 -0
  118. package/dist-esm/src/operationsInterfaces/pools.js +9 -0
  119. package/dist-esm/src/operationsInterfaces/pools.js.map +1 -0
  120. package/dist-esm/src/operationsInterfaces/resourceDetails.d.ts +13 -0
  121. package/dist-esm/src/operationsInterfaces/resourceDetails.d.ts.map +1 -0
  122. package/dist-esm/src/operationsInterfaces/resourceDetails.js +9 -0
  123. package/dist-esm/src/operationsInterfaces/resourceDetails.js.map +1 -0
  124. package/dist-esm/src/operationsInterfaces/sku.d.ts +12 -0
  125. package/dist-esm/src/operationsInterfaces/sku.d.ts.map +1 -0
  126. package/dist-esm/src/operationsInterfaces/sku.js +9 -0
  127. package/dist-esm/src/operationsInterfaces/sku.js.map +1 -0
  128. package/dist-esm/src/operationsInterfaces/subscriptionUsages.d.ts +12 -0
  129. package/dist-esm/src/operationsInterfaces/subscriptionUsages.d.ts.map +1 -0
  130. package/dist-esm/src/operationsInterfaces/subscriptionUsages.js +9 -0
  131. package/dist-esm/src/operationsInterfaces/subscriptionUsages.js.map +1 -0
  132. package/dist-esm/src/pagingHelper.d.ts +13 -0
  133. package/dist-esm/src/pagingHelper.d.ts.map +1 -0
  134. package/dist-esm/src/pagingHelper.js +32 -0
  135. package/dist-esm/src/pagingHelper.js.map +1 -0
  136. package/dist-esm/test/devopsinfrastructure_operations_test.spec.d.ts +4 -0
  137. package/dist-esm/test/devopsinfrastructure_operations_test.spec.d.ts.map +1 -0
  138. package/dist-esm/test/devopsinfrastructure_operations_test.spec.js +74 -0
  139. package/dist-esm/test/devopsinfrastructure_operations_test.spec.js.map +1 -0
  140. package/package.json +118 -0
  141. package/review/arm-devopsinfrastructure.api.md +828 -0
  142. package/src/index.ts +13 -0
  143. package/src/lroImpl.ts +42 -0
  144. package/src/managedDevOpsInfrastructure.ts +165 -0
  145. package/src/models/index.ts +1197 -0
  146. package/src/models/mappers.ts +1899 -0
  147. package/src/models/parameters.ts +155 -0
  148. package/src/operations/imageVersions.ts +197 -0
  149. package/src/operations/index.ts +14 -0
  150. package/src/operations/operations.ts +149 -0
  151. package/src/operations/pools.ts +718 -0
  152. package/src/operations/resourceDetails.ts +193 -0
  153. package/src/operations/sku.ts +176 -0
  154. package/src/operations/subscriptionUsages.ts +176 -0
  155. package/src/operationsInterfaces/imageVersions.ts +29 -0
  156. package/src/operationsInterfaces/index.ts +14 -0
  157. package/src/operationsInterfaces/operations.ts +22 -0
  158. package/src/operationsInterfaces/pools.ts +139 -0
  159. package/src/operationsInterfaces/resourceDetails.ts +29 -0
  160. package/src/operationsInterfaces/sku.ts +24 -0
  161. package/src/operationsInterfaces/subscriptionUsages.ts +27 -0
  162. package/src/pagingHelper.ts +39 -0
  163. package/tsconfig.json +33 -0
  164. package/types/arm-devopsinfrastructure.d.ts +1336 -0
  165. package/types/tsdoc-metadata.json +11 -0
@@ -0,0 +1,718 @@
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, PageSettings } from "@azure/core-paging";
10
+ import { setContinuationToken } from "../pagingHelper";
11
+ import { Pools } from "../operationsInterfaces";
12
+ import * as coreClient from "@azure/core-client";
13
+ import * as Mappers from "../models/mappers";
14
+ import * as Parameters from "../models/parameters";
15
+ import { ManagedDevOpsInfrastructure } from "../managedDevOpsInfrastructure";
16
+ import {
17
+ SimplePollerLike,
18
+ OperationState,
19
+ createHttpPoller,
20
+ } from "@azure/core-lro";
21
+ import { createLroSpec } from "../lroImpl";
22
+ import {
23
+ Pool,
24
+ PoolsListBySubscriptionNextOptionalParams,
25
+ PoolsListBySubscriptionOptionalParams,
26
+ PoolsListBySubscriptionResponse,
27
+ PoolsListByResourceGroupNextOptionalParams,
28
+ PoolsListByResourceGroupOptionalParams,
29
+ PoolsListByResourceGroupResponse,
30
+ PoolsGetOptionalParams,
31
+ PoolsGetResponse,
32
+ PoolsCreateOrUpdateOptionalParams,
33
+ PoolsCreateOrUpdateResponse,
34
+ PoolUpdate,
35
+ PoolsUpdateOptionalParams,
36
+ PoolsUpdateResponse,
37
+ PoolsDeleteOptionalParams,
38
+ PoolsDeleteResponse,
39
+ PoolsListBySubscriptionNextResponse,
40
+ PoolsListByResourceGroupNextResponse,
41
+ } from "../models";
42
+
43
+ /// <reference lib="esnext.asynciterable" />
44
+ /** Class containing Pools operations. */
45
+ export class PoolsImpl implements Pools {
46
+ private readonly client: ManagedDevOpsInfrastructure;
47
+
48
+ /**
49
+ * Initialize a new instance of the class Pools class.
50
+ * @param client Reference to the service client
51
+ */
52
+ constructor(client: ManagedDevOpsInfrastructure) {
53
+ this.client = client;
54
+ }
55
+
56
+ /**
57
+ * List Pool resources by subscription ID
58
+ * @param options The options parameters.
59
+ */
60
+ public listBySubscription(
61
+ options?: PoolsListBySubscriptionOptionalParams,
62
+ ): PagedAsyncIterableIterator<Pool> {
63
+ const iter = this.listBySubscriptionPagingAll(options);
64
+ return {
65
+ next() {
66
+ return iter.next();
67
+ },
68
+ [Symbol.asyncIterator]() {
69
+ return this;
70
+ },
71
+ byPage: (settings?: PageSettings) => {
72
+ if (settings?.maxPageSize) {
73
+ throw new Error("maxPageSize is not supported by this operation.");
74
+ }
75
+ return this.listBySubscriptionPagingPage(options, settings);
76
+ },
77
+ };
78
+ }
79
+
80
+ private async *listBySubscriptionPagingPage(
81
+ options?: PoolsListBySubscriptionOptionalParams,
82
+ settings?: PageSettings,
83
+ ): AsyncIterableIterator<Pool[]> {
84
+ let result: PoolsListBySubscriptionResponse;
85
+ let continuationToken = settings?.continuationToken;
86
+ if (!continuationToken) {
87
+ result = await this._listBySubscription(options);
88
+ let page = result.value || [];
89
+ continuationToken = result.nextLink;
90
+ setContinuationToken(page, continuationToken);
91
+ yield page;
92
+ }
93
+ while (continuationToken) {
94
+ result = await this._listBySubscriptionNext(continuationToken, options);
95
+ continuationToken = result.nextLink;
96
+ let page = result.value || [];
97
+ setContinuationToken(page, continuationToken);
98
+ yield page;
99
+ }
100
+ }
101
+
102
+ private async *listBySubscriptionPagingAll(
103
+ options?: PoolsListBySubscriptionOptionalParams,
104
+ ): AsyncIterableIterator<Pool> {
105
+ for await (const page of this.listBySubscriptionPagingPage(options)) {
106
+ yield* page;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * List Pool resources by resource group
112
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
113
+ * @param options The options parameters.
114
+ */
115
+ public listByResourceGroup(
116
+ resourceGroupName: string,
117
+ options?: PoolsListByResourceGroupOptionalParams,
118
+ ): PagedAsyncIterableIterator<Pool> {
119
+ const iter = this.listByResourceGroupPagingAll(resourceGroupName, options);
120
+ return {
121
+ next() {
122
+ return iter.next();
123
+ },
124
+ [Symbol.asyncIterator]() {
125
+ return this;
126
+ },
127
+ byPage: (settings?: PageSettings) => {
128
+ if (settings?.maxPageSize) {
129
+ throw new Error("maxPageSize is not supported by this operation.");
130
+ }
131
+ return this.listByResourceGroupPagingPage(
132
+ resourceGroupName,
133
+ options,
134
+ settings,
135
+ );
136
+ },
137
+ };
138
+ }
139
+
140
+ private async *listByResourceGroupPagingPage(
141
+ resourceGroupName: string,
142
+ options?: PoolsListByResourceGroupOptionalParams,
143
+ settings?: PageSettings,
144
+ ): AsyncIterableIterator<Pool[]> {
145
+ let result: PoolsListByResourceGroupResponse;
146
+ let continuationToken = settings?.continuationToken;
147
+ if (!continuationToken) {
148
+ result = await this._listByResourceGroup(resourceGroupName, options);
149
+ let page = result.value || [];
150
+ continuationToken = result.nextLink;
151
+ setContinuationToken(page, continuationToken);
152
+ yield page;
153
+ }
154
+ while (continuationToken) {
155
+ result = await this._listByResourceGroupNext(
156
+ resourceGroupName,
157
+ continuationToken,
158
+ options,
159
+ );
160
+ continuationToken = result.nextLink;
161
+ let page = result.value || [];
162
+ setContinuationToken(page, continuationToken);
163
+ yield page;
164
+ }
165
+ }
166
+
167
+ private async *listByResourceGroupPagingAll(
168
+ resourceGroupName: string,
169
+ options?: PoolsListByResourceGroupOptionalParams,
170
+ ): AsyncIterableIterator<Pool> {
171
+ for await (const page of this.listByResourceGroupPagingPage(
172
+ resourceGroupName,
173
+ options,
174
+ )) {
175
+ yield* page;
176
+ }
177
+ }
178
+
179
+ /**
180
+ * List Pool resources by subscription ID
181
+ * @param options The options parameters.
182
+ */
183
+ private _listBySubscription(
184
+ options?: PoolsListBySubscriptionOptionalParams,
185
+ ): Promise<PoolsListBySubscriptionResponse> {
186
+ return this.client.sendOperationRequest(
187
+ { options },
188
+ listBySubscriptionOperationSpec,
189
+ );
190
+ }
191
+
192
+ /**
193
+ * List Pool resources by resource group
194
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
195
+ * @param options The options parameters.
196
+ */
197
+ private _listByResourceGroup(
198
+ resourceGroupName: string,
199
+ options?: PoolsListByResourceGroupOptionalParams,
200
+ ): Promise<PoolsListByResourceGroupResponse> {
201
+ return this.client.sendOperationRequest(
202
+ { resourceGroupName, options },
203
+ listByResourceGroupOperationSpec,
204
+ );
205
+ }
206
+
207
+ /**
208
+ * Get a Pool
209
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
210
+ * @param poolName Name of the pool. It needs to be globally unique.
211
+ * @param options The options parameters.
212
+ */
213
+ get(
214
+ resourceGroupName: string,
215
+ poolName: string,
216
+ options?: PoolsGetOptionalParams,
217
+ ): Promise<PoolsGetResponse> {
218
+ return this.client.sendOperationRequest(
219
+ { resourceGroupName, poolName, options },
220
+ getOperationSpec,
221
+ );
222
+ }
223
+
224
+ /**
225
+ * Create a Pool
226
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
227
+ * @param poolName Name of the pool. It needs to be globally unique.
228
+ * @param resource Resource create parameters.
229
+ * @param options The options parameters.
230
+ */
231
+ async beginCreateOrUpdate(
232
+ resourceGroupName: string,
233
+ poolName: string,
234
+ resource: Pool,
235
+ options?: PoolsCreateOrUpdateOptionalParams,
236
+ ): Promise<
237
+ SimplePollerLike<
238
+ OperationState<PoolsCreateOrUpdateResponse>,
239
+ PoolsCreateOrUpdateResponse
240
+ >
241
+ > {
242
+ const directSendOperation = async (
243
+ args: coreClient.OperationArguments,
244
+ spec: coreClient.OperationSpec,
245
+ ): Promise<PoolsCreateOrUpdateResponse> => {
246
+ return this.client.sendOperationRequest(args, spec);
247
+ };
248
+ const sendOperationFn = async (
249
+ args: coreClient.OperationArguments,
250
+ spec: coreClient.OperationSpec,
251
+ ) => {
252
+ let currentRawResponse: coreClient.FullOperationResponse | undefined =
253
+ undefined;
254
+ const providedCallback = args.options?.onResponse;
255
+ const callback: coreClient.RawResponseCallback = (
256
+ rawResponse: coreClient.FullOperationResponse,
257
+ flatResponse: unknown,
258
+ ) => {
259
+ currentRawResponse = rawResponse;
260
+ providedCallback?.(rawResponse, flatResponse);
261
+ };
262
+ const updatedArgs = {
263
+ ...args,
264
+ options: {
265
+ ...args.options,
266
+ onResponse: callback,
267
+ },
268
+ };
269
+ const flatResponse = await directSendOperation(updatedArgs, spec);
270
+ return {
271
+ flatResponse,
272
+ rawResponse: {
273
+ statusCode: currentRawResponse!.status,
274
+ body: currentRawResponse!.parsedBody,
275
+ headers: currentRawResponse!.headers.toJSON(),
276
+ },
277
+ };
278
+ };
279
+
280
+ const lro = createLroSpec({
281
+ sendOperationFn,
282
+ args: { resourceGroupName, poolName, resource, options },
283
+ spec: createOrUpdateOperationSpec,
284
+ });
285
+ const poller = await createHttpPoller<
286
+ PoolsCreateOrUpdateResponse,
287
+ OperationState<PoolsCreateOrUpdateResponse>
288
+ >(lro, {
289
+ restoreFrom: options?.resumeFrom,
290
+ intervalInMs: options?.updateIntervalInMs,
291
+ resourceLocationConfig: "azure-async-operation",
292
+ });
293
+ await poller.poll();
294
+ return poller;
295
+ }
296
+
297
+ /**
298
+ * Create a Pool
299
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
300
+ * @param poolName Name of the pool. It needs to be globally unique.
301
+ * @param resource Resource create parameters.
302
+ * @param options The options parameters.
303
+ */
304
+ async beginCreateOrUpdateAndWait(
305
+ resourceGroupName: string,
306
+ poolName: string,
307
+ resource: Pool,
308
+ options?: PoolsCreateOrUpdateOptionalParams,
309
+ ): Promise<PoolsCreateOrUpdateResponse> {
310
+ const poller = await this.beginCreateOrUpdate(
311
+ resourceGroupName,
312
+ poolName,
313
+ resource,
314
+ options,
315
+ );
316
+ return poller.pollUntilDone();
317
+ }
318
+
319
+ /**
320
+ * Update a Pool
321
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
322
+ * @param poolName Name of the pool. It needs to be globally unique.
323
+ * @param properties The resource properties to be updated.
324
+ * @param options The options parameters.
325
+ */
326
+ async beginUpdate(
327
+ resourceGroupName: string,
328
+ poolName: string,
329
+ properties: PoolUpdate,
330
+ options?: PoolsUpdateOptionalParams,
331
+ ): Promise<
332
+ SimplePollerLike<OperationState<PoolsUpdateResponse>, PoolsUpdateResponse>
333
+ > {
334
+ const directSendOperation = async (
335
+ args: coreClient.OperationArguments,
336
+ spec: coreClient.OperationSpec,
337
+ ): Promise<PoolsUpdateResponse> => {
338
+ return this.client.sendOperationRequest(args, spec);
339
+ };
340
+ const sendOperationFn = async (
341
+ args: coreClient.OperationArguments,
342
+ spec: coreClient.OperationSpec,
343
+ ) => {
344
+ let currentRawResponse: coreClient.FullOperationResponse | undefined =
345
+ undefined;
346
+ const providedCallback = args.options?.onResponse;
347
+ const callback: coreClient.RawResponseCallback = (
348
+ rawResponse: coreClient.FullOperationResponse,
349
+ flatResponse: unknown,
350
+ ) => {
351
+ currentRawResponse = rawResponse;
352
+ providedCallback?.(rawResponse, flatResponse);
353
+ };
354
+ const updatedArgs = {
355
+ ...args,
356
+ options: {
357
+ ...args.options,
358
+ onResponse: callback,
359
+ },
360
+ };
361
+ const flatResponse = await directSendOperation(updatedArgs, spec);
362
+ return {
363
+ flatResponse,
364
+ rawResponse: {
365
+ statusCode: currentRawResponse!.status,
366
+ body: currentRawResponse!.parsedBody,
367
+ headers: currentRawResponse!.headers.toJSON(),
368
+ },
369
+ };
370
+ };
371
+
372
+ const lro = createLroSpec({
373
+ sendOperationFn,
374
+ args: { resourceGroupName, poolName, properties, options },
375
+ spec: updateOperationSpec,
376
+ });
377
+ const poller = await createHttpPoller<
378
+ PoolsUpdateResponse,
379
+ OperationState<PoolsUpdateResponse>
380
+ >(lro, {
381
+ restoreFrom: options?.resumeFrom,
382
+ intervalInMs: options?.updateIntervalInMs,
383
+ resourceLocationConfig: "location",
384
+ });
385
+ await poller.poll();
386
+ return poller;
387
+ }
388
+
389
+ /**
390
+ * Update a Pool
391
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
392
+ * @param poolName Name of the pool. It needs to be globally unique.
393
+ * @param properties The resource properties to be updated.
394
+ * @param options The options parameters.
395
+ */
396
+ async beginUpdateAndWait(
397
+ resourceGroupName: string,
398
+ poolName: string,
399
+ properties: PoolUpdate,
400
+ options?: PoolsUpdateOptionalParams,
401
+ ): Promise<PoolsUpdateResponse> {
402
+ const poller = await this.beginUpdate(
403
+ resourceGroupName,
404
+ poolName,
405
+ properties,
406
+ options,
407
+ );
408
+ return poller.pollUntilDone();
409
+ }
410
+
411
+ /**
412
+ * Delete a Pool
413
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
414
+ * @param poolName Name of the pool. It needs to be globally unique.
415
+ * @param options The options parameters.
416
+ */
417
+ async beginDelete(
418
+ resourceGroupName: string,
419
+ poolName: string,
420
+ options?: PoolsDeleteOptionalParams,
421
+ ): Promise<
422
+ SimplePollerLike<OperationState<PoolsDeleteResponse>, PoolsDeleteResponse>
423
+ > {
424
+ const directSendOperation = async (
425
+ args: coreClient.OperationArguments,
426
+ spec: coreClient.OperationSpec,
427
+ ): Promise<PoolsDeleteResponse> => {
428
+ return this.client.sendOperationRequest(args, spec);
429
+ };
430
+ const sendOperationFn = async (
431
+ args: coreClient.OperationArguments,
432
+ spec: coreClient.OperationSpec,
433
+ ) => {
434
+ let currentRawResponse: coreClient.FullOperationResponse | undefined =
435
+ undefined;
436
+ const providedCallback = args.options?.onResponse;
437
+ const callback: coreClient.RawResponseCallback = (
438
+ rawResponse: coreClient.FullOperationResponse,
439
+ flatResponse: unknown,
440
+ ) => {
441
+ currentRawResponse = rawResponse;
442
+ providedCallback?.(rawResponse, flatResponse);
443
+ };
444
+ const updatedArgs = {
445
+ ...args,
446
+ options: {
447
+ ...args.options,
448
+ onResponse: callback,
449
+ },
450
+ };
451
+ const flatResponse = await directSendOperation(updatedArgs, spec);
452
+ return {
453
+ flatResponse,
454
+ rawResponse: {
455
+ statusCode: currentRawResponse!.status,
456
+ body: currentRawResponse!.parsedBody,
457
+ headers: currentRawResponse!.headers.toJSON(),
458
+ },
459
+ };
460
+ };
461
+
462
+ const lro = createLroSpec({
463
+ sendOperationFn,
464
+ args: { resourceGroupName, poolName, options },
465
+ spec: deleteOperationSpec,
466
+ });
467
+ const poller = await createHttpPoller<
468
+ PoolsDeleteResponse,
469
+ OperationState<PoolsDeleteResponse>
470
+ >(lro, {
471
+ restoreFrom: options?.resumeFrom,
472
+ intervalInMs: options?.updateIntervalInMs,
473
+ resourceLocationConfig: "location",
474
+ });
475
+ await poller.poll();
476
+ return poller;
477
+ }
478
+
479
+ /**
480
+ * Delete a Pool
481
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
482
+ * @param poolName Name of the pool. It needs to be globally unique.
483
+ * @param options The options parameters.
484
+ */
485
+ async beginDeleteAndWait(
486
+ resourceGroupName: string,
487
+ poolName: string,
488
+ options?: PoolsDeleteOptionalParams,
489
+ ): Promise<PoolsDeleteResponse> {
490
+ const poller = await this.beginDelete(resourceGroupName, poolName, options);
491
+ return poller.pollUntilDone();
492
+ }
493
+
494
+ /**
495
+ * ListBySubscriptionNext
496
+ * @param nextLink The nextLink from the previous successful call to the ListBySubscription method.
497
+ * @param options The options parameters.
498
+ */
499
+ private _listBySubscriptionNext(
500
+ nextLink: string,
501
+ options?: PoolsListBySubscriptionNextOptionalParams,
502
+ ): Promise<PoolsListBySubscriptionNextResponse> {
503
+ return this.client.sendOperationRequest(
504
+ { nextLink, options },
505
+ listBySubscriptionNextOperationSpec,
506
+ );
507
+ }
508
+
509
+ /**
510
+ * ListByResourceGroupNext
511
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
512
+ * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
513
+ * @param options The options parameters.
514
+ */
515
+ private _listByResourceGroupNext(
516
+ resourceGroupName: string,
517
+ nextLink: string,
518
+ options?: PoolsListByResourceGroupNextOptionalParams,
519
+ ): Promise<PoolsListByResourceGroupNextResponse> {
520
+ return this.client.sendOperationRequest(
521
+ { resourceGroupName, nextLink, options },
522
+ listByResourceGroupNextOperationSpec,
523
+ );
524
+ }
525
+ }
526
+ // Operation Specifications
527
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
528
+
529
+ const listBySubscriptionOperationSpec: coreClient.OperationSpec = {
530
+ path: "/subscriptions/{subscriptionId}/providers/Microsoft.DevOpsInfrastructure/pools",
531
+ httpMethod: "GET",
532
+ responses: {
533
+ 200: {
534
+ bodyMapper: Mappers.PoolListResult,
535
+ },
536
+ default: {
537
+ bodyMapper: Mappers.ErrorResponse,
538
+ },
539
+ },
540
+ queryParameters: [Parameters.apiVersion],
541
+ urlParameters: [Parameters.$host, Parameters.subscriptionId],
542
+ headerParameters: [Parameters.accept],
543
+ serializer,
544
+ };
545
+ const listByResourceGroupOperationSpec: coreClient.OperationSpec = {
546
+ path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools",
547
+ httpMethod: "GET",
548
+ responses: {
549
+ 200: {
550
+ bodyMapper: Mappers.PoolListResult,
551
+ },
552
+ default: {
553
+ bodyMapper: Mappers.ErrorResponse,
554
+ },
555
+ },
556
+ queryParameters: [Parameters.apiVersion],
557
+ urlParameters: [
558
+ Parameters.$host,
559
+ Parameters.subscriptionId,
560
+ Parameters.resourceGroupName,
561
+ ],
562
+ headerParameters: [Parameters.accept],
563
+ serializer,
564
+ };
565
+ const getOperationSpec: coreClient.OperationSpec = {
566
+ path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools/{poolName}",
567
+ httpMethod: "GET",
568
+ responses: {
569
+ 200: {
570
+ bodyMapper: Mappers.Pool,
571
+ },
572
+ default: {
573
+ bodyMapper: Mappers.ErrorResponse,
574
+ },
575
+ },
576
+ queryParameters: [Parameters.apiVersion],
577
+ urlParameters: [
578
+ Parameters.$host,
579
+ Parameters.subscriptionId,
580
+ Parameters.resourceGroupName,
581
+ Parameters.poolName,
582
+ ],
583
+ headerParameters: [Parameters.accept],
584
+ serializer,
585
+ };
586
+ const createOrUpdateOperationSpec: coreClient.OperationSpec = {
587
+ path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools/{poolName}",
588
+ httpMethod: "PUT",
589
+ responses: {
590
+ 200: {
591
+ bodyMapper: Mappers.Pool,
592
+ },
593
+ 201: {
594
+ bodyMapper: Mappers.Pool,
595
+ },
596
+ 202: {
597
+ bodyMapper: Mappers.Pool,
598
+ },
599
+ 204: {
600
+ bodyMapper: Mappers.Pool,
601
+ },
602
+ default: {
603
+ bodyMapper: Mappers.ErrorResponse,
604
+ },
605
+ },
606
+ requestBody: Parameters.resource,
607
+ queryParameters: [Parameters.apiVersion],
608
+ urlParameters: [
609
+ Parameters.$host,
610
+ Parameters.subscriptionId,
611
+ Parameters.resourceGroupName,
612
+ Parameters.poolName,
613
+ ],
614
+ headerParameters: [Parameters.accept, Parameters.contentType],
615
+ mediaType: "json",
616
+ serializer,
617
+ };
618
+ const updateOperationSpec: coreClient.OperationSpec = {
619
+ path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools/{poolName}",
620
+ httpMethod: "PATCH",
621
+ responses: {
622
+ 200: {
623
+ bodyMapper: Mappers.Pool,
624
+ },
625
+ 201: {
626
+ bodyMapper: Mappers.Pool,
627
+ },
628
+ 202: {
629
+ bodyMapper: Mappers.Pool,
630
+ },
631
+ 204: {
632
+ bodyMapper: Mappers.Pool,
633
+ },
634
+ default: {
635
+ bodyMapper: Mappers.ErrorResponse,
636
+ },
637
+ },
638
+ requestBody: Parameters.properties,
639
+ queryParameters: [Parameters.apiVersion],
640
+ urlParameters: [
641
+ Parameters.$host,
642
+ Parameters.subscriptionId,
643
+ Parameters.resourceGroupName,
644
+ Parameters.poolName,
645
+ ],
646
+ headerParameters: [Parameters.accept, Parameters.contentType],
647
+ mediaType: "json",
648
+ serializer,
649
+ };
650
+ const deleteOperationSpec: coreClient.OperationSpec = {
651
+ path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevOpsInfrastructure/pools/{poolName}",
652
+ httpMethod: "DELETE",
653
+ responses: {
654
+ 200: {
655
+ headersMapper: Mappers.PoolsDeleteHeaders,
656
+ },
657
+ 201: {
658
+ headersMapper: Mappers.PoolsDeleteHeaders,
659
+ },
660
+ 202: {
661
+ headersMapper: Mappers.PoolsDeleteHeaders,
662
+ },
663
+ 204: {
664
+ headersMapper: Mappers.PoolsDeleteHeaders,
665
+ },
666
+ default: {
667
+ bodyMapper: Mappers.ErrorResponse,
668
+ },
669
+ },
670
+ queryParameters: [Parameters.apiVersion],
671
+ urlParameters: [
672
+ Parameters.$host,
673
+ Parameters.subscriptionId,
674
+ Parameters.resourceGroupName,
675
+ Parameters.poolName,
676
+ ],
677
+ headerParameters: [Parameters.accept],
678
+ serializer,
679
+ };
680
+ const listBySubscriptionNextOperationSpec: coreClient.OperationSpec = {
681
+ path: "{nextLink}",
682
+ httpMethod: "GET",
683
+ responses: {
684
+ 200: {
685
+ bodyMapper: Mappers.PoolListResult,
686
+ },
687
+ default: {
688
+ bodyMapper: Mappers.ErrorResponse,
689
+ },
690
+ },
691
+ urlParameters: [
692
+ Parameters.$host,
693
+ Parameters.nextLink,
694
+ Parameters.subscriptionId,
695
+ ],
696
+ headerParameters: [Parameters.accept],
697
+ serializer,
698
+ };
699
+ const listByResourceGroupNextOperationSpec: coreClient.OperationSpec = {
700
+ path: "{nextLink}",
701
+ httpMethod: "GET",
702
+ responses: {
703
+ 200: {
704
+ bodyMapper: Mappers.PoolListResult,
705
+ },
706
+ default: {
707
+ bodyMapper: Mappers.ErrorResponse,
708
+ },
709
+ },
710
+ urlParameters: [
711
+ Parameters.$host,
712
+ Parameters.nextLink,
713
+ Parameters.subscriptionId,
714
+ Parameters.resourceGroupName,
715
+ ],
716
+ headerParameters: [Parameters.accept],
717
+ serializer,
718
+ };