@azure/arm-servicenetworking 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 (170) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +109 -0
  4. package/dist/index.js +2566 -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/associationsInterfaceCreateOrUpdateSample.d.ts +2 -0
  9. package/dist-esm/samples-dev/associationsInterfaceCreateOrUpdateSample.d.ts.map +1 -0
  10. package/dist-esm/samples-dev/associationsInterfaceCreateOrUpdateSample.js +44 -0
  11. package/dist-esm/samples-dev/associationsInterfaceCreateOrUpdateSample.js.map +1 -0
  12. package/dist-esm/samples-dev/associationsInterfaceDeleteSample.d.ts +2 -0
  13. package/dist-esm/samples-dev/associationsInterfaceDeleteSample.d.ts.map +1 -0
  14. package/dist-esm/samples-dev/associationsInterfaceDeleteSample.js +39 -0
  15. package/dist-esm/samples-dev/associationsInterfaceDeleteSample.js.map +1 -0
  16. package/dist-esm/samples-dev/associationsInterfaceGetSample.d.ts +2 -0
  17. package/dist-esm/samples-dev/associationsInterfaceGetSample.d.ts.map +1 -0
  18. package/dist-esm/samples-dev/associationsInterfaceGetSample.js +39 -0
  19. package/dist-esm/samples-dev/associationsInterfaceGetSample.js.map +1 -0
  20. package/dist-esm/samples-dev/associationsInterfaceListByTrafficControllerSample.d.ts +2 -0
  21. package/dist-esm/samples-dev/associationsInterfaceListByTrafficControllerSample.d.ts.map +1 -0
  22. package/dist-esm/samples-dev/associationsInterfaceListByTrafficControllerSample.js +52 -0
  23. package/dist-esm/samples-dev/associationsInterfaceListByTrafficControllerSample.js.map +1 -0
  24. package/dist-esm/samples-dev/associationsInterfaceUpdateSample.d.ts +2 -0
  25. package/dist-esm/samples-dev/associationsInterfaceUpdateSample.d.ts.map +1 -0
  26. package/dist-esm/samples-dev/associationsInterfaceUpdateSample.js +42 -0
  27. package/dist-esm/samples-dev/associationsInterfaceUpdateSample.js.map +1 -0
  28. package/dist-esm/samples-dev/frontendsInterfaceCreateOrUpdateSample.d.ts +2 -0
  29. package/dist-esm/samples-dev/frontendsInterfaceCreateOrUpdateSample.d.ts.map +1 -0
  30. package/dist-esm/samples-dev/frontendsInterfaceCreateOrUpdateSample.js +45 -0
  31. package/dist-esm/samples-dev/frontendsInterfaceCreateOrUpdateSample.js.map +1 -0
  32. package/dist-esm/samples-dev/frontendsInterfaceDeleteSample.d.ts +2 -0
  33. package/dist-esm/samples-dev/frontendsInterfaceDeleteSample.d.ts.map +1 -0
  34. package/dist-esm/samples-dev/frontendsInterfaceDeleteSample.js +39 -0
  35. package/dist-esm/samples-dev/frontendsInterfaceDeleteSample.js.map +1 -0
  36. package/dist-esm/samples-dev/frontendsInterfaceGetSample.d.ts +2 -0
  37. package/dist-esm/samples-dev/frontendsInterfaceGetSample.d.ts.map +1 -0
  38. package/dist-esm/samples-dev/frontendsInterfaceGetSample.js +39 -0
  39. package/dist-esm/samples-dev/frontendsInterfaceGetSample.js.map +1 -0
  40. package/dist-esm/samples-dev/frontendsInterfaceListByTrafficControllerSample.d.ts +2 -0
  41. package/dist-esm/samples-dev/frontendsInterfaceListByTrafficControllerSample.d.ts.map +1 -0
  42. package/dist-esm/samples-dev/frontendsInterfaceListByTrafficControllerSample.js +52 -0
  43. package/dist-esm/samples-dev/frontendsInterfaceListByTrafficControllerSample.js.map +1 -0
  44. package/dist-esm/samples-dev/frontendsInterfaceUpdateSample.d.ts +2 -0
  45. package/dist-esm/samples-dev/frontendsInterfaceUpdateSample.d.ts.map +1 -0
  46. package/dist-esm/samples-dev/frontendsInterfaceUpdateSample.js +46 -0
  47. package/dist-esm/samples-dev/frontendsInterfaceUpdateSample.js.map +1 -0
  48. package/dist-esm/samples-dev/operationsListSample.d.ts +2 -0
  49. package/dist-esm/samples-dev/operationsListSample.d.ts.map +1 -0
  50. package/dist-esm/samples-dev/operationsListSample.js +51 -0
  51. package/dist-esm/samples-dev/operationsListSample.js.map +1 -0
  52. package/dist-esm/samples-dev/trafficControllerInterfaceCreateOrUpdateSample.d.ts +2 -0
  53. package/dist-esm/samples-dev/trafficControllerInterfaceCreateOrUpdateSample.d.ts.map +1 -0
  54. package/dist-esm/samples-dev/trafficControllerInterfaceCreateOrUpdateSample.js +42 -0
  55. package/dist-esm/samples-dev/trafficControllerInterfaceCreateOrUpdateSample.js.map +1 -0
  56. package/dist-esm/samples-dev/trafficControllerInterfaceDeleteSample.d.ts +2 -0
  57. package/dist-esm/samples-dev/trafficControllerInterfaceDeleteSample.d.ts.map +1 -0
  58. package/dist-esm/samples-dev/trafficControllerInterfaceDeleteSample.js +38 -0
  59. package/dist-esm/samples-dev/trafficControllerInterfaceDeleteSample.js.map +1 -0
  60. package/dist-esm/samples-dev/trafficControllerInterfaceGetSample.d.ts +2 -0
  61. package/dist-esm/samples-dev/trafficControllerInterfaceGetSample.d.ts.map +1 -0
  62. package/dist-esm/samples-dev/trafficControllerInterfaceGetSample.js +38 -0
  63. package/dist-esm/samples-dev/trafficControllerInterfaceGetSample.js.map +1 -0
  64. package/dist-esm/samples-dev/trafficControllerInterfaceListByResourceGroupSample.d.ts +2 -0
  65. package/dist-esm/samples-dev/trafficControllerInterfaceListByResourceGroupSample.d.ts.map +1 -0
  66. package/dist-esm/samples-dev/trafficControllerInterfaceListByResourceGroupSample.js +51 -0
  67. package/dist-esm/samples-dev/trafficControllerInterfaceListByResourceGroupSample.js.map +1 -0
  68. package/dist-esm/samples-dev/trafficControllerInterfaceListBySubscriptionSample.d.ts +2 -0
  69. package/dist-esm/samples-dev/trafficControllerInterfaceListBySubscriptionSample.d.ts.map +1 -0
  70. package/dist-esm/samples-dev/trafficControllerInterfaceListBySubscriptionSample.js +50 -0
  71. package/dist-esm/samples-dev/trafficControllerInterfaceListBySubscriptionSample.js.map +1 -0
  72. package/dist-esm/samples-dev/trafficControllerInterfaceUpdateSample.d.ts +2 -0
  73. package/dist-esm/samples-dev/trafficControllerInterfaceUpdateSample.d.ts.map +1 -0
  74. package/dist-esm/samples-dev/trafficControllerInterfaceUpdateSample.js +43 -0
  75. package/dist-esm/samples-dev/trafficControllerInterfaceUpdateSample.js.map +1 -0
  76. package/dist-esm/src/index.d.ts +6 -0
  77. package/dist-esm/src/index.d.ts.map +1 -0
  78. package/dist-esm/src/index.js +13 -0
  79. package/dist-esm/src/index.js.map +1 -0
  80. package/dist-esm/src/lroImpl.d.ts +16 -0
  81. package/dist-esm/src/lroImpl.d.ts.map +1 -0
  82. package/dist-esm/src/lroImpl.js +29 -0
  83. package/dist-esm/src/lroImpl.js.map +1 -0
  84. package/dist-esm/src/models/index.d.ts +541 -0
  85. package/dist-esm/src/models/index.d.ts.map +1 -0
  86. package/dist-esm/src/models/index.js +54 -0
  87. package/dist-esm/src/models/index.js.map +1 -0
  88. package/dist-esm/src/models/mappers.d.ts +31 -0
  89. package/dist-esm/src/models/mappers.d.ts.map +1 -0
  90. package/dist-esm/src/models/mappers.js +760 -0
  91. package/dist-esm/src/models/mappers.js.map +1 -0
  92. package/dist-esm/src/models/parameters.d.ts +18 -0
  93. package/dist-esm/src/models/parameters.d.ts.map +1 -0
  94. package/dist-esm/src/models/parameters.js +154 -0
  95. package/dist-esm/src/models/parameters.js.map +1 -0
  96. package/dist-esm/src/operations/associationsInterface.d.ts +91 -0
  97. package/dist-esm/src/operations/associationsInterface.d.ts.map +1 -0
  98. package/dist-esm/src/operations/associationsInterface.js +396 -0
  99. package/dist-esm/src/operations/associationsInterface.js.map +1 -0
  100. package/dist-esm/src/operations/frontendsInterface.d.ts +91 -0
  101. package/dist-esm/src/operations/frontendsInterface.d.ts.map +1 -0
  102. package/dist-esm/src/operations/frontendsInterface.js +396 -0
  103. package/dist-esm/src/operations/frontendsInterface.js.map +1 -0
  104. package/dist-esm/src/operations/index.d.ts +5 -0
  105. package/dist-esm/src/operations/index.d.ts.map +1 -0
  106. package/dist-esm/src/operations/index.js +12 -0
  107. package/dist-esm/src/operations/index.js.map +1 -0
  108. package/dist-esm/src/operations/operations.d.ts +32 -0
  109. package/dist-esm/src/operations/operations.d.ts.map +1 -0
  110. package/dist-esm/src/operations/operations.js +131 -0
  111. package/dist-esm/src/operations/operations.js.map +1 -0
  112. package/dist-esm/src/operations/trafficControllerInterface.d.ts +99 -0
  113. package/dist-esm/src/operations/trafficControllerInterface.d.ts.map +1 -0
  114. package/dist-esm/src/operations/trafficControllerInterface.js +477 -0
  115. package/dist-esm/src/operations/trafficControllerInterface.js.map +1 -0
  116. package/dist-esm/src/operationsInterfaces/associationsInterface.d.ts +65 -0
  117. package/dist-esm/src/operationsInterfaces/associationsInterface.d.ts.map +1 -0
  118. package/dist-esm/src/operationsInterfaces/associationsInterface.js +9 -0
  119. package/dist-esm/src/operationsInterfaces/associationsInterface.js.map +1 -0
  120. package/dist-esm/src/operationsInterfaces/frontendsInterface.d.ts +65 -0
  121. package/dist-esm/src/operationsInterfaces/frontendsInterface.d.ts.map +1 -0
  122. package/dist-esm/src/operationsInterfaces/frontendsInterface.js +9 -0
  123. package/dist-esm/src/operationsInterfaces/frontendsInterface.js.map +1 -0
  124. package/dist-esm/src/operationsInterfaces/index.d.ts +5 -0
  125. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -0
  126. package/dist-esm/src/operationsInterfaces/index.js +12 -0
  127. package/dist-esm/src/operationsInterfaces/index.js.map +1 -0
  128. package/dist-esm/src/operationsInterfaces/operations.d.ts +11 -0
  129. package/dist-esm/src/operationsInterfaces/operations.d.ts.map +1 -0
  130. package/dist-esm/src/operationsInterfaces/operations.js +9 -0
  131. package/dist-esm/src/operationsInterfaces/operations.js.map +1 -0
  132. package/dist-esm/src/operationsInterfaces/trafficControllerInterface.d.ts +63 -0
  133. package/dist-esm/src/operationsInterfaces/trafficControllerInterface.d.ts.map +1 -0
  134. package/dist-esm/src/operationsInterfaces/trafficControllerInterface.js +9 -0
  135. package/dist-esm/src/operationsInterfaces/trafficControllerInterface.js.map +1 -0
  136. package/dist-esm/src/pagingHelper.d.ts +13 -0
  137. package/dist-esm/src/pagingHelper.d.ts.map +1 -0
  138. package/dist-esm/src/pagingHelper.js +32 -0
  139. package/dist-esm/src/pagingHelper.js.map +1 -0
  140. package/dist-esm/src/serviceNetworkingManagementClient.d.ts +23 -0
  141. package/dist-esm/src/serviceNetworkingManagementClient.d.ts.map +1 -0
  142. package/dist-esm/src/serviceNetworkingManagementClient.js +103 -0
  143. package/dist-esm/src/serviceNetworkingManagementClient.js.map +1 -0
  144. package/dist-esm/test/servicenetworking_operations_test.spec.d.ts +4 -0
  145. package/dist-esm/test/servicenetworking_operations_test.spec.d.ts.map +1 -0
  146. package/dist-esm/test/servicenetworking_operations_test.spec.js +107 -0
  147. package/dist-esm/test/servicenetworking_operations_test.spec.js.map +1 -0
  148. package/package.json +123 -0
  149. package/review/arm-servicenetworking.api.md +484 -0
  150. package/rollup.config.js +122 -0
  151. package/src/index.ts +13 -0
  152. package/src/lroImpl.ts +34 -0
  153. package/src/models/index.ts +626 -0
  154. package/src/models/mappers.ts +811 -0
  155. package/src/models/parameters.ts +182 -0
  156. package/src/operations/associationsInterface.ts +557 -0
  157. package/src/operations/frontendsInterface.ts +557 -0
  158. package/src/operations/index.ts +12 -0
  159. package/src/operations/operations.ts +149 -0
  160. package/src/operations/trafficControllerInterface.ts +628 -0
  161. package/src/operationsInterfaces/associationsInterface.ts +127 -0
  162. package/src/operationsInterfaces/frontendsInterface.ts +127 -0
  163. package/src/operationsInterfaces/index.ts +12 -0
  164. package/src/operationsInterfaces/operations.ts +22 -0
  165. package/src/operationsInterfaces/trafficControllerInterface.ts +121 -0
  166. package/src/pagingHelper.ts +39 -0
  167. package/src/serviceNetworkingManagementClient.ts +156 -0
  168. package/tsconfig.json +33 -0
  169. package/types/arm-servicenetworking.d.ts +847 -0
  170. package/types/tsdoc-metadata.json +11 -0
@@ -0,0 +1,628 @@
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 { TrafficControllerInterface } 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 { ServiceNetworkingManagementClient } from "../serviceNetworkingManagementClient";
16
+ import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro";
17
+ import { LroImpl } from "../lroImpl";
18
+ import {
19
+ TrafficController,
20
+ TrafficControllerInterfaceListBySubscriptionNextOptionalParams,
21
+ TrafficControllerInterfaceListBySubscriptionOptionalParams,
22
+ TrafficControllerInterfaceListBySubscriptionResponse,
23
+ TrafficControllerInterfaceListByResourceGroupNextOptionalParams,
24
+ TrafficControllerInterfaceListByResourceGroupOptionalParams,
25
+ TrafficControllerInterfaceListByResourceGroupResponse,
26
+ TrafficControllerInterfaceGetOptionalParams,
27
+ TrafficControllerInterfaceGetResponse,
28
+ TrafficControllerInterfaceCreateOrUpdateOptionalParams,
29
+ TrafficControllerInterfaceCreateOrUpdateResponse,
30
+ TrafficControllerUpdate,
31
+ TrafficControllerInterfaceUpdateOptionalParams,
32
+ TrafficControllerInterfaceUpdateResponse,
33
+ TrafficControllerInterfaceDeleteOptionalParams,
34
+ TrafficControllerInterfaceListBySubscriptionNextResponse,
35
+ TrafficControllerInterfaceListByResourceGroupNextResponse
36
+ } from "../models";
37
+
38
+ /// <reference lib="esnext.asynciterable" />
39
+ /** Class containing TrafficControllerInterface operations. */
40
+ export class TrafficControllerInterfaceImpl
41
+ implements TrafficControllerInterface {
42
+ private readonly client: ServiceNetworkingManagementClient;
43
+
44
+ /**
45
+ * Initialize a new instance of the class TrafficControllerInterface class.
46
+ * @param client Reference to the service client
47
+ */
48
+ constructor(client: ServiceNetworkingManagementClient) {
49
+ this.client = client;
50
+ }
51
+
52
+ /**
53
+ * List TrafficController resources by subscription ID
54
+ * @param options The options parameters.
55
+ */
56
+ public listBySubscription(
57
+ options?: TrafficControllerInterfaceListBySubscriptionOptionalParams
58
+ ): PagedAsyncIterableIterator<TrafficController> {
59
+ const iter = this.listBySubscriptionPagingAll(options);
60
+ return {
61
+ next() {
62
+ return iter.next();
63
+ },
64
+ [Symbol.asyncIterator]() {
65
+ return this;
66
+ },
67
+ byPage: (settings?: PageSettings) => {
68
+ if (settings?.maxPageSize) {
69
+ throw new Error("maxPageSize is not supported by this operation.");
70
+ }
71
+ return this.listBySubscriptionPagingPage(options, settings);
72
+ }
73
+ };
74
+ }
75
+
76
+ private async *listBySubscriptionPagingPage(
77
+ options?: TrafficControllerInterfaceListBySubscriptionOptionalParams,
78
+ settings?: PageSettings
79
+ ): AsyncIterableIterator<TrafficController[]> {
80
+ let result: TrafficControllerInterfaceListBySubscriptionResponse;
81
+ let continuationToken = settings?.continuationToken;
82
+ if (!continuationToken) {
83
+ result = await this._listBySubscription(options);
84
+ let page = result.value || [];
85
+ continuationToken = result.nextLink;
86
+ setContinuationToken(page, continuationToken);
87
+ yield page;
88
+ }
89
+ while (continuationToken) {
90
+ result = await this._listBySubscriptionNext(continuationToken, options);
91
+ continuationToken = result.nextLink;
92
+ let page = result.value || [];
93
+ setContinuationToken(page, continuationToken);
94
+ yield page;
95
+ }
96
+ }
97
+
98
+ private async *listBySubscriptionPagingAll(
99
+ options?: TrafficControllerInterfaceListBySubscriptionOptionalParams
100
+ ): AsyncIterableIterator<TrafficController> {
101
+ for await (const page of this.listBySubscriptionPagingPage(options)) {
102
+ yield* page;
103
+ }
104
+ }
105
+
106
+ /**
107
+ * List TrafficController resources by resource group
108
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
109
+ * @param options The options parameters.
110
+ */
111
+ public listByResourceGroup(
112
+ resourceGroupName: string,
113
+ options?: TrafficControllerInterfaceListByResourceGroupOptionalParams
114
+ ): PagedAsyncIterableIterator<TrafficController> {
115
+ const iter = this.listByResourceGroupPagingAll(resourceGroupName, options);
116
+ return {
117
+ next() {
118
+ return iter.next();
119
+ },
120
+ [Symbol.asyncIterator]() {
121
+ return this;
122
+ },
123
+ byPage: (settings?: PageSettings) => {
124
+ if (settings?.maxPageSize) {
125
+ throw new Error("maxPageSize is not supported by this operation.");
126
+ }
127
+ return this.listByResourceGroupPagingPage(
128
+ resourceGroupName,
129
+ options,
130
+ settings
131
+ );
132
+ }
133
+ };
134
+ }
135
+
136
+ private async *listByResourceGroupPagingPage(
137
+ resourceGroupName: string,
138
+ options?: TrafficControllerInterfaceListByResourceGroupOptionalParams,
139
+ settings?: PageSettings
140
+ ): AsyncIterableIterator<TrafficController[]> {
141
+ let result: TrafficControllerInterfaceListByResourceGroupResponse;
142
+ let continuationToken = settings?.continuationToken;
143
+ if (!continuationToken) {
144
+ result = await this._listByResourceGroup(resourceGroupName, options);
145
+ let page = result.value || [];
146
+ continuationToken = result.nextLink;
147
+ setContinuationToken(page, continuationToken);
148
+ yield page;
149
+ }
150
+ while (continuationToken) {
151
+ result = await this._listByResourceGroupNext(
152
+ resourceGroupName,
153
+ continuationToken,
154
+ options
155
+ );
156
+ continuationToken = result.nextLink;
157
+ let page = result.value || [];
158
+ setContinuationToken(page, continuationToken);
159
+ yield page;
160
+ }
161
+ }
162
+
163
+ private async *listByResourceGroupPagingAll(
164
+ resourceGroupName: string,
165
+ options?: TrafficControllerInterfaceListByResourceGroupOptionalParams
166
+ ): AsyncIterableIterator<TrafficController> {
167
+ for await (const page of this.listByResourceGroupPagingPage(
168
+ resourceGroupName,
169
+ options
170
+ )) {
171
+ yield* page;
172
+ }
173
+ }
174
+
175
+ /**
176
+ * List TrafficController resources by subscription ID
177
+ * @param options The options parameters.
178
+ */
179
+ private _listBySubscription(
180
+ options?: TrafficControllerInterfaceListBySubscriptionOptionalParams
181
+ ): Promise<TrafficControllerInterfaceListBySubscriptionResponse> {
182
+ return this.client.sendOperationRequest(
183
+ { options },
184
+ listBySubscriptionOperationSpec
185
+ );
186
+ }
187
+
188
+ /**
189
+ * List TrafficController resources by resource group
190
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
191
+ * @param options The options parameters.
192
+ */
193
+ private _listByResourceGroup(
194
+ resourceGroupName: string,
195
+ options?: TrafficControllerInterfaceListByResourceGroupOptionalParams
196
+ ): Promise<TrafficControllerInterfaceListByResourceGroupResponse> {
197
+ return this.client.sendOperationRequest(
198
+ { resourceGroupName, options },
199
+ listByResourceGroupOperationSpec
200
+ );
201
+ }
202
+
203
+ /**
204
+ * Get a TrafficController
205
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
206
+ * @param trafficControllerName traffic controller name for path
207
+ * @param options The options parameters.
208
+ */
209
+ get(
210
+ resourceGroupName: string,
211
+ trafficControllerName: string,
212
+ options?: TrafficControllerInterfaceGetOptionalParams
213
+ ): Promise<TrafficControllerInterfaceGetResponse> {
214
+ return this.client.sendOperationRequest(
215
+ { resourceGroupName, trafficControllerName, options },
216
+ getOperationSpec
217
+ );
218
+ }
219
+
220
+ /**
221
+ * Create a TrafficController
222
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
223
+ * @param trafficControllerName traffic controller name for path
224
+ * @param resource Resource create parameters.
225
+ * @param options The options parameters.
226
+ */
227
+ async beginCreateOrUpdate(
228
+ resourceGroupName: string,
229
+ trafficControllerName: string,
230
+ resource: TrafficController,
231
+ options?: TrafficControllerInterfaceCreateOrUpdateOptionalParams
232
+ ): Promise<
233
+ PollerLike<
234
+ PollOperationState<TrafficControllerInterfaceCreateOrUpdateResponse>,
235
+ TrafficControllerInterfaceCreateOrUpdateResponse
236
+ >
237
+ > {
238
+ const directSendOperation = async (
239
+ args: coreClient.OperationArguments,
240
+ spec: coreClient.OperationSpec
241
+ ): Promise<TrafficControllerInterfaceCreateOrUpdateResponse> => {
242
+ return this.client.sendOperationRequest(args, spec);
243
+ };
244
+ const sendOperation = async (
245
+ args: coreClient.OperationArguments,
246
+ spec: coreClient.OperationSpec
247
+ ) => {
248
+ let currentRawResponse:
249
+ | coreClient.FullOperationResponse
250
+ | undefined = undefined;
251
+ const providedCallback = args.options?.onResponse;
252
+ const callback: coreClient.RawResponseCallback = (
253
+ rawResponse: coreClient.FullOperationResponse,
254
+ flatResponse: unknown
255
+ ) => {
256
+ currentRawResponse = rawResponse;
257
+ providedCallback?.(rawResponse, flatResponse);
258
+ };
259
+ const updatedArgs = {
260
+ ...args,
261
+ options: {
262
+ ...args.options,
263
+ onResponse: callback
264
+ }
265
+ };
266
+ const flatResponse = await directSendOperation(updatedArgs, spec);
267
+ return {
268
+ flatResponse,
269
+ rawResponse: {
270
+ statusCode: currentRawResponse!.status,
271
+ body: currentRawResponse!.parsedBody,
272
+ headers: currentRawResponse!.headers.toJSON()
273
+ }
274
+ };
275
+ };
276
+
277
+ const lro = new LroImpl(
278
+ sendOperation,
279
+ { resourceGroupName, trafficControllerName, resource, options },
280
+ createOrUpdateOperationSpec
281
+ );
282
+ const poller = new LroEngine(lro, {
283
+ resumeFrom: options?.resumeFrom,
284
+ intervalInMs: options?.updateIntervalInMs,
285
+ lroResourceLocationConfig: "azure-async-operation"
286
+ });
287
+ await poller.poll();
288
+ return poller;
289
+ }
290
+
291
+ /**
292
+ * Create a TrafficController
293
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
294
+ * @param trafficControllerName traffic controller name for path
295
+ * @param resource Resource create parameters.
296
+ * @param options The options parameters.
297
+ */
298
+ async beginCreateOrUpdateAndWait(
299
+ resourceGroupName: string,
300
+ trafficControllerName: string,
301
+ resource: TrafficController,
302
+ options?: TrafficControllerInterfaceCreateOrUpdateOptionalParams
303
+ ): Promise<TrafficControllerInterfaceCreateOrUpdateResponse> {
304
+ const poller = await this.beginCreateOrUpdate(
305
+ resourceGroupName,
306
+ trafficControllerName,
307
+ resource,
308
+ options
309
+ );
310
+ return poller.pollUntilDone();
311
+ }
312
+
313
+ /**
314
+ * Update a TrafficController
315
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
316
+ * @param trafficControllerName traffic controller name for path
317
+ * @param properties The resource properties to be updated.
318
+ * @param options The options parameters.
319
+ */
320
+ update(
321
+ resourceGroupName: string,
322
+ trafficControllerName: string,
323
+ properties: TrafficControllerUpdate,
324
+ options?: TrafficControllerInterfaceUpdateOptionalParams
325
+ ): Promise<TrafficControllerInterfaceUpdateResponse> {
326
+ return this.client.sendOperationRequest(
327
+ { resourceGroupName, trafficControllerName, properties, options },
328
+ updateOperationSpec
329
+ );
330
+ }
331
+
332
+ /**
333
+ * Delete a TrafficController
334
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
335
+ * @param trafficControllerName traffic controller name for path
336
+ * @param options The options parameters.
337
+ */
338
+ async beginDelete(
339
+ resourceGroupName: string,
340
+ trafficControllerName: string,
341
+ options?: TrafficControllerInterfaceDeleteOptionalParams
342
+ ): Promise<PollerLike<PollOperationState<void>, void>> {
343
+ const directSendOperation = async (
344
+ args: coreClient.OperationArguments,
345
+ spec: coreClient.OperationSpec
346
+ ): Promise<void> => {
347
+ return this.client.sendOperationRequest(args, spec);
348
+ };
349
+ const sendOperation = async (
350
+ args: coreClient.OperationArguments,
351
+ spec: coreClient.OperationSpec
352
+ ) => {
353
+ let currentRawResponse:
354
+ | coreClient.FullOperationResponse
355
+ | undefined = undefined;
356
+ const providedCallback = args.options?.onResponse;
357
+ const callback: coreClient.RawResponseCallback = (
358
+ rawResponse: coreClient.FullOperationResponse,
359
+ flatResponse: unknown
360
+ ) => {
361
+ currentRawResponse = rawResponse;
362
+ providedCallback?.(rawResponse, flatResponse);
363
+ };
364
+ const updatedArgs = {
365
+ ...args,
366
+ options: {
367
+ ...args.options,
368
+ onResponse: callback
369
+ }
370
+ };
371
+ const flatResponse = await directSendOperation(updatedArgs, spec);
372
+ return {
373
+ flatResponse,
374
+ rawResponse: {
375
+ statusCode: currentRawResponse!.status,
376
+ body: currentRawResponse!.parsedBody,
377
+ headers: currentRawResponse!.headers.toJSON()
378
+ }
379
+ };
380
+ };
381
+
382
+ const lro = new LroImpl(
383
+ sendOperation,
384
+ { resourceGroupName, trafficControllerName, options },
385
+ deleteOperationSpec
386
+ );
387
+ const poller = new LroEngine(lro, {
388
+ resumeFrom: options?.resumeFrom,
389
+ intervalInMs: options?.updateIntervalInMs,
390
+ lroResourceLocationConfig: "location"
391
+ });
392
+ await poller.poll();
393
+ return poller;
394
+ }
395
+
396
+ /**
397
+ * Delete a TrafficController
398
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
399
+ * @param trafficControllerName traffic controller name for path
400
+ * @param options The options parameters.
401
+ */
402
+ async beginDeleteAndWait(
403
+ resourceGroupName: string,
404
+ trafficControllerName: string,
405
+ options?: TrafficControllerInterfaceDeleteOptionalParams
406
+ ): Promise<void> {
407
+ const poller = await this.beginDelete(
408
+ resourceGroupName,
409
+ trafficControllerName,
410
+ options
411
+ );
412
+ return poller.pollUntilDone();
413
+ }
414
+
415
+ /**
416
+ * ListBySubscriptionNext
417
+ * @param nextLink The nextLink from the previous successful call to the ListBySubscription method.
418
+ * @param options The options parameters.
419
+ */
420
+ private _listBySubscriptionNext(
421
+ nextLink: string,
422
+ options?: TrafficControllerInterfaceListBySubscriptionNextOptionalParams
423
+ ): Promise<TrafficControllerInterfaceListBySubscriptionNextResponse> {
424
+ return this.client.sendOperationRequest(
425
+ { nextLink, options },
426
+ listBySubscriptionNextOperationSpec
427
+ );
428
+ }
429
+
430
+ /**
431
+ * ListByResourceGroupNext
432
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
433
+ * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
434
+ * @param options The options parameters.
435
+ */
436
+ private _listByResourceGroupNext(
437
+ resourceGroupName: string,
438
+ nextLink: string,
439
+ options?: TrafficControllerInterfaceListByResourceGroupNextOptionalParams
440
+ ): Promise<TrafficControllerInterfaceListByResourceGroupNextResponse> {
441
+ return this.client.sendOperationRequest(
442
+ { resourceGroupName, nextLink, options },
443
+ listByResourceGroupNextOperationSpec
444
+ );
445
+ }
446
+ }
447
+ // Operation Specifications
448
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
449
+
450
+ const listBySubscriptionOperationSpec: coreClient.OperationSpec = {
451
+ path:
452
+ "/subscriptions/{subscriptionId}/providers/Microsoft.ServiceNetworking/trafficControllers",
453
+ httpMethod: "GET",
454
+ responses: {
455
+ 200: {
456
+ bodyMapper: Mappers.TrafficControllerListResult
457
+ },
458
+ default: {
459
+ bodyMapper: Mappers.ErrorResponse
460
+ }
461
+ },
462
+ queryParameters: [Parameters.apiVersion],
463
+ urlParameters: [Parameters.$host, Parameters.subscriptionId],
464
+ headerParameters: [Parameters.accept],
465
+ serializer
466
+ };
467
+ const listByResourceGroupOperationSpec: coreClient.OperationSpec = {
468
+ path:
469
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceNetworking/trafficControllers",
470
+ httpMethod: "GET",
471
+ responses: {
472
+ 200: {
473
+ bodyMapper: Mappers.TrafficControllerListResult
474
+ },
475
+ default: {
476
+ bodyMapper: Mappers.ErrorResponse
477
+ }
478
+ },
479
+ queryParameters: [Parameters.apiVersion],
480
+ urlParameters: [
481
+ Parameters.$host,
482
+ Parameters.subscriptionId,
483
+ Parameters.resourceGroupName
484
+ ],
485
+ headerParameters: [Parameters.accept],
486
+ serializer
487
+ };
488
+ const getOperationSpec: coreClient.OperationSpec = {
489
+ path:
490
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceNetworking/trafficControllers/{trafficControllerName}",
491
+ httpMethod: "GET",
492
+ responses: {
493
+ 200: {
494
+ bodyMapper: Mappers.TrafficController
495
+ },
496
+ default: {
497
+ bodyMapper: Mappers.ErrorResponse
498
+ }
499
+ },
500
+ queryParameters: [Parameters.apiVersion],
501
+ urlParameters: [
502
+ Parameters.$host,
503
+ Parameters.subscriptionId,
504
+ Parameters.resourceGroupName,
505
+ Parameters.trafficControllerName
506
+ ],
507
+ headerParameters: [Parameters.accept],
508
+ serializer
509
+ };
510
+ const createOrUpdateOperationSpec: coreClient.OperationSpec = {
511
+ path:
512
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceNetworking/trafficControllers/{trafficControllerName}",
513
+ httpMethod: "PUT",
514
+ responses: {
515
+ 200: {
516
+ bodyMapper: Mappers.TrafficController
517
+ },
518
+ 201: {
519
+ bodyMapper: Mappers.TrafficController
520
+ },
521
+ 202: {
522
+ bodyMapper: Mappers.TrafficController
523
+ },
524
+ 204: {
525
+ bodyMapper: Mappers.TrafficController
526
+ },
527
+ default: {
528
+ bodyMapper: Mappers.ErrorResponse
529
+ }
530
+ },
531
+ requestBody: Parameters.resource,
532
+ queryParameters: [Parameters.apiVersion],
533
+ urlParameters: [
534
+ Parameters.$host,
535
+ Parameters.subscriptionId,
536
+ Parameters.resourceGroupName,
537
+ Parameters.trafficControllerName
538
+ ],
539
+ headerParameters: [Parameters.accept, Parameters.contentType],
540
+ mediaType: "json",
541
+ serializer
542
+ };
543
+ const updateOperationSpec: coreClient.OperationSpec = {
544
+ path:
545
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceNetworking/trafficControllers/{trafficControllerName}",
546
+ httpMethod: "PATCH",
547
+ responses: {
548
+ 200: {
549
+ bodyMapper: Mappers.TrafficController
550
+ },
551
+ default: {
552
+ bodyMapper: Mappers.ErrorResponse
553
+ }
554
+ },
555
+ requestBody: Parameters.properties,
556
+ queryParameters: [Parameters.apiVersion],
557
+ urlParameters: [
558
+ Parameters.$host,
559
+ Parameters.subscriptionId,
560
+ Parameters.resourceGroupName,
561
+ Parameters.trafficControllerName
562
+ ],
563
+ headerParameters: [Parameters.accept, Parameters.contentType],
564
+ mediaType: "json",
565
+ serializer
566
+ };
567
+ const deleteOperationSpec: coreClient.OperationSpec = {
568
+ path:
569
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceNetworking/trafficControllers/{trafficControllerName}",
570
+ httpMethod: "DELETE",
571
+ responses: {
572
+ 200: {},
573
+ 201: {},
574
+ 202: {},
575
+ 204: {},
576
+ default: {
577
+ bodyMapper: Mappers.ErrorResponse
578
+ }
579
+ },
580
+ queryParameters: [Parameters.apiVersion],
581
+ urlParameters: [
582
+ Parameters.$host,
583
+ Parameters.subscriptionId,
584
+ Parameters.resourceGroupName,
585
+ Parameters.trafficControllerName
586
+ ],
587
+ headerParameters: [Parameters.accept],
588
+ serializer
589
+ };
590
+ const listBySubscriptionNextOperationSpec: coreClient.OperationSpec = {
591
+ path: "{nextLink}",
592
+ httpMethod: "GET",
593
+ responses: {
594
+ 200: {
595
+ bodyMapper: Mappers.TrafficControllerListResult
596
+ },
597
+ default: {
598
+ bodyMapper: Mappers.ErrorResponse
599
+ }
600
+ },
601
+ urlParameters: [
602
+ Parameters.$host,
603
+ Parameters.nextLink,
604
+ Parameters.subscriptionId
605
+ ],
606
+ headerParameters: [Parameters.accept],
607
+ serializer
608
+ };
609
+ const listByResourceGroupNextOperationSpec: coreClient.OperationSpec = {
610
+ path: "{nextLink}",
611
+ httpMethod: "GET",
612
+ responses: {
613
+ 200: {
614
+ bodyMapper: Mappers.TrafficControllerListResult
615
+ },
616
+ default: {
617
+ bodyMapper: Mappers.ErrorResponse
618
+ }
619
+ },
620
+ urlParameters: [
621
+ Parameters.$host,
622
+ Parameters.nextLink,
623
+ Parameters.subscriptionId,
624
+ Parameters.resourceGroupName
625
+ ],
626
+ headerParameters: [Parameters.accept],
627
+ serializer
628
+ };