@azure/arm-dnsresolver 1.0.0-beta.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 (117) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +98 -0
  4. package/dist/index.js +4086 -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/dnsResolverManagementClient.d.ts +23 -0
  9. package/dist-esm/src/dnsResolverManagementClient.d.ts.map +1 -0
  10. package/dist-esm/src/dnsResolverManagementClient.js +56 -0
  11. package/dist-esm/src/dnsResolverManagementClient.js.map +1 -0
  12. package/dist-esm/src/index.d.ts +5 -0
  13. package/dist-esm/src/index.d.ts.map +1 -0
  14. package/dist-esm/src/index.js +12 -0
  15. package/dist-esm/src/index.js.map +1 -0
  16. package/dist-esm/src/lroImpl.d.ts +16 -0
  17. package/dist-esm/src/lroImpl.d.ts.map +1 -0
  18. package/dist-esm/src/lroImpl.js +29 -0
  19. package/dist-esm/src/lroImpl.js.map +1 -0
  20. package/dist-esm/src/models/index.d.ts +820 -0
  21. package/dist-esm/src/models/index.d.ts.map +1 -0
  22. package/dist-esm/src/models/index.js +44 -0
  23. package/dist-esm/src/models/index.js.map +1 -0
  24. package/dist-esm/src/models/mappers.d.ts +32 -0
  25. package/dist-esm/src/models/mappers.d.ts.map +1 -0
  26. package/dist-esm/src/models/mappers.js +821 -0
  27. package/dist-esm/src/models/mappers.js.map +1 -0
  28. package/dist-esm/src/models/parameters.d.ts +31 -0
  29. package/dist-esm/src/models/parameters.d.ts.map +1 -0
  30. package/dist-esm/src/models/parameters.js +236 -0
  31. package/dist-esm/src/models/parameters.js.map +1 -0
  32. package/dist-esm/src/operations/dnsForwardingRulesets.d.ts +133 -0
  33. package/dist-esm/src/operations/dnsForwardingRulesets.d.ts.map +1 -0
  34. package/dist-esm/src/operations/dnsForwardingRulesets.js +623 -0
  35. package/dist-esm/src/operations/dnsForwardingRulesets.js.map +1 -0
  36. package/dist-esm/src/operations/dnsResolvers.d.ts +131 -0
  37. package/dist-esm/src/operations/dnsResolvers.d.ts.map +1 -0
  38. package/dist-esm/src/operations/dnsResolvers.js +621 -0
  39. package/dist-esm/src/operations/dnsResolvers.js.map +1 -0
  40. package/dist-esm/src/operations/forwardingRules.d.ts +72 -0
  41. package/dist-esm/src/operations/forwardingRules.d.ts.map +1 -0
  42. package/dist-esm/src/operations/forwardingRules.js +304 -0
  43. package/dist-esm/src/operations/forwardingRules.js.map +1 -0
  44. package/dist-esm/src/operations/inboundEndpoints.d.ts +99 -0
  45. package/dist-esm/src/operations/inboundEndpoints.d.ts.map +1 -0
  46. package/dist-esm/src/operations/inboundEndpoints.js +438 -0
  47. package/dist-esm/src/operations/inboundEndpoints.js.map +1 -0
  48. package/dist-esm/src/operations/index.d.ts +7 -0
  49. package/dist-esm/src/operations/index.d.ts.map +1 -0
  50. package/dist-esm/src/operations/index.js +14 -0
  51. package/dist-esm/src/operations/index.js.map +1 -0
  52. package/dist-esm/src/operations/outboundEndpoints.d.ts +99 -0
  53. package/dist-esm/src/operations/outboundEndpoints.d.ts.map +1 -0
  54. package/dist-esm/src/operations/outboundEndpoints.js +438 -0
  55. package/dist-esm/src/operations/outboundEndpoints.js.map +1 -0
  56. package/dist-esm/src/operations/virtualNetworkLinks.d.ts +101 -0
  57. package/dist-esm/src/operations/virtualNetworkLinks.d.ts.map +1 -0
  58. package/dist-esm/src/operations/virtualNetworkLinks.js +450 -0
  59. package/dist-esm/src/operations/virtualNetworkLinks.js.map +1 -0
  60. package/dist-esm/src/operationsInterfaces/dnsForwardingRulesets.d.ts +80 -0
  61. package/dist-esm/src/operationsInterfaces/dnsForwardingRulesets.d.ts.map +1 -0
  62. package/dist-esm/src/operationsInterfaces/dnsForwardingRulesets.js +9 -0
  63. package/dist-esm/src/operationsInterfaces/dnsForwardingRulesets.js.map +1 -0
  64. package/dist-esm/src/operationsInterfaces/dnsResolvers.d.ts +78 -0
  65. package/dist-esm/src/operationsInterfaces/dnsResolvers.d.ts.map +1 -0
  66. package/dist-esm/src/operationsInterfaces/dnsResolvers.js +9 -0
  67. package/dist-esm/src/operationsInterfaces/dnsResolvers.js.map +1 -0
  68. package/dist-esm/src/operationsInterfaces/forwardingRules.d.ts +47 -0
  69. package/dist-esm/src/operationsInterfaces/forwardingRules.d.ts.map +1 -0
  70. package/dist-esm/src/operationsInterfaces/forwardingRules.js +9 -0
  71. package/dist-esm/src/operationsInterfaces/forwardingRules.js.map +1 -0
  72. package/dist-esm/src/operationsInterfaces/inboundEndpoints.d.ts +74 -0
  73. package/dist-esm/src/operationsInterfaces/inboundEndpoints.d.ts.map +1 -0
  74. package/dist-esm/src/operationsInterfaces/inboundEndpoints.js +9 -0
  75. package/dist-esm/src/operationsInterfaces/inboundEndpoints.js.map +1 -0
  76. package/dist-esm/src/operationsInterfaces/index.d.ts +7 -0
  77. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -0
  78. package/dist-esm/src/operationsInterfaces/index.js +14 -0
  79. package/dist-esm/src/operationsInterfaces/index.js.map +1 -0
  80. package/dist-esm/src/operationsInterfaces/outboundEndpoints.d.ts +74 -0
  81. package/dist-esm/src/operationsInterfaces/outboundEndpoints.d.ts.map +1 -0
  82. package/dist-esm/src/operationsInterfaces/outboundEndpoints.js +9 -0
  83. package/dist-esm/src/operationsInterfaces/outboundEndpoints.js.map +1 -0
  84. package/dist-esm/src/operationsInterfaces/virtualNetworkLinks.d.ts +76 -0
  85. package/dist-esm/src/operationsInterfaces/virtualNetworkLinks.d.ts.map +1 -0
  86. package/dist-esm/src/operationsInterfaces/virtualNetworkLinks.js +9 -0
  87. package/dist-esm/src/operationsInterfaces/virtualNetworkLinks.js.map +1 -0
  88. package/dist-esm/test/sampleTest.d.ts +2 -0
  89. package/dist-esm/test/sampleTest.d.ts.map +1 -0
  90. package/dist-esm/test/sampleTest.js +40 -0
  91. package/dist-esm/test/sampleTest.js.map +1 -0
  92. package/package.json +118 -0
  93. package/review/arm-dnsresolver.api.md +767 -0
  94. package/rollup.config.js +122 -0
  95. package/src/dnsResolverManagementClient.ts +99 -0
  96. package/src/index.ts +12 -0
  97. package/src/lroImpl.ts +34 -0
  98. package/src/models/index.ts +971 -0
  99. package/src/models/mappers.ts +903 -0
  100. package/src/models/parameters.ts +283 -0
  101. package/src/operations/dnsForwardingRulesets.ts +838 -0
  102. package/src/operations/dnsResolvers.ts +836 -0
  103. package/src/operations/forwardingRules.ts +406 -0
  104. package/src/operations/inboundEndpoints.ts +621 -0
  105. package/src/operations/index.ts +14 -0
  106. package/src/operations/outboundEndpoints.ts +621 -0
  107. package/src/operations/virtualNetworkLinks.ts +641 -0
  108. package/src/operationsInterfaces/dnsForwardingRulesets.ts +154 -0
  109. package/src/operationsInterfaces/dnsResolvers.ts +152 -0
  110. package/src/operationsInterfaces/forwardingRules.ts +93 -0
  111. package/src/operationsInterfaces/inboundEndpoints.ts +147 -0
  112. package/src/operationsInterfaces/index.ts +14 -0
  113. package/src/operationsInterfaces/outboundEndpoints.ts +147 -0
  114. package/src/operationsInterfaces/virtualNetworkLinks.ts +149 -0
  115. package/tsconfig.json +32 -0
  116. package/types/arm-dnsresolver.d.ts +1379 -0
  117. package/types/tsdoc-metadata.json +11 -0
@@ -0,0 +1,836 @@
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 { DnsResolvers } 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 { DnsResolverManagementClient } from "../dnsResolverManagementClient";
15
+ import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro";
16
+ import { LroImpl } from "../lroImpl";
17
+ import {
18
+ DnsResolver,
19
+ DnsResolversListByResourceGroupNextOptionalParams,
20
+ DnsResolversListByResourceGroupOptionalParams,
21
+ DnsResolversListNextOptionalParams,
22
+ DnsResolversListOptionalParams,
23
+ SubResource,
24
+ DnsResolversListByVirtualNetworkNextOptionalParams,
25
+ DnsResolversListByVirtualNetworkOptionalParams,
26
+ DnsResolversCreateOrUpdateOptionalParams,
27
+ DnsResolversCreateOrUpdateResponse,
28
+ DnsResolverPatch,
29
+ DnsResolversUpdateOptionalParams,
30
+ DnsResolversUpdateResponse,
31
+ DnsResolversDeleteOptionalParams,
32
+ DnsResolversGetOptionalParams,
33
+ DnsResolversGetResponse,
34
+ DnsResolversListByResourceGroupResponse,
35
+ DnsResolversListResponse,
36
+ DnsResolversListByVirtualNetworkResponse,
37
+ DnsResolversListByResourceGroupNextResponse,
38
+ DnsResolversListNextResponse,
39
+ DnsResolversListByVirtualNetworkNextResponse
40
+ } from "../models";
41
+
42
+ /// <reference lib="esnext.asynciterable" />
43
+ /** Class containing DnsResolvers operations. */
44
+ export class DnsResolversImpl implements DnsResolvers {
45
+ private readonly client: DnsResolverManagementClient;
46
+
47
+ /**
48
+ * Initialize a new instance of the class DnsResolvers class.
49
+ * @param client Reference to the service client
50
+ */
51
+ constructor(client: DnsResolverManagementClient) {
52
+ this.client = client;
53
+ }
54
+
55
+ /**
56
+ * Lists DNS resolvers within a resource group.
57
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
58
+ * @param options The options parameters.
59
+ */
60
+ public listByResourceGroup(
61
+ resourceGroupName: string,
62
+ options?: DnsResolversListByResourceGroupOptionalParams
63
+ ): PagedAsyncIterableIterator<DnsResolver> {
64
+ const iter = this.listByResourceGroupPagingAll(resourceGroupName, options);
65
+ return {
66
+ next() {
67
+ return iter.next();
68
+ },
69
+ [Symbol.asyncIterator]() {
70
+ return this;
71
+ },
72
+ byPage: () => {
73
+ return this.listByResourceGroupPagingPage(resourceGroupName, options);
74
+ }
75
+ };
76
+ }
77
+
78
+ private async *listByResourceGroupPagingPage(
79
+ resourceGroupName: string,
80
+ options?: DnsResolversListByResourceGroupOptionalParams
81
+ ): AsyncIterableIterator<DnsResolver[]> {
82
+ let result = await this._listByResourceGroup(resourceGroupName, options);
83
+ yield result.value || [];
84
+ let continuationToken = result.nextLink;
85
+ while (continuationToken) {
86
+ result = await this._listByResourceGroupNext(
87
+ resourceGroupName,
88
+ continuationToken,
89
+ options
90
+ );
91
+ continuationToken = result.nextLink;
92
+ yield result.value || [];
93
+ }
94
+ }
95
+
96
+ private async *listByResourceGroupPagingAll(
97
+ resourceGroupName: string,
98
+ options?: DnsResolversListByResourceGroupOptionalParams
99
+ ): AsyncIterableIterator<DnsResolver> {
100
+ for await (const page of this.listByResourceGroupPagingPage(
101
+ resourceGroupName,
102
+ options
103
+ )) {
104
+ yield* page;
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Lists DNS resolvers in all resource groups of a subscription.
110
+ * @param options The options parameters.
111
+ */
112
+ public list(
113
+ options?: DnsResolversListOptionalParams
114
+ ): PagedAsyncIterableIterator<DnsResolver> {
115
+ const iter = this.listPagingAll(options);
116
+ return {
117
+ next() {
118
+ return iter.next();
119
+ },
120
+ [Symbol.asyncIterator]() {
121
+ return this;
122
+ },
123
+ byPage: () => {
124
+ return this.listPagingPage(options);
125
+ }
126
+ };
127
+ }
128
+
129
+ private async *listPagingPage(
130
+ options?: DnsResolversListOptionalParams
131
+ ): AsyncIterableIterator<DnsResolver[]> {
132
+ let result = await this._list(options);
133
+ yield result.value || [];
134
+ let continuationToken = result.nextLink;
135
+ while (continuationToken) {
136
+ result = await this._listNext(continuationToken, options);
137
+ continuationToken = result.nextLink;
138
+ yield result.value || [];
139
+ }
140
+ }
141
+
142
+ private async *listPagingAll(
143
+ options?: DnsResolversListOptionalParams
144
+ ): AsyncIterableIterator<DnsResolver> {
145
+ for await (const page of this.listPagingPage(options)) {
146
+ yield* page;
147
+ }
148
+ }
149
+
150
+ /**
151
+ * Lists DNS resolver resource IDs linked to a virtual network.
152
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
153
+ * @param virtualNetworkName The name of the virtual network.
154
+ * @param options The options parameters.
155
+ */
156
+ public listByVirtualNetwork(
157
+ resourceGroupName: string,
158
+ virtualNetworkName: string,
159
+ options?: DnsResolversListByVirtualNetworkOptionalParams
160
+ ): PagedAsyncIterableIterator<SubResource> {
161
+ const iter = this.listByVirtualNetworkPagingAll(
162
+ resourceGroupName,
163
+ virtualNetworkName,
164
+ options
165
+ );
166
+ return {
167
+ next() {
168
+ return iter.next();
169
+ },
170
+ [Symbol.asyncIterator]() {
171
+ return this;
172
+ },
173
+ byPage: () => {
174
+ return this.listByVirtualNetworkPagingPage(
175
+ resourceGroupName,
176
+ virtualNetworkName,
177
+ options
178
+ );
179
+ }
180
+ };
181
+ }
182
+
183
+ private async *listByVirtualNetworkPagingPage(
184
+ resourceGroupName: string,
185
+ virtualNetworkName: string,
186
+ options?: DnsResolversListByVirtualNetworkOptionalParams
187
+ ): AsyncIterableIterator<SubResource[]> {
188
+ let result = await this._listByVirtualNetwork(
189
+ resourceGroupName,
190
+ virtualNetworkName,
191
+ options
192
+ );
193
+ yield result.value || [];
194
+ let continuationToken = result.nextLink;
195
+ while (continuationToken) {
196
+ result = await this._listByVirtualNetworkNext(
197
+ resourceGroupName,
198
+ virtualNetworkName,
199
+ continuationToken,
200
+ options
201
+ );
202
+ continuationToken = result.nextLink;
203
+ yield result.value || [];
204
+ }
205
+ }
206
+
207
+ private async *listByVirtualNetworkPagingAll(
208
+ resourceGroupName: string,
209
+ virtualNetworkName: string,
210
+ options?: DnsResolversListByVirtualNetworkOptionalParams
211
+ ): AsyncIterableIterator<SubResource> {
212
+ for await (const page of this.listByVirtualNetworkPagingPage(
213
+ resourceGroupName,
214
+ virtualNetworkName,
215
+ options
216
+ )) {
217
+ yield* page;
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Creates or updates a DNS resolver.
223
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
224
+ * @param dnsResolverName The name of the DNS resolver.
225
+ * @param parameters Parameters supplied to the CreateOrUpdate operation.
226
+ * @param options The options parameters.
227
+ */
228
+ async beginCreateOrUpdate(
229
+ resourceGroupName: string,
230
+ dnsResolverName: string,
231
+ parameters: DnsResolver,
232
+ options?: DnsResolversCreateOrUpdateOptionalParams
233
+ ): Promise<
234
+ PollerLike<
235
+ PollOperationState<DnsResolversCreateOrUpdateResponse>,
236
+ DnsResolversCreateOrUpdateResponse
237
+ >
238
+ > {
239
+ const directSendOperation = async (
240
+ args: coreClient.OperationArguments,
241
+ spec: coreClient.OperationSpec
242
+ ): Promise<DnsResolversCreateOrUpdateResponse> => {
243
+ return this.client.sendOperationRequest(args, spec);
244
+ };
245
+ const sendOperation = async (
246
+ args: coreClient.OperationArguments,
247
+ spec: coreClient.OperationSpec
248
+ ) => {
249
+ let currentRawResponse:
250
+ | coreClient.FullOperationResponse
251
+ | undefined = undefined;
252
+ const providedCallback = args.options?.onResponse;
253
+ const callback: coreClient.RawResponseCallback = (
254
+ rawResponse: coreClient.FullOperationResponse,
255
+ flatResponse: unknown
256
+ ) => {
257
+ currentRawResponse = rawResponse;
258
+ providedCallback?.(rawResponse, flatResponse);
259
+ };
260
+ const updatedArgs = {
261
+ ...args,
262
+ options: {
263
+ ...args.options,
264
+ onResponse: callback
265
+ }
266
+ };
267
+ const flatResponse = await directSendOperation(updatedArgs, spec);
268
+ return {
269
+ flatResponse,
270
+ rawResponse: {
271
+ statusCode: currentRawResponse!.status,
272
+ body: currentRawResponse!.parsedBody,
273
+ headers: currentRawResponse!.headers.toJSON()
274
+ }
275
+ };
276
+ };
277
+
278
+ const lro = new LroImpl(
279
+ sendOperation,
280
+ { resourceGroupName, dnsResolverName, parameters, options },
281
+ createOrUpdateOperationSpec
282
+ );
283
+ return new LroEngine(lro, {
284
+ resumeFrom: options?.resumeFrom,
285
+ intervalInMs: options?.updateIntervalInMs
286
+ });
287
+ }
288
+
289
+ /**
290
+ * Creates or updates a DNS resolver.
291
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
292
+ * @param dnsResolverName The name of the DNS resolver.
293
+ * @param parameters Parameters supplied to the CreateOrUpdate operation.
294
+ * @param options The options parameters.
295
+ */
296
+ async beginCreateOrUpdateAndWait(
297
+ resourceGroupName: string,
298
+ dnsResolverName: string,
299
+ parameters: DnsResolver,
300
+ options?: DnsResolversCreateOrUpdateOptionalParams
301
+ ): Promise<DnsResolversCreateOrUpdateResponse> {
302
+ const poller = await this.beginCreateOrUpdate(
303
+ resourceGroupName,
304
+ dnsResolverName,
305
+ parameters,
306
+ options
307
+ );
308
+ return poller.pollUntilDone();
309
+ }
310
+
311
+ /**
312
+ * Updates a DNS resolver.
313
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
314
+ * @param dnsResolverName The name of the DNS resolver.
315
+ * @param parameters Parameters supplied to the Update operation.
316
+ * @param options The options parameters.
317
+ */
318
+ async beginUpdate(
319
+ resourceGroupName: string,
320
+ dnsResolverName: string,
321
+ parameters: DnsResolverPatch,
322
+ options?: DnsResolversUpdateOptionalParams
323
+ ): Promise<
324
+ PollerLike<
325
+ PollOperationState<DnsResolversUpdateResponse>,
326
+ DnsResolversUpdateResponse
327
+ >
328
+ > {
329
+ const directSendOperation = async (
330
+ args: coreClient.OperationArguments,
331
+ spec: coreClient.OperationSpec
332
+ ): Promise<DnsResolversUpdateResponse> => {
333
+ return this.client.sendOperationRequest(args, spec);
334
+ };
335
+ const sendOperation = async (
336
+ args: coreClient.OperationArguments,
337
+ spec: coreClient.OperationSpec
338
+ ) => {
339
+ let currentRawResponse:
340
+ | coreClient.FullOperationResponse
341
+ | undefined = undefined;
342
+ const providedCallback = args.options?.onResponse;
343
+ const callback: coreClient.RawResponseCallback = (
344
+ rawResponse: coreClient.FullOperationResponse,
345
+ flatResponse: unknown
346
+ ) => {
347
+ currentRawResponse = rawResponse;
348
+ providedCallback?.(rawResponse, flatResponse);
349
+ };
350
+ const updatedArgs = {
351
+ ...args,
352
+ options: {
353
+ ...args.options,
354
+ onResponse: callback
355
+ }
356
+ };
357
+ const flatResponse = await directSendOperation(updatedArgs, spec);
358
+ return {
359
+ flatResponse,
360
+ rawResponse: {
361
+ statusCode: currentRawResponse!.status,
362
+ body: currentRawResponse!.parsedBody,
363
+ headers: currentRawResponse!.headers.toJSON()
364
+ }
365
+ };
366
+ };
367
+
368
+ const lro = new LroImpl(
369
+ sendOperation,
370
+ { resourceGroupName, dnsResolverName, parameters, options },
371
+ updateOperationSpec
372
+ );
373
+ return new LroEngine(lro, {
374
+ resumeFrom: options?.resumeFrom,
375
+ intervalInMs: options?.updateIntervalInMs
376
+ });
377
+ }
378
+
379
+ /**
380
+ * Updates a DNS resolver.
381
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
382
+ * @param dnsResolverName The name of the DNS resolver.
383
+ * @param parameters Parameters supplied to the Update operation.
384
+ * @param options The options parameters.
385
+ */
386
+ async beginUpdateAndWait(
387
+ resourceGroupName: string,
388
+ dnsResolverName: string,
389
+ parameters: DnsResolverPatch,
390
+ options?: DnsResolversUpdateOptionalParams
391
+ ): Promise<DnsResolversUpdateResponse> {
392
+ const poller = await this.beginUpdate(
393
+ resourceGroupName,
394
+ dnsResolverName,
395
+ parameters,
396
+ options
397
+ );
398
+ return poller.pollUntilDone();
399
+ }
400
+
401
+ /**
402
+ * Deletes a DNS resolver. WARNING: This operation cannot be undone.
403
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
404
+ * @param dnsResolverName The name of the DNS resolver.
405
+ * @param options The options parameters.
406
+ */
407
+ async beginDelete(
408
+ resourceGroupName: string,
409
+ dnsResolverName: string,
410
+ options?: DnsResolversDeleteOptionalParams
411
+ ): Promise<PollerLike<PollOperationState<void>, void>> {
412
+ const directSendOperation = async (
413
+ args: coreClient.OperationArguments,
414
+ spec: coreClient.OperationSpec
415
+ ): Promise<void> => {
416
+ return this.client.sendOperationRequest(args, spec);
417
+ };
418
+ const sendOperation = async (
419
+ args: coreClient.OperationArguments,
420
+ spec: coreClient.OperationSpec
421
+ ) => {
422
+ let currentRawResponse:
423
+ | coreClient.FullOperationResponse
424
+ | undefined = undefined;
425
+ const providedCallback = args.options?.onResponse;
426
+ const callback: coreClient.RawResponseCallback = (
427
+ rawResponse: coreClient.FullOperationResponse,
428
+ flatResponse: unknown
429
+ ) => {
430
+ currentRawResponse = rawResponse;
431
+ providedCallback?.(rawResponse, flatResponse);
432
+ };
433
+ const updatedArgs = {
434
+ ...args,
435
+ options: {
436
+ ...args.options,
437
+ onResponse: callback
438
+ }
439
+ };
440
+ const flatResponse = await directSendOperation(updatedArgs, spec);
441
+ return {
442
+ flatResponse,
443
+ rawResponse: {
444
+ statusCode: currentRawResponse!.status,
445
+ body: currentRawResponse!.parsedBody,
446
+ headers: currentRawResponse!.headers.toJSON()
447
+ }
448
+ };
449
+ };
450
+
451
+ const lro = new LroImpl(
452
+ sendOperation,
453
+ { resourceGroupName, dnsResolverName, options },
454
+ deleteOperationSpec
455
+ );
456
+ return new LroEngine(lro, {
457
+ resumeFrom: options?.resumeFrom,
458
+ intervalInMs: options?.updateIntervalInMs
459
+ });
460
+ }
461
+
462
+ /**
463
+ * Deletes a DNS resolver. WARNING: This operation cannot be undone.
464
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
465
+ * @param dnsResolverName The name of the DNS resolver.
466
+ * @param options The options parameters.
467
+ */
468
+ async beginDeleteAndWait(
469
+ resourceGroupName: string,
470
+ dnsResolverName: string,
471
+ options?: DnsResolversDeleteOptionalParams
472
+ ): Promise<void> {
473
+ const poller = await this.beginDelete(
474
+ resourceGroupName,
475
+ dnsResolverName,
476
+ options
477
+ );
478
+ return poller.pollUntilDone();
479
+ }
480
+
481
+ /**
482
+ * Gets properties of a DNS resolver.
483
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
484
+ * @param dnsResolverName The name of the DNS resolver.
485
+ * @param options The options parameters.
486
+ */
487
+ get(
488
+ resourceGroupName: string,
489
+ dnsResolverName: string,
490
+ options?: DnsResolversGetOptionalParams
491
+ ): Promise<DnsResolversGetResponse> {
492
+ return this.client.sendOperationRequest(
493
+ { resourceGroupName, dnsResolverName, options },
494
+ getOperationSpec
495
+ );
496
+ }
497
+
498
+ /**
499
+ * Lists DNS resolvers within a resource group.
500
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
501
+ * @param options The options parameters.
502
+ */
503
+ private _listByResourceGroup(
504
+ resourceGroupName: string,
505
+ options?: DnsResolversListByResourceGroupOptionalParams
506
+ ): Promise<DnsResolversListByResourceGroupResponse> {
507
+ return this.client.sendOperationRequest(
508
+ { resourceGroupName, options },
509
+ listByResourceGroupOperationSpec
510
+ );
511
+ }
512
+
513
+ /**
514
+ * Lists DNS resolvers in all resource groups of a subscription.
515
+ * @param options The options parameters.
516
+ */
517
+ private _list(
518
+ options?: DnsResolversListOptionalParams
519
+ ): Promise<DnsResolversListResponse> {
520
+ return this.client.sendOperationRequest({ options }, listOperationSpec);
521
+ }
522
+
523
+ /**
524
+ * Lists DNS resolver resource IDs linked to a virtual network.
525
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
526
+ * @param virtualNetworkName The name of the virtual network.
527
+ * @param options The options parameters.
528
+ */
529
+ private _listByVirtualNetwork(
530
+ resourceGroupName: string,
531
+ virtualNetworkName: string,
532
+ options?: DnsResolversListByVirtualNetworkOptionalParams
533
+ ): Promise<DnsResolversListByVirtualNetworkResponse> {
534
+ return this.client.sendOperationRequest(
535
+ { resourceGroupName, virtualNetworkName, options },
536
+ listByVirtualNetworkOperationSpec
537
+ );
538
+ }
539
+
540
+ /**
541
+ * ListByResourceGroupNext
542
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
543
+ * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
544
+ * @param options The options parameters.
545
+ */
546
+ private _listByResourceGroupNext(
547
+ resourceGroupName: string,
548
+ nextLink: string,
549
+ options?: DnsResolversListByResourceGroupNextOptionalParams
550
+ ): Promise<DnsResolversListByResourceGroupNextResponse> {
551
+ return this.client.sendOperationRequest(
552
+ { resourceGroupName, nextLink, options },
553
+ listByResourceGroupNextOperationSpec
554
+ );
555
+ }
556
+
557
+ /**
558
+ * ListNext
559
+ * @param nextLink The nextLink from the previous successful call to the List method.
560
+ * @param options The options parameters.
561
+ */
562
+ private _listNext(
563
+ nextLink: string,
564
+ options?: DnsResolversListNextOptionalParams
565
+ ): Promise<DnsResolversListNextResponse> {
566
+ return this.client.sendOperationRequest(
567
+ { nextLink, options },
568
+ listNextOperationSpec
569
+ );
570
+ }
571
+
572
+ /**
573
+ * ListByVirtualNetworkNext
574
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
575
+ * @param virtualNetworkName The name of the virtual network.
576
+ * @param nextLink The nextLink from the previous successful call to the ListByVirtualNetwork method.
577
+ * @param options The options parameters.
578
+ */
579
+ private _listByVirtualNetworkNext(
580
+ resourceGroupName: string,
581
+ virtualNetworkName: string,
582
+ nextLink: string,
583
+ options?: DnsResolversListByVirtualNetworkNextOptionalParams
584
+ ): Promise<DnsResolversListByVirtualNetworkNextResponse> {
585
+ return this.client.sendOperationRequest(
586
+ { resourceGroupName, virtualNetworkName, nextLink, options },
587
+ listByVirtualNetworkNextOperationSpec
588
+ );
589
+ }
590
+ }
591
+ // Operation Specifications
592
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
593
+
594
+ const createOrUpdateOperationSpec: coreClient.OperationSpec = {
595
+ path:
596
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsResolvers/{dnsResolverName}",
597
+ httpMethod: "PUT",
598
+ responses: {
599
+ 200: {
600
+ bodyMapper: Mappers.DnsResolver
601
+ },
602
+ 201: {
603
+ bodyMapper: Mappers.DnsResolver
604
+ },
605
+ 202: {
606
+ bodyMapper: Mappers.DnsResolver
607
+ },
608
+ 204: {
609
+ bodyMapper: Mappers.DnsResolver
610
+ },
611
+ default: {
612
+ bodyMapper: Mappers.CloudError
613
+ }
614
+ },
615
+ requestBody: Parameters.parameters,
616
+ queryParameters: [Parameters.apiVersion],
617
+ urlParameters: [
618
+ Parameters.$host,
619
+ Parameters.subscriptionId,
620
+ Parameters.resourceGroupName,
621
+ Parameters.dnsResolverName
622
+ ],
623
+ headerParameters: [
624
+ Parameters.contentType,
625
+ Parameters.accept,
626
+ Parameters.ifMatch,
627
+ Parameters.ifNoneMatch
628
+ ],
629
+ mediaType: "json",
630
+ serializer
631
+ };
632
+ const updateOperationSpec: coreClient.OperationSpec = {
633
+ path:
634
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsResolvers/{dnsResolverName}",
635
+ httpMethod: "PATCH",
636
+ responses: {
637
+ 200: {
638
+ bodyMapper: Mappers.DnsResolver
639
+ },
640
+ 201: {
641
+ bodyMapper: Mappers.DnsResolver
642
+ },
643
+ 202: {
644
+ bodyMapper: Mappers.DnsResolver
645
+ },
646
+ 204: {
647
+ bodyMapper: Mappers.DnsResolver
648
+ },
649
+ default: {
650
+ bodyMapper: Mappers.CloudError
651
+ }
652
+ },
653
+ requestBody: Parameters.parameters1,
654
+ queryParameters: [Parameters.apiVersion],
655
+ urlParameters: [
656
+ Parameters.$host,
657
+ Parameters.subscriptionId,
658
+ Parameters.resourceGroupName,
659
+ Parameters.dnsResolverName
660
+ ],
661
+ headerParameters: [
662
+ Parameters.contentType,
663
+ Parameters.accept,
664
+ Parameters.ifMatch
665
+ ],
666
+ mediaType: "json",
667
+ serializer
668
+ };
669
+ const deleteOperationSpec: coreClient.OperationSpec = {
670
+ path:
671
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsResolvers/{dnsResolverName}",
672
+ httpMethod: "DELETE",
673
+ responses: {
674
+ 200: {},
675
+ 201: {},
676
+ 202: {},
677
+ 204: {},
678
+ default: {
679
+ bodyMapper: Mappers.CloudError
680
+ }
681
+ },
682
+ queryParameters: [Parameters.apiVersion],
683
+ urlParameters: [
684
+ Parameters.$host,
685
+ Parameters.subscriptionId,
686
+ Parameters.resourceGroupName,
687
+ Parameters.dnsResolverName
688
+ ],
689
+ headerParameters: [Parameters.accept, Parameters.ifMatch],
690
+ serializer
691
+ };
692
+ const getOperationSpec: coreClient.OperationSpec = {
693
+ path:
694
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsResolvers/{dnsResolverName}",
695
+ httpMethod: "GET",
696
+ responses: {
697
+ 200: {
698
+ bodyMapper: Mappers.DnsResolver
699
+ },
700
+ default: {
701
+ bodyMapper: Mappers.CloudError
702
+ }
703
+ },
704
+ queryParameters: [Parameters.apiVersion],
705
+ urlParameters: [
706
+ Parameters.$host,
707
+ Parameters.subscriptionId,
708
+ Parameters.resourceGroupName,
709
+ Parameters.dnsResolverName
710
+ ],
711
+ headerParameters: [Parameters.accept],
712
+ serializer
713
+ };
714
+ const listByResourceGroupOperationSpec: coreClient.OperationSpec = {
715
+ path:
716
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsResolvers",
717
+ httpMethod: "GET",
718
+ responses: {
719
+ 200: {
720
+ bodyMapper: Mappers.DnsResolverListResult
721
+ },
722
+ default: {
723
+ bodyMapper: Mappers.CloudError
724
+ }
725
+ },
726
+ queryParameters: [Parameters.apiVersion, Parameters.top],
727
+ urlParameters: [
728
+ Parameters.$host,
729
+ Parameters.subscriptionId,
730
+ Parameters.resourceGroupName
731
+ ],
732
+ headerParameters: [Parameters.accept],
733
+ serializer
734
+ };
735
+ const listOperationSpec: coreClient.OperationSpec = {
736
+ path:
737
+ "/subscriptions/{subscriptionId}/providers/Microsoft.Network/dnsResolvers",
738
+ httpMethod: "GET",
739
+ responses: {
740
+ 200: {
741
+ bodyMapper: Mappers.DnsResolverListResult
742
+ },
743
+ default: {
744
+ bodyMapper: Mappers.CloudError
745
+ }
746
+ },
747
+ queryParameters: [Parameters.apiVersion, Parameters.top],
748
+ urlParameters: [Parameters.$host, Parameters.subscriptionId],
749
+ headerParameters: [Parameters.accept],
750
+ serializer
751
+ };
752
+ const listByVirtualNetworkOperationSpec: coreClient.OperationSpec = {
753
+ path:
754
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/listDnsResolvers",
755
+ httpMethod: "POST",
756
+ responses: {
757
+ 200: {
758
+ bodyMapper: Mappers.SubResourceListResult
759
+ },
760
+ default: {
761
+ bodyMapper: Mappers.CloudError
762
+ }
763
+ },
764
+ queryParameters: [Parameters.apiVersion, Parameters.top],
765
+ urlParameters: [
766
+ Parameters.$host,
767
+ Parameters.subscriptionId,
768
+ Parameters.resourceGroupName,
769
+ Parameters.virtualNetworkName
770
+ ],
771
+ headerParameters: [Parameters.accept],
772
+ serializer
773
+ };
774
+ const listByResourceGroupNextOperationSpec: coreClient.OperationSpec = {
775
+ path: "{nextLink}",
776
+ httpMethod: "GET",
777
+ responses: {
778
+ 200: {
779
+ bodyMapper: Mappers.DnsResolverListResult
780
+ },
781
+ default: {
782
+ bodyMapper: Mappers.CloudError
783
+ }
784
+ },
785
+ queryParameters: [Parameters.apiVersion, Parameters.top],
786
+ urlParameters: [
787
+ Parameters.$host,
788
+ Parameters.subscriptionId,
789
+ Parameters.resourceGroupName,
790
+ Parameters.nextLink
791
+ ],
792
+ headerParameters: [Parameters.accept],
793
+ serializer
794
+ };
795
+ const listNextOperationSpec: coreClient.OperationSpec = {
796
+ path: "{nextLink}",
797
+ httpMethod: "GET",
798
+ responses: {
799
+ 200: {
800
+ bodyMapper: Mappers.DnsResolverListResult
801
+ },
802
+ default: {
803
+ bodyMapper: Mappers.CloudError
804
+ }
805
+ },
806
+ queryParameters: [Parameters.apiVersion, Parameters.top],
807
+ urlParameters: [
808
+ Parameters.$host,
809
+ Parameters.subscriptionId,
810
+ Parameters.nextLink
811
+ ],
812
+ headerParameters: [Parameters.accept],
813
+ serializer
814
+ };
815
+ const listByVirtualNetworkNextOperationSpec: coreClient.OperationSpec = {
816
+ path: "{nextLink}",
817
+ httpMethod: "GET",
818
+ responses: {
819
+ 200: {
820
+ bodyMapper: Mappers.SubResourceListResult
821
+ },
822
+ default: {
823
+ bodyMapper: Mappers.CloudError
824
+ }
825
+ },
826
+ queryParameters: [Parameters.apiVersion, Parameters.top],
827
+ urlParameters: [
828
+ Parameters.$host,
829
+ Parameters.subscriptionId,
830
+ Parameters.resourceGroupName,
831
+ Parameters.virtualNetworkName,
832
+ Parameters.nextLink
833
+ ],
834
+ headerParameters: [Parameters.accept],
835
+ serializer
836
+ };