@azure/arm-datadog 3.0.3-alpha.20231023.1 → 3.1.0-alpha.20231030.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 (175) hide show
  1. package/CHANGELOG.md +35 -11
  2. package/LICENSE +1 -1
  3. package/dist/index.js +929 -183
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.js +1 -1
  6. package/dist/index.min.js.map +1 -1
  7. package/dist-esm/samples-dev/creationSupportedGetSample.d.ts +2 -0
  8. package/dist-esm/samples-dev/creationSupportedGetSample.d.ts.map +1 -0
  9. package/dist-esm/samples-dev/creationSupportedGetSample.js +38 -0
  10. package/dist-esm/samples-dev/creationSupportedGetSample.js.map +1 -0
  11. package/dist-esm/samples-dev/creationSupportedListSample.d.ts +2 -0
  12. package/dist-esm/samples-dev/creationSupportedListSample.d.ts.map +1 -0
  13. package/dist-esm/samples-dev/creationSupportedListSample.js +54 -0
  14. package/dist-esm/samples-dev/creationSupportedListSample.js.map +1 -0
  15. package/dist-esm/samples-dev/marketplaceAgreementsCreateOrUpdateSample.js +11 -3
  16. package/dist-esm/samples-dev/marketplaceAgreementsCreateOrUpdateSample.js.map +1 -1
  17. package/dist-esm/samples-dev/marketplaceAgreementsListSample.js +11 -3
  18. package/dist-esm/samples-dev/marketplaceAgreementsListSample.js.map +1 -1
  19. package/dist-esm/samples-dev/monitoredSubscriptionsCreateorUpdateSample.d.ts +2 -0
  20. package/dist-esm/samples-dev/monitoredSubscriptionsCreateorUpdateSample.d.ts.map +1 -0
  21. package/dist-esm/samples-dev/monitoredSubscriptionsCreateorUpdateSample.js +40 -0
  22. package/dist-esm/samples-dev/monitoredSubscriptionsCreateorUpdateSample.js.map +1 -0
  23. package/dist-esm/samples-dev/monitoredSubscriptionsDeleteSample.d.ts +2 -0
  24. package/dist-esm/samples-dev/monitoredSubscriptionsDeleteSample.d.ts.map +1 -0
  25. package/dist-esm/samples-dev/monitoredSubscriptionsDeleteSample.js +40 -0
  26. package/dist-esm/samples-dev/monitoredSubscriptionsDeleteSample.js.map +1 -0
  27. package/dist-esm/samples-dev/monitoredSubscriptionsGetSample.d.ts +2 -0
  28. package/dist-esm/samples-dev/monitoredSubscriptionsGetSample.d.ts.map +1 -0
  29. package/dist-esm/samples-dev/monitoredSubscriptionsGetSample.js +40 -0
  30. package/dist-esm/samples-dev/monitoredSubscriptionsGetSample.js.map +1 -0
  31. package/dist-esm/samples-dev/monitoredSubscriptionsListSample.d.ts +2 -0
  32. package/dist-esm/samples-dev/monitoredSubscriptionsListSample.d.ts.map +1 -0
  33. package/dist-esm/samples-dev/monitoredSubscriptionsListSample.js +55 -0
  34. package/dist-esm/samples-dev/monitoredSubscriptionsListSample.js.map +1 -0
  35. package/dist-esm/samples-dev/monitoredSubscriptionsUpdateSample.d.ts +2 -0
  36. package/dist-esm/samples-dev/monitoredSubscriptionsUpdateSample.d.ts.map +1 -0
  37. package/dist-esm/samples-dev/monitoredSubscriptionsUpdateSample.js +40 -0
  38. package/dist-esm/samples-dev/monitoredSubscriptionsUpdateSample.js.map +1 -0
  39. package/dist-esm/samples-dev/monitorsCreateSample.js +12 -4
  40. package/dist-esm/samples-dev/monitorsCreateSample.js.map +1 -1
  41. package/dist-esm/samples-dev/monitorsDeleteSample.js +12 -4
  42. package/dist-esm/samples-dev/monitorsDeleteSample.js.map +1 -1
  43. package/dist-esm/samples-dev/monitorsGetDefaultKeySample.js +12 -4
  44. package/dist-esm/samples-dev/monitorsGetDefaultKeySample.js.map +1 -1
  45. package/dist-esm/samples-dev/monitorsGetSample.js +12 -4
  46. package/dist-esm/samples-dev/monitorsGetSample.js.map +1 -1
  47. package/dist-esm/samples-dev/monitorsListApiKeysSample.js +12 -4
  48. package/dist-esm/samples-dev/monitorsListApiKeysSample.js.map +1 -1
  49. package/dist-esm/samples-dev/monitorsListByResourceGroupSample.js +12 -4
  50. package/dist-esm/samples-dev/monitorsListByResourceGroupSample.js.map +1 -1
  51. package/dist-esm/samples-dev/monitorsListHostsSample.js +12 -4
  52. package/dist-esm/samples-dev/monitorsListHostsSample.js.map +1 -1
  53. package/dist-esm/samples-dev/monitorsListLinkedResourcesSample.js +12 -4
  54. package/dist-esm/samples-dev/monitorsListLinkedResourcesSample.js.map +1 -1
  55. package/dist-esm/samples-dev/monitorsListMonitoredResourcesSample.js +12 -4
  56. package/dist-esm/samples-dev/monitorsListMonitoredResourcesSample.js.map +1 -1
  57. package/dist-esm/samples-dev/monitorsListSample.js +11 -3
  58. package/dist-esm/samples-dev/monitorsListSample.js.map +1 -1
  59. package/dist-esm/samples-dev/monitorsRefreshSetPasswordLinkSample.js +12 -4
  60. package/dist-esm/samples-dev/monitorsRefreshSetPasswordLinkSample.js.map +1 -1
  61. package/dist-esm/samples-dev/monitorsSetDefaultKeySample.js +12 -4
  62. package/dist-esm/samples-dev/monitorsSetDefaultKeySample.js.map +1 -1
  63. package/dist-esm/samples-dev/monitorsUpdateSample.js +12 -4
  64. package/dist-esm/samples-dev/monitorsUpdateSample.js.map +1 -1
  65. package/dist-esm/samples-dev/operationsListSample.js +13 -5
  66. package/dist-esm/samples-dev/operationsListSample.js.map +1 -1
  67. package/dist-esm/samples-dev/singleSignOnConfigurationsCreateOrUpdateSample.js +12 -4
  68. package/dist-esm/samples-dev/singleSignOnConfigurationsCreateOrUpdateSample.js.map +1 -1
  69. package/dist-esm/samples-dev/singleSignOnConfigurationsGetSample.js +12 -4
  70. package/dist-esm/samples-dev/singleSignOnConfigurationsGetSample.js.map +1 -1
  71. package/dist-esm/samples-dev/singleSignOnConfigurationsListSample.js +12 -4
  72. package/dist-esm/samples-dev/singleSignOnConfigurationsListSample.js.map +1 -1
  73. package/dist-esm/samples-dev/tagRulesCreateOrUpdateSample.js +12 -4
  74. package/dist-esm/samples-dev/tagRulesCreateOrUpdateSample.js.map +1 -1
  75. package/dist-esm/samples-dev/tagRulesGetSample.js +12 -4
  76. package/dist-esm/samples-dev/tagRulesGetSample.js.map +1 -1
  77. package/dist-esm/samples-dev/tagRulesListSample.js +12 -4
  78. package/dist-esm/samples-dev/tagRulesListSample.js.map +1 -1
  79. package/dist-esm/src/lroImpl.d.ts +6 -11
  80. package/dist-esm/src/lroImpl.d.ts.map +1 -1
  81. package/dist-esm/src/lroImpl.js +12 -20
  82. package/dist-esm/src/lroImpl.js.map +1 -1
  83. package/dist-esm/src/microsoftDatadogClient.d.ts +3 -1
  84. package/dist-esm/src/microsoftDatadogClient.d.ts.map +1 -1
  85. package/dist-esm/src/microsoftDatadogClient.js +5 -3
  86. package/dist-esm/src/microsoftDatadogClient.js.map +1 -1
  87. package/dist-esm/src/models/index.d.ts +177 -19
  88. package/dist-esm/src/models/index.d.ts.map +1 -1
  89. package/dist-esm/src/models/index.js +26 -0
  90. package/dist-esm/src/models/index.js.map +1 -1
  91. package/dist-esm/src/models/mappers.d.ts +7 -0
  92. package/dist-esm/src/models/mappers.d.ts.map +1 -1
  93. package/dist-esm/src/models/mappers.js +190 -2
  94. package/dist-esm/src/models/mappers.js.map +1 -1
  95. package/dist-esm/src/models/parameters.d.ts +2 -0
  96. package/dist-esm/src/models/parameters.d.ts.map +1 -1
  97. package/dist-esm/src/models/parameters.js +16 -2
  98. package/dist-esm/src/models/parameters.js.map +1 -1
  99. package/dist-esm/src/operations/creationSupported.d.ts +34 -0
  100. package/dist-esm/src/operations/creationSupported.d.ts.map +1 -0
  101. package/dist-esm/src/operations/creationSupported.js +122 -0
  102. package/dist-esm/src/operations/creationSupported.js.map +1 -0
  103. package/dist-esm/src/operations/index.d.ts +2 -0
  104. package/dist-esm/src/operations/index.d.ts.map +1 -1
  105. package/dist-esm/src/operations/index.js +2 -0
  106. package/dist-esm/src/operations/index.js.map +1 -1
  107. package/dist-esm/src/operations/marketplaceAgreements.js +0 -1
  108. package/dist-esm/src/operations/marketplaceAgreements.js.map +1 -1
  109. package/dist-esm/src/operations/monitoredSubscriptions.d.ts +87 -0
  110. package/dist-esm/src/operations/monitoredSubscriptions.d.ts.map +1 -0
  111. package/dist-esm/src/operations/monitoredSubscriptions.js +399 -0
  112. package/dist-esm/src/operations/monitoredSubscriptions.js.map +1 -0
  113. package/dist-esm/src/operations/monitors.d.ts +4 -4
  114. package/dist-esm/src/operations/monitors.d.ts.map +1 -1
  115. package/dist-esm/src/operations/monitors.js +27 -21
  116. package/dist-esm/src/operations/monitors.js.map +1 -1
  117. package/dist-esm/src/operations/operations.d.ts +2 -2
  118. package/dist-esm/src/operations/operations.js +2 -3
  119. package/dist-esm/src/operations/operations.js.map +1 -1
  120. package/dist-esm/src/operations/singleSignOnConfigurations.d.ts +2 -2
  121. package/dist-esm/src/operations/singleSignOnConfigurations.d.ts.map +1 -1
  122. package/dist-esm/src/operations/singleSignOnConfigurations.js +11 -8
  123. package/dist-esm/src/operations/singleSignOnConfigurations.js.map +1 -1
  124. package/dist-esm/src/operations/tagRules.js +0 -1
  125. package/dist-esm/src/operations/tagRules.js.map +1 -1
  126. package/dist-esm/src/operationsInterfaces/creationSupported.d.ts +18 -0
  127. package/dist-esm/src/operationsInterfaces/creationSupported.d.ts.map +1 -0
  128. package/dist-esm/src/operationsInterfaces/creationSupported.js +9 -0
  129. package/dist-esm/src/operationsInterfaces/creationSupported.js.map +1 -0
  130. package/dist-esm/src/operationsInterfaces/index.d.ts +2 -0
  131. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -1
  132. package/dist-esm/src/operationsInterfaces/index.js +2 -0
  133. package/dist-esm/src/operationsInterfaces/index.js.map +1 -1
  134. package/dist-esm/src/operationsInterfaces/monitoredSubscriptions.d.ts +70 -0
  135. package/dist-esm/src/operationsInterfaces/monitoredSubscriptions.d.ts.map +1 -0
  136. package/dist-esm/src/operationsInterfaces/monitoredSubscriptions.js +9 -0
  137. package/dist-esm/src/operationsInterfaces/monitoredSubscriptions.js.map +1 -0
  138. package/dist-esm/src/operationsInterfaces/monitors.d.ts +4 -4
  139. package/dist-esm/src/operationsInterfaces/monitors.d.ts.map +1 -1
  140. package/dist-esm/src/operationsInterfaces/operations.d.ts +1 -1
  141. package/dist-esm/src/operationsInterfaces/singleSignOnConfigurations.d.ts +2 -2
  142. package/dist-esm/src/operationsInterfaces/singleSignOnConfigurations.d.ts.map +1 -1
  143. package/dist-esm/src/pagingHelper.d.ts +4 -4
  144. package/dist-esm/src/pagingHelper.js +4 -4
  145. package/dist-esm/test/datadog_operations_test.spec.d.ts +4 -0
  146. package/dist-esm/test/datadog_operations_test.spec.d.ts.map +1 -0
  147. package/dist-esm/test/datadog_operations_test.spec.js +73 -0
  148. package/dist-esm/test/datadog_operations_test.spec.js.map +1 -0
  149. package/package.json +10 -9
  150. package/review/arm-datadog.api.md +155 -8
  151. package/src/lroImpl.ts +31 -23
  152. package/src/microsoftDatadogClient.ts +12 -4
  153. package/src/models/index.ts +204 -19
  154. package/src/models/mappers.ts +197 -2
  155. package/src/models/parameters.ts +19 -2
  156. package/src/operations/creationSupported.ts +150 -0
  157. package/src/operations/index.ts +2 -0
  158. package/src/operations/marketplaceAgreements.ts +0 -1
  159. package/src/operations/monitoredSubscriptions.ts +557 -0
  160. package/src/operations/monitors.ts +42 -38
  161. package/src/operations/operations.ts +2 -3
  162. package/src/operations/singleSignOnConfigurations.ts +20 -14
  163. package/src/operations/tagRules.ts +0 -1
  164. package/src/operationsInterfaces/creationSupported.ts +38 -0
  165. package/src/operationsInterfaces/index.ts +2 -0
  166. package/src/operationsInterfaces/monitoredSubscriptions.ts +138 -0
  167. package/src/operationsInterfaces/monitors.ts +6 -6
  168. package/src/operationsInterfaces/operations.ts +1 -1
  169. package/src/operationsInterfaces/singleSignOnConfigurations.ts +3 -3
  170. package/src/pagingHelper.ts +4 -4
  171. package/types/arm-datadog.d.ts +297 -30
  172. package/dist-esm/test/sampleTest.d.ts +0 -2
  173. package/dist-esm/test/sampleTest.d.ts.map +0 -1
  174. package/dist-esm/test/sampleTest.js +0 -38
  175. package/dist-esm/test/sampleTest.js.map +0 -1
@@ -0,0 +1,557 @@
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 { MonitoredSubscriptions } 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 { MicrosoftDatadogClient } from "../microsoftDatadogClient";
15
+ import {
16
+ SimplePollerLike,
17
+ OperationState,
18
+ createHttpPoller
19
+ } from "@azure/core-lro";
20
+ import { createLroSpec } from "../lroImpl";
21
+ import {
22
+ MonitoredSubscriptionProperties,
23
+ MonitoredSubscriptionsListOptionalParams,
24
+ MonitoredSubscriptionsListResponse,
25
+ MonitoredSubscriptionsGetOptionalParams,
26
+ MonitoredSubscriptionsGetResponse,
27
+ MonitoredSubscriptionsCreateorUpdateOptionalParams,
28
+ MonitoredSubscriptionsCreateorUpdateResponse,
29
+ MonitoredSubscriptionsUpdateOptionalParams,
30
+ MonitoredSubscriptionsUpdateResponse,
31
+ MonitoredSubscriptionsDeleteOptionalParams
32
+ } from "../models";
33
+
34
+ /// <reference lib="esnext.asynciterable" />
35
+ /** Class containing MonitoredSubscriptions operations. */
36
+ export class MonitoredSubscriptionsImpl implements MonitoredSubscriptions {
37
+ private readonly client: MicrosoftDatadogClient;
38
+
39
+ /**
40
+ * Initialize a new instance of the class MonitoredSubscriptions class.
41
+ * @param client Reference to the service client
42
+ */
43
+ constructor(client: MicrosoftDatadogClient) {
44
+ this.client = client;
45
+ }
46
+
47
+ /**
48
+ * List the subscriptions currently being monitored by the Datadog monitor resource.
49
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
50
+ * @param monitorName Monitor resource name
51
+ * @param options The options parameters.
52
+ */
53
+ public list(
54
+ resourceGroupName: string,
55
+ monitorName: string,
56
+ options?: MonitoredSubscriptionsListOptionalParams
57
+ ): PagedAsyncIterableIterator<MonitoredSubscriptionProperties> {
58
+ const iter = this.listPagingAll(resourceGroupName, monitorName, options);
59
+ return {
60
+ next() {
61
+ return iter.next();
62
+ },
63
+ [Symbol.asyncIterator]() {
64
+ return this;
65
+ },
66
+ byPage: (settings?: PageSettings) => {
67
+ if (settings?.maxPageSize) {
68
+ throw new Error("maxPageSize is not supported by this operation.");
69
+ }
70
+ return this.listPagingPage(
71
+ resourceGroupName,
72
+ monitorName,
73
+ options,
74
+ settings
75
+ );
76
+ }
77
+ };
78
+ }
79
+
80
+ private async *listPagingPage(
81
+ resourceGroupName: string,
82
+ monitorName: string,
83
+ options?: MonitoredSubscriptionsListOptionalParams,
84
+ _settings?: PageSettings
85
+ ): AsyncIterableIterator<MonitoredSubscriptionProperties[]> {
86
+ let result: MonitoredSubscriptionsListResponse;
87
+ result = await this._list(resourceGroupName, monitorName, options);
88
+ yield result.value || [];
89
+ }
90
+
91
+ private async *listPagingAll(
92
+ resourceGroupName: string,
93
+ monitorName: string,
94
+ options?: MonitoredSubscriptionsListOptionalParams
95
+ ): AsyncIterableIterator<MonitoredSubscriptionProperties> {
96
+ for await (const page of this.listPagingPage(
97
+ resourceGroupName,
98
+ monitorName,
99
+ options
100
+ )) {
101
+ yield* page;
102
+ }
103
+ }
104
+
105
+ /**
106
+ * List the subscriptions currently being monitored by the Datadog monitor resource.
107
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
108
+ * @param monitorName Monitor resource name
109
+ * @param options The options parameters.
110
+ */
111
+ private _list(
112
+ resourceGroupName: string,
113
+ monitorName: string,
114
+ options?: MonitoredSubscriptionsListOptionalParams
115
+ ): Promise<MonitoredSubscriptionsListResponse> {
116
+ return this.client.sendOperationRequest(
117
+ { resourceGroupName, monitorName, options },
118
+ listOperationSpec
119
+ );
120
+ }
121
+
122
+ /**
123
+ * List the subscriptions currently being monitored by the Datadog monitor resource.
124
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
125
+ * @param monitorName Monitor resource name
126
+ * @param configurationName The configuration name. Only 'default' value is supported.
127
+ * @param options The options parameters.
128
+ */
129
+ get(
130
+ resourceGroupName: string,
131
+ monitorName: string,
132
+ configurationName: string,
133
+ options?: MonitoredSubscriptionsGetOptionalParams
134
+ ): Promise<MonitoredSubscriptionsGetResponse> {
135
+ return this.client.sendOperationRequest(
136
+ { resourceGroupName, monitorName, configurationName, options },
137
+ getOperationSpec
138
+ );
139
+ }
140
+
141
+ /**
142
+ * Add the subscriptions that should be monitored by the Datadog monitor resource.
143
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
144
+ * @param monitorName Monitor resource name
145
+ * @param configurationName The configuration name. Only 'default' value is supported.
146
+ * @param options The options parameters.
147
+ */
148
+ async beginCreateorUpdate(
149
+ resourceGroupName: string,
150
+ monitorName: string,
151
+ configurationName: string,
152
+ options?: MonitoredSubscriptionsCreateorUpdateOptionalParams
153
+ ): Promise<
154
+ SimplePollerLike<
155
+ OperationState<MonitoredSubscriptionsCreateorUpdateResponse>,
156
+ MonitoredSubscriptionsCreateorUpdateResponse
157
+ >
158
+ > {
159
+ const directSendOperation = async (
160
+ args: coreClient.OperationArguments,
161
+ spec: coreClient.OperationSpec
162
+ ): Promise<MonitoredSubscriptionsCreateorUpdateResponse> => {
163
+ return this.client.sendOperationRequest(args, spec);
164
+ };
165
+ const sendOperationFn = async (
166
+ args: coreClient.OperationArguments,
167
+ spec: coreClient.OperationSpec
168
+ ) => {
169
+ let currentRawResponse:
170
+ | coreClient.FullOperationResponse
171
+ | undefined = undefined;
172
+ const providedCallback = args.options?.onResponse;
173
+ const callback: coreClient.RawResponseCallback = (
174
+ rawResponse: coreClient.FullOperationResponse,
175
+ flatResponse: unknown
176
+ ) => {
177
+ currentRawResponse = rawResponse;
178
+ providedCallback?.(rawResponse, flatResponse);
179
+ };
180
+ const updatedArgs = {
181
+ ...args,
182
+ options: {
183
+ ...args.options,
184
+ onResponse: callback
185
+ }
186
+ };
187
+ const flatResponse = await directSendOperation(updatedArgs, spec);
188
+ return {
189
+ flatResponse,
190
+ rawResponse: {
191
+ statusCode: currentRawResponse!.status,
192
+ body: currentRawResponse!.parsedBody,
193
+ headers: currentRawResponse!.headers.toJSON()
194
+ }
195
+ };
196
+ };
197
+
198
+ const lro = createLroSpec({
199
+ sendOperationFn,
200
+ args: { resourceGroupName, monitorName, configurationName, options },
201
+ spec: createorUpdateOperationSpec
202
+ });
203
+ const poller = await createHttpPoller<
204
+ MonitoredSubscriptionsCreateorUpdateResponse,
205
+ OperationState<MonitoredSubscriptionsCreateorUpdateResponse>
206
+ >(lro, {
207
+ restoreFrom: options?.resumeFrom,
208
+ intervalInMs: options?.updateIntervalInMs
209
+ });
210
+ await poller.poll();
211
+ return poller;
212
+ }
213
+
214
+ /**
215
+ * Add the subscriptions that should be monitored by the Datadog monitor resource.
216
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
217
+ * @param monitorName Monitor resource name
218
+ * @param configurationName The configuration name. Only 'default' value is supported.
219
+ * @param options The options parameters.
220
+ */
221
+ async beginCreateorUpdateAndWait(
222
+ resourceGroupName: string,
223
+ monitorName: string,
224
+ configurationName: string,
225
+ options?: MonitoredSubscriptionsCreateorUpdateOptionalParams
226
+ ): Promise<MonitoredSubscriptionsCreateorUpdateResponse> {
227
+ const poller = await this.beginCreateorUpdate(
228
+ resourceGroupName,
229
+ monitorName,
230
+ configurationName,
231
+ options
232
+ );
233
+ return poller.pollUntilDone();
234
+ }
235
+
236
+ /**
237
+ * Updates the subscriptions that are being monitored by the Datadog monitor resource
238
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
239
+ * @param monitorName Monitor resource name
240
+ * @param configurationName The configuration name. Only 'default' value is supported.
241
+ * @param options The options parameters.
242
+ */
243
+ async beginUpdate(
244
+ resourceGroupName: string,
245
+ monitorName: string,
246
+ configurationName: string,
247
+ options?: MonitoredSubscriptionsUpdateOptionalParams
248
+ ): Promise<
249
+ SimplePollerLike<
250
+ OperationState<MonitoredSubscriptionsUpdateResponse>,
251
+ MonitoredSubscriptionsUpdateResponse
252
+ >
253
+ > {
254
+ const directSendOperation = async (
255
+ args: coreClient.OperationArguments,
256
+ spec: coreClient.OperationSpec
257
+ ): Promise<MonitoredSubscriptionsUpdateResponse> => {
258
+ return this.client.sendOperationRequest(args, spec);
259
+ };
260
+ const sendOperationFn = async (
261
+ args: coreClient.OperationArguments,
262
+ spec: coreClient.OperationSpec
263
+ ) => {
264
+ let currentRawResponse:
265
+ | coreClient.FullOperationResponse
266
+ | undefined = undefined;
267
+ const providedCallback = args.options?.onResponse;
268
+ const callback: coreClient.RawResponseCallback = (
269
+ rawResponse: coreClient.FullOperationResponse,
270
+ flatResponse: unknown
271
+ ) => {
272
+ currentRawResponse = rawResponse;
273
+ providedCallback?.(rawResponse, flatResponse);
274
+ };
275
+ const updatedArgs = {
276
+ ...args,
277
+ options: {
278
+ ...args.options,
279
+ onResponse: callback
280
+ }
281
+ };
282
+ const flatResponse = await directSendOperation(updatedArgs, spec);
283
+ return {
284
+ flatResponse,
285
+ rawResponse: {
286
+ statusCode: currentRawResponse!.status,
287
+ body: currentRawResponse!.parsedBody,
288
+ headers: currentRawResponse!.headers.toJSON()
289
+ }
290
+ };
291
+ };
292
+
293
+ const lro = createLroSpec({
294
+ sendOperationFn,
295
+ args: { resourceGroupName, monitorName, configurationName, options },
296
+ spec: updateOperationSpec
297
+ });
298
+ const poller = await createHttpPoller<
299
+ MonitoredSubscriptionsUpdateResponse,
300
+ OperationState<MonitoredSubscriptionsUpdateResponse>
301
+ >(lro, {
302
+ restoreFrom: options?.resumeFrom,
303
+ intervalInMs: options?.updateIntervalInMs
304
+ });
305
+ await poller.poll();
306
+ return poller;
307
+ }
308
+
309
+ /**
310
+ * Updates the subscriptions that are being monitored by the Datadog monitor resource
311
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
312
+ * @param monitorName Monitor resource name
313
+ * @param configurationName The configuration name. Only 'default' value is supported.
314
+ * @param options The options parameters.
315
+ */
316
+ async beginUpdateAndWait(
317
+ resourceGroupName: string,
318
+ monitorName: string,
319
+ configurationName: string,
320
+ options?: MonitoredSubscriptionsUpdateOptionalParams
321
+ ): Promise<MonitoredSubscriptionsUpdateResponse> {
322
+ const poller = await this.beginUpdate(
323
+ resourceGroupName,
324
+ monitorName,
325
+ configurationName,
326
+ options
327
+ );
328
+ return poller.pollUntilDone();
329
+ }
330
+
331
+ /**
332
+ * Updates the subscriptions that are being monitored by the Datadog monitor resource
333
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
334
+ * @param monitorName Monitor resource name
335
+ * @param configurationName Configuration name
336
+ * @param options The options parameters.
337
+ */
338
+ async beginDelete(
339
+ resourceGroupName: string,
340
+ monitorName: string,
341
+ configurationName: string,
342
+ options?: MonitoredSubscriptionsDeleteOptionalParams
343
+ ): Promise<SimplePollerLike<OperationState<void>, void>> {
344
+ const directSendOperation = async (
345
+ args: coreClient.OperationArguments,
346
+ spec: coreClient.OperationSpec
347
+ ): Promise<void> => {
348
+ return this.client.sendOperationRequest(args, spec);
349
+ };
350
+ const sendOperationFn = async (
351
+ args: coreClient.OperationArguments,
352
+ spec: coreClient.OperationSpec
353
+ ) => {
354
+ let currentRawResponse:
355
+ | coreClient.FullOperationResponse
356
+ | undefined = undefined;
357
+ const providedCallback = args.options?.onResponse;
358
+ const callback: coreClient.RawResponseCallback = (
359
+ rawResponse: coreClient.FullOperationResponse,
360
+ flatResponse: unknown
361
+ ) => {
362
+ currentRawResponse = rawResponse;
363
+ providedCallback?.(rawResponse, flatResponse);
364
+ };
365
+ const updatedArgs = {
366
+ ...args,
367
+ options: {
368
+ ...args.options,
369
+ onResponse: callback
370
+ }
371
+ };
372
+ const flatResponse = await directSendOperation(updatedArgs, spec);
373
+ return {
374
+ flatResponse,
375
+ rawResponse: {
376
+ statusCode: currentRawResponse!.status,
377
+ body: currentRawResponse!.parsedBody,
378
+ headers: currentRawResponse!.headers.toJSON()
379
+ }
380
+ };
381
+ };
382
+
383
+ const lro = createLroSpec({
384
+ sendOperationFn,
385
+ args: { resourceGroupName, monitorName, configurationName, options },
386
+ spec: deleteOperationSpec
387
+ });
388
+ const poller = await createHttpPoller<void, OperationState<void>>(lro, {
389
+ restoreFrom: options?.resumeFrom,
390
+ intervalInMs: options?.updateIntervalInMs
391
+ });
392
+ await poller.poll();
393
+ return poller;
394
+ }
395
+
396
+ /**
397
+ * Updates the subscriptions that are being monitored by the Datadog monitor resource
398
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
399
+ * @param monitorName Monitor resource name
400
+ * @param configurationName Configuration name
401
+ * @param options The options parameters.
402
+ */
403
+ async beginDeleteAndWait(
404
+ resourceGroupName: string,
405
+ monitorName: string,
406
+ configurationName: string,
407
+ options?: MonitoredSubscriptionsDeleteOptionalParams
408
+ ): Promise<void> {
409
+ const poller = await this.beginDelete(
410
+ resourceGroupName,
411
+ monitorName,
412
+ configurationName,
413
+ options
414
+ );
415
+ return poller.pollUntilDone();
416
+ }
417
+ }
418
+ // Operation Specifications
419
+ const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
420
+
421
+ const listOperationSpec: coreClient.OperationSpec = {
422
+ path:
423
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/monitoredSubscriptions",
424
+ httpMethod: "GET",
425
+ responses: {
426
+ 200: {
427
+ bodyMapper: Mappers.MonitoredSubscriptionPropertiesList
428
+ },
429
+ default: {
430
+ bodyMapper: Mappers.ErrorResponse
431
+ }
432
+ },
433
+ queryParameters: [Parameters.apiVersion],
434
+ urlParameters: [
435
+ Parameters.$host,
436
+ Parameters.subscriptionId,
437
+ Parameters.resourceGroupName,
438
+ Parameters.monitorName
439
+ ],
440
+ headerParameters: [Parameters.accept],
441
+ serializer
442
+ };
443
+ const getOperationSpec: coreClient.OperationSpec = {
444
+ path:
445
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/monitoredSubscriptions/{configurationName}",
446
+ httpMethod: "GET",
447
+ responses: {
448
+ 200: {
449
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
450
+ },
451
+ default: {
452
+ bodyMapper: Mappers.ErrorResponse
453
+ }
454
+ },
455
+ queryParameters: [Parameters.apiVersion],
456
+ urlParameters: [
457
+ Parameters.$host,
458
+ Parameters.subscriptionId,
459
+ Parameters.resourceGroupName,
460
+ Parameters.monitorName,
461
+ Parameters.configurationName
462
+ ],
463
+ headerParameters: [Parameters.accept],
464
+ serializer
465
+ };
466
+ const createorUpdateOperationSpec: coreClient.OperationSpec = {
467
+ path:
468
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/monitoredSubscriptions/{configurationName}",
469
+ httpMethod: "PUT",
470
+ responses: {
471
+ 200: {
472
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
473
+ },
474
+ 201: {
475
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
476
+ },
477
+ 202: {
478
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
479
+ },
480
+ 204: {
481
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
482
+ },
483
+ default: {
484
+ bodyMapper: Mappers.ErrorResponse
485
+ }
486
+ },
487
+ requestBody: Parameters.body6,
488
+ queryParameters: [Parameters.apiVersion],
489
+ urlParameters: [
490
+ Parameters.$host,
491
+ Parameters.subscriptionId,
492
+ Parameters.resourceGroupName,
493
+ Parameters.monitorName,
494
+ Parameters.configurationName
495
+ ],
496
+ headerParameters: [Parameters.accept, Parameters.contentType],
497
+ mediaType: "json",
498
+ serializer
499
+ };
500
+ const updateOperationSpec: coreClient.OperationSpec = {
501
+ path:
502
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/monitoredSubscriptions/{configurationName}",
503
+ httpMethod: "PATCH",
504
+ responses: {
505
+ 200: {
506
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
507
+ },
508
+ 201: {
509
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
510
+ },
511
+ 202: {
512
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
513
+ },
514
+ 204: {
515
+ bodyMapper: Mappers.MonitoredSubscriptionProperties
516
+ },
517
+ default: {
518
+ bodyMapper: Mappers.ErrorResponse
519
+ }
520
+ },
521
+ requestBody: Parameters.body6,
522
+ queryParameters: [Parameters.apiVersion],
523
+ urlParameters: [
524
+ Parameters.$host,
525
+ Parameters.subscriptionId,
526
+ Parameters.resourceGroupName,
527
+ Parameters.monitorName,
528
+ Parameters.configurationName
529
+ ],
530
+ headerParameters: [Parameters.accept, Parameters.contentType],
531
+ mediaType: "json",
532
+ serializer
533
+ };
534
+ const deleteOperationSpec: coreClient.OperationSpec = {
535
+ path:
536
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/monitoredSubscriptions/{configurationName}",
537
+ httpMethod: "DELETE",
538
+ responses: {
539
+ 200: {},
540
+ 201: {},
541
+ 202: {},
542
+ 204: {},
543
+ default: {
544
+ bodyMapper: Mappers.ErrorResponse
545
+ }
546
+ },
547
+ queryParameters: [Parameters.apiVersion],
548
+ urlParameters: [
549
+ Parameters.$host,
550
+ Parameters.subscriptionId,
551
+ Parameters.resourceGroupName,
552
+ Parameters.monitorName,
553
+ Parameters.configurationName
554
+ ],
555
+ headerParameters: [Parameters.accept],
556
+ serializer
557
+ };