@azure/monitor-ingestion 1.1.1-alpha.20250619.1 → 1.2.0

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 (281) hide show
  1. package/dist/browser/api/index.d.ts +4 -0
  2. package/dist/browser/api/index.d.ts.map +1 -0
  3. package/dist/browser/api/index.js +5 -0
  4. package/dist/browser/api/index.js.map +1 -0
  5. package/dist/browser/api/logsIngestionContext.d.ts +23 -0
  6. package/dist/browser/api/logsIngestionContext.d.ts.map +1 -0
  7. package/dist/browser/api/logsIngestionContext.js +39 -0
  8. package/dist/browser/api/logsIngestionContext.js.map +1 -0
  9. package/dist/browser/api/operations.d.ts +8 -0
  10. package/dist/browser/api/operations.d.ts.map +1 -0
  11. package/dist/browser/api/operations.js +34 -0
  12. package/dist/browser/api/operations.js.map +1 -0
  13. package/dist/browser/api/options.d.ts +21 -0
  14. package/dist/browser/api/options.d.ts.map +1 -0
  15. package/dist/browser/api/options.js +4 -0
  16. package/dist/browser/api/options.js.map +1 -0
  17. package/dist/browser/index.d.ts +3 -7
  18. package/dist/browser/index.d.ts.map +1 -1
  19. package/dist/browser/index.js +2 -7
  20. package/dist/browser/index.js.map +1 -1
  21. package/dist/browser/logger.d.ts +2 -0
  22. package/dist/browser/logger.d.ts.map +1 -0
  23. package/dist/browser/logger.js +5 -0
  24. package/dist/browser/logger.js.map +1 -0
  25. package/dist/browser/logsIngestionClient.d.ts +7 -20
  26. package/dist/browser/logsIngestionClient.d.ts.map +1 -1
  27. package/dist/browser/logsIngestionClient.js +14 -12
  28. package/dist/browser/logsIngestionClient.js.map +1 -1
  29. package/dist/browser/models/index.d.ts +2 -0
  30. package/dist/browser/models/index.d.ts.map +1 -0
  31. package/dist/browser/models/index.js +4 -0
  32. package/dist/browser/models/index.js.map +1 -0
  33. package/dist/{esm → browser/models}/models.d.ts +15 -10
  34. package/dist/browser/models/models.d.ts.map +1 -0
  35. package/dist/browser/{models.js → models/models.js} +24 -0
  36. package/dist/browser/models/models.js.map +1 -0
  37. package/dist/browser/static-helpers/urlTemplate.d.ts +5 -0
  38. package/dist/browser/static-helpers/urlTemplate.d.ts.map +1 -0
  39. package/dist/browser/static-helpers/urlTemplate.js +186 -0
  40. package/dist/browser/static-helpers/urlTemplate.js.map +1 -0
  41. package/dist/commonjs/api/index.d.ts +4 -0
  42. package/dist/commonjs/api/index.d.ts.map +1 -0
  43. package/dist/commonjs/api/index.js +10 -0
  44. package/dist/commonjs/api/index.js.map +1 -0
  45. package/dist/commonjs/api/logsIngestionContext.d.ts +23 -0
  46. package/dist/commonjs/api/logsIngestionContext.d.ts.map +1 -0
  47. package/dist/commonjs/api/logsIngestionContext.js +42 -0
  48. package/dist/commonjs/api/logsIngestionContext.js.map +1 -0
  49. package/dist/commonjs/api/operations.d.ts +8 -0
  50. package/dist/commonjs/api/operations.d.ts.map +1 -0
  51. package/dist/commonjs/api/operations.js +39 -0
  52. package/dist/commonjs/api/operations.js.map +1 -0
  53. package/dist/commonjs/api/options.d.ts +21 -0
  54. package/dist/commonjs/api/options.d.ts.map +1 -0
  55. package/dist/commonjs/api/options.js +5 -0
  56. package/dist/commonjs/api/options.js.map +1 -0
  57. package/dist/commonjs/index.d.ts +3 -7
  58. package/dist/commonjs/index.d.ts.map +1 -1
  59. package/dist/commonjs/index.js +9 -10
  60. package/dist/commonjs/index.js.map +1 -1
  61. package/dist/commonjs/logger.d.ts +2 -0
  62. package/dist/commonjs/logger.d.ts.map +1 -0
  63. package/dist/commonjs/logger.js +8 -0
  64. package/dist/commonjs/logger.js.map +1 -0
  65. package/dist/commonjs/logsIngestionClient.d.ts +7 -20
  66. package/dist/commonjs/logsIngestionClient.d.ts.map +1 -1
  67. package/dist/commonjs/logsIngestionClient.js +14 -12
  68. package/dist/commonjs/logsIngestionClient.js.map +1 -1
  69. package/dist/commonjs/models/index.d.ts +2 -0
  70. package/dist/commonjs/models/index.d.ts.map +1 -0
  71. package/dist/commonjs/models/index.js +12 -0
  72. package/dist/commonjs/models/index.js.map +1 -0
  73. package/dist/{react-native → commonjs/models}/models.d.ts +15 -10
  74. package/dist/commonjs/models/models.d.ts.map +1 -0
  75. package/dist/commonjs/{models.js → models/models.js} +27 -3
  76. package/dist/commonjs/models/models.js.map +1 -0
  77. package/dist/commonjs/static-helpers/urlTemplate.d.ts +5 -0
  78. package/dist/commonjs/static-helpers/urlTemplate.d.ts.map +1 -0
  79. package/dist/commonjs/static-helpers/urlTemplate.js +189 -0
  80. package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -0
  81. package/dist/esm/api/index.d.ts +4 -0
  82. package/dist/esm/api/index.d.ts.map +1 -0
  83. package/dist/esm/api/index.js +5 -0
  84. package/dist/esm/api/index.js.map +1 -0
  85. package/dist/esm/api/logsIngestionContext.d.ts +23 -0
  86. package/dist/esm/api/logsIngestionContext.d.ts.map +1 -0
  87. package/dist/esm/api/logsIngestionContext.js +39 -0
  88. package/dist/esm/api/logsIngestionContext.js.map +1 -0
  89. package/dist/esm/api/operations.d.ts +8 -0
  90. package/dist/esm/api/operations.d.ts.map +1 -0
  91. package/dist/esm/api/operations.js +34 -0
  92. package/dist/esm/api/operations.js.map +1 -0
  93. package/dist/esm/api/options.d.ts +21 -0
  94. package/dist/esm/api/options.d.ts.map +1 -0
  95. package/dist/esm/api/options.js +4 -0
  96. package/dist/esm/api/options.js.map +1 -0
  97. package/dist/esm/index.d.ts +3 -7
  98. package/dist/esm/index.d.ts.map +1 -1
  99. package/dist/esm/index.js +2 -7
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/logger.d.ts +2 -0
  102. package/dist/esm/logger.d.ts.map +1 -0
  103. package/dist/esm/logger.js +5 -0
  104. package/dist/esm/logger.js.map +1 -0
  105. package/dist/esm/logsIngestionClient.d.ts +7 -20
  106. package/dist/esm/logsIngestionClient.d.ts.map +1 -1
  107. package/dist/esm/logsIngestionClient.js +14 -12
  108. package/dist/esm/logsIngestionClient.js.map +1 -1
  109. package/dist/esm/models/index.d.ts +2 -0
  110. package/dist/esm/models/index.d.ts.map +1 -0
  111. package/dist/esm/models/index.js +4 -0
  112. package/dist/esm/models/index.js.map +1 -0
  113. package/dist/{browser → esm/models}/models.d.ts +15 -10
  114. package/dist/esm/models/models.d.ts.map +1 -0
  115. package/dist/{react-native → esm/models}/models.js +24 -0
  116. package/dist/esm/models/models.js.map +1 -0
  117. package/dist/esm/static-helpers/urlTemplate.d.ts +5 -0
  118. package/dist/esm/static-helpers/urlTemplate.d.ts.map +1 -0
  119. package/dist/esm/static-helpers/urlTemplate.js +186 -0
  120. package/dist/esm/static-helpers/urlTemplate.js.map +1 -0
  121. package/dist/react-native/api/index.d.ts +4 -0
  122. package/dist/react-native/api/index.d.ts.map +1 -0
  123. package/dist/react-native/api/index.js +5 -0
  124. package/dist/react-native/api/index.js.map +1 -0
  125. package/dist/react-native/api/logsIngestionContext.d.ts +23 -0
  126. package/dist/react-native/api/logsIngestionContext.d.ts.map +1 -0
  127. package/dist/react-native/api/logsIngestionContext.js +39 -0
  128. package/dist/react-native/api/logsIngestionContext.js.map +1 -0
  129. package/dist/react-native/api/operations.d.ts +8 -0
  130. package/dist/react-native/api/operations.d.ts.map +1 -0
  131. package/dist/react-native/api/operations.js +34 -0
  132. package/dist/react-native/api/operations.js.map +1 -0
  133. package/dist/react-native/api/options.d.ts +21 -0
  134. package/dist/react-native/api/options.d.ts.map +1 -0
  135. package/dist/react-native/api/options.js +4 -0
  136. package/dist/react-native/api/options.js.map +1 -0
  137. package/dist/react-native/index.d.ts +3 -7
  138. package/dist/react-native/index.d.ts.map +1 -1
  139. package/dist/react-native/index.js +2 -7
  140. package/dist/react-native/index.js.map +1 -1
  141. package/dist/react-native/logger.d.ts +2 -0
  142. package/dist/react-native/logger.d.ts.map +1 -0
  143. package/dist/react-native/logger.js +5 -0
  144. package/dist/react-native/logger.js.map +1 -0
  145. package/dist/react-native/logsIngestionClient.d.ts +7 -20
  146. package/dist/react-native/logsIngestionClient.d.ts.map +1 -1
  147. package/dist/react-native/logsIngestionClient.js +14 -12
  148. package/dist/react-native/logsIngestionClient.js.map +1 -1
  149. package/dist/react-native/models/index.d.ts +2 -0
  150. package/dist/react-native/models/index.d.ts.map +1 -0
  151. package/dist/react-native/models/index.js +4 -0
  152. package/dist/react-native/models/index.js.map +1 -0
  153. package/dist/{commonjs → react-native/models}/models.d.ts +15 -10
  154. package/dist/react-native/models/models.d.ts.map +1 -0
  155. package/dist/{esm → react-native/models}/models.js +24 -0
  156. package/dist/react-native/models/models.js.map +1 -0
  157. package/dist/react-native/static-helpers/urlTemplate.d.ts +5 -0
  158. package/dist/react-native/static-helpers/urlTemplate.d.ts.map +1 -0
  159. package/dist/react-native/static-helpers/urlTemplate.js +186 -0
  160. package/dist/react-native/static-helpers/urlTemplate.js.map +1 -0
  161. package/package.json +67 -66
  162. package/dist/browser/constants.d.ts +0 -22
  163. package/dist/browser/constants.d.ts.map +0 -1
  164. package/dist/browser/constants.js +0 -25
  165. package/dist/browser/constants.js.map +0 -1
  166. package/dist/browser/generated/generatedMonitorIngestionClient.d.ts +0 -23
  167. package/dist/browser/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
  168. package/dist/browser/generated/generatedMonitorIngestionClient.js +0 -59
  169. package/dist/browser/generated/generatedMonitorIngestionClient.js.map +0 -1
  170. package/dist/browser/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
  171. package/dist/browser/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
  172. package/dist/browser/generated/generatedMonitorIngestionClientContext.js +0 -47
  173. package/dist/browser/generated/generatedMonitorIngestionClientContext.js.map +0 -1
  174. package/dist/browser/generated/index.d.ts +0 -4
  175. package/dist/browser/generated/index.d.ts.map +0 -1
  176. package/dist/browser/generated/index.js +0 -11
  177. package/dist/browser/generated/index.js.map +0 -1
  178. package/dist/browser/generated/models/index.d.ts +0 -67
  179. package/dist/browser/generated/models/index.d.ts.map +0 -1
  180. package/dist/browser/generated/models/index.js +0 -9
  181. package/dist/browser/generated/models/index.js.map +0 -1
  182. package/dist/browser/generated/models/mappers.d.ts +0 -6
  183. package/dist/browser/generated/models/mappers.d.ts.map +0 -1
  184. package/dist/browser/generated/models/mappers.js +0 -115
  185. package/dist/browser/generated/models/mappers.js.map +0 -1
  186. package/dist/browser/generated/models/parameters.d.ts +0 -11
  187. package/dist/browser/generated/models/parameters.d.ts.map +0 -1
  188. package/dist/browser/generated/models/parameters.js +0 -106
  189. package/dist/browser/generated/models/parameters.js.map +0 -1
  190. package/dist/browser/models.d.ts.map +0 -1
  191. package/dist/browser/models.js.map +0 -1
  192. package/dist/commonjs/constants.d.ts +0 -22
  193. package/dist/commonjs/constants.d.ts.map +0 -1
  194. package/dist/commonjs/constants.js +0 -28
  195. package/dist/commonjs/constants.js.map +0 -1
  196. package/dist/commonjs/generated/generatedMonitorIngestionClient.d.ts +0 -23
  197. package/dist/commonjs/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
  198. package/dist/commonjs/generated/generatedMonitorIngestionClient.js +0 -64
  199. package/dist/commonjs/generated/generatedMonitorIngestionClient.js.map +0 -1
  200. package/dist/commonjs/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
  201. package/dist/commonjs/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
  202. package/dist/commonjs/generated/generatedMonitorIngestionClientContext.js +0 -52
  203. package/dist/commonjs/generated/generatedMonitorIngestionClientContext.js.map +0 -1
  204. package/dist/commonjs/generated/index.d.ts +0 -4
  205. package/dist/commonjs/generated/index.d.ts.map +0 -1
  206. package/dist/commonjs/generated/index.js +0 -17
  207. package/dist/commonjs/generated/index.js.map +0 -1
  208. package/dist/commonjs/generated/models/index.d.ts +0 -67
  209. package/dist/commonjs/generated/models/index.d.ts.map +0 -1
  210. package/dist/commonjs/generated/models/index.js +0 -10
  211. package/dist/commonjs/generated/models/index.js.map +0 -1
  212. package/dist/commonjs/generated/models/mappers.d.ts +0 -6
  213. package/dist/commonjs/generated/models/mappers.d.ts.map +0 -1
  214. package/dist/commonjs/generated/models/mappers.js +0 -118
  215. package/dist/commonjs/generated/models/mappers.js.map +0 -1
  216. package/dist/commonjs/generated/models/parameters.d.ts +0 -11
  217. package/dist/commonjs/generated/models/parameters.d.ts.map +0 -1
  218. package/dist/commonjs/generated/models/parameters.js +0 -109
  219. package/dist/commonjs/generated/models/parameters.js.map +0 -1
  220. package/dist/commonjs/models.d.ts.map +0 -1
  221. package/dist/commonjs/models.js.map +0 -1
  222. package/dist/esm/constants.d.ts +0 -22
  223. package/dist/esm/constants.d.ts.map +0 -1
  224. package/dist/esm/constants.js +0 -25
  225. package/dist/esm/constants.js.map +0 -1
  226. package/dist/esm/generated/generatedMonitorIngestionClient.d.ts +0 -23
  227. package/dist/esm/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
  228. package/dist/esm/generated/generatedMonitorIngestionClient.js +0 -59
  229. package/dist/esm/generated/generatedMonitorIngestionClient.js.map +0 -1
  230. package/dist/esm/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
  231. package/dist/esm/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
  232. package/dist/esm/generated/generatedMonitorIngestionClientContext.js +0 -47
  233. package/dist/esm/generated/generatedMonitorIngestionClientContext.js.map +0 -1
  234. package/dist/esm/generated/index.d.ts +0 -4
  235. package/dist/esm/generated/index.d.ts.map +0 -1
  236. package/dist/esm/generated/index.js +0 -11
  237. package/dist/esm/generated/index.js.map +0 -1
  238. package/dist/esm/generated/models/index.d.ts +0 -67
  239. package/dist/esm/generated/models/index.d.ts.map +0 -1
  240. package/dist/esm/generated/models/index.js +0 -9
  241. package/dist/esm/generated/models/index.js.map +0 -1
  242. package/dist/esm/generated/models/mappers.d.ts +0 -6
  243. package/dist/esm/generated/models/mappers.d.ts.map +0 -1
  244. package/dist/esm/generated/models/mappers.js +0 -115
  245. package/dist/esm/generated/models/mappers.js.map +0 -1
  246. package/dist/esm/generated/models/parameters.d.ts +0 -11
  247. package/dist/esm/generated/models/parameters.d.ts.map +0 -1
  248. package/dist/esm/generated/models/parameters.js +0 -106
  249. package/dist/esm/generated/models/parameters.js.map +0 -1
  250. package/dist/esm/models.d.ts.map +0 -1
  251. package/dist/esm/models.js.map +0 -1
  252. package/dist/react-native/constants.d.ts +0 -22
  253. package/dist/react-native/constants.d.ts.map +0 -1
  254. package/dist/react-native/constants.js +0 -25
  255. package/dist/react-native/constants.js.map +0 -1
  256. package/dist/react-native/generated/generatedMonitorIngestionClient.d.ts +0 -23
  257. package/dist/react-native/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
  258. package/dist/react-native/generated/generatedMonitorIngestionClient.js +0 -59
  259. package/dist/react-native/generated/generatedMonitorIngestionClient.js.map +0 -1
  260. package/dist/react-native/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
  261. package/dist/react-native/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
  262. package/dist/react-native/generated/generatedMonitorIngestionClientContext.js +0 -47
  263. package/dist/react-native/generated/generatedMonitorIngestionClientContext.js.map +0 -1
  264. package/dist/react-native/generated/index.d.ts +0 -4
  265. package/dist/react-native/generated/index.d.ts.map +0 -1
  266. package/dist/react-native/generated/index.js +0 -11
  267. package/dist/react-native/generated/index.js.map +0 -1
  268. package/dist/react-native/generated/models/index.d.ts +0 -67
  269. package/dist/react-native/generated/models/index.d.ts.map +0 -1
  270. package/dist/react-native/generated/models/index.js +0 -9
  271. package/dist/react-native/generated/models/index.js.map +0 -1
  272. package/dist/react-native/generated/models/mappers.d.ts +0 -6
  273. package/dist/react-native/generated/models/mappers.d.ts.map +0 -1
  274. package/dist/react-native/generated/models/mappers.js +0 -115
  275. package/dist/react-native/generated/models/mappers.js.map +0 -1
  276. package/dist/react-native/generated/models/parameters.d.ts +0 -11
  277. package/dist/react-native/generated/models/parameters.d.ts.map +0 -1
  278. package/dist/react-native/generated/models/parameters.js +0 -106
  279. package/dist/react-native/generated/models/parameters.js.map +0 -1
  280. package/dist/react-native/models.d.ts.map +0 -1
  281. package/dist/react-native/models.js.map +0 -1
@@ -0,0 +1,186 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ // ---------------------
4
+ // helpers
5
+ // ---------------------
6
+ function encodeComponent(val, reserved, op) {
7
+ return (reserved !== null && reserved !== void 0 ? reserved : op === "+") || op === "#"
8
+ ? encodeReservedComponent(val)
9
+ : encodeRFC3986URIComponent(val);
10
+ }
11
+ function encodeReservedComponent(str) {
12
+ return str
13
+ .split(/(%[0-9A-Fa-f]{2})/g)
14
+ .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))
15
+ .join("");
16
+ }
17
+ function encodeRFC3986URIComponent(str) {
18
+ return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
19
+ }
20
+ function isDefined(val) {
21
+ return val !== undefined && val !== null;
22
+ }
23
+ function getNamedAndIfEmpty(op) {
24
+ return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""];
25
+ }
26
+ function getFirstOrSep(op, isFirst = false) {
27
+ if (isFirst) {
28
+ return !op || op === "+" ? "" : op;
29
+ }
30
+ else if (!op || op === "+" || op === "#") {
31
+ return ",";
32
+ }
33
+ else if (op === "?") {
34
+ return "&";
35
+ }
36
+ else {
37
+ return op;
38
+ }
39
+ }
40
+ function getExpandedValue(option) {
41
+ let isFirst = option.isFirst;
42
+ const { op, varName, varValue: value, reserved } = option;
43
+ const vals = [];
44
+ const [named, ifEmpty] = getNamedAndIfEmpty(op);
45
+ if (Array.isArray(value)) {
46
+ for (const val of value.filter(isDefined)) {
47
+ // prepare the following parts: separator, varName, value
48
+ vals.push(`${getFirstOrSep(op, isFirst)}`);
49
+ if (named && varName) {
50
+ vals.push(`${encodeURIComponent(varName)}`);
51
+ if (val === "") {
52
+ vals.push(ifEmpty);
53
+ }
54
+ else {
55
+ vals.push("=");
56
+ }
57
+ }
58
+ vals.push(encodeComponent(val, reserved, op));
59
+ isFirst = false;
60
+ }
61
+ }
62
+ else if (typeof value === "object") {
63
+ for (const key of Object.keys(value)) {
64
+ const val = value[key];
65
+ if (!isDefined(val)) {
66
+ continue;
67
+ }
68
+ // prepare the following parts: separator, key, value
69
+ vals.push(`${getFirstOrSep(op, isFirst)}`);
70
+ if (key) {
71
+ vals.push(`${encodeURIComponent(key)}`);
72
+ if (named && val === "") {
73
+ vals.push(ifEmpty);
74
+ }
75
+ else {
76
+ vals.push("=");
77
+ }
78
+ }
79
+ vals.push(encodeComponent(val, reserved, op));
80
+ isFirst = false;
81
+ }
82
+ }
83
+ return vals.join("");
84
+ }
85
+ function getNonExpandedValue(option) {
86
+ const { op, varName, varValue: value, isFirst, reserved } = option;
87
+ const vals = [];
88
+ const first = getFirstOrSep(op, isFirst);
89
+ const [named, ifEmpty] = getNamedAndIfEmpty(op);
90
+ if (named && varName) {
91
+ vals.push(encodeComponent(varName, reserved, op));
92
+ if (value === "") {
93
+ if (!ifEmpty) {
94
+ vals.push(ifEmpty);
95
+ }
96
+ return !vals.join("") ? undefined : `${first}${vals.join("")}`;
97
+ }
98
+ vals.push("=");
99
+ }
100
+ const items = [];
101
+ if (Array.isArray(value)) {
102
+ for (const val of value.filter(isDefined)) {
103
+ items.push(encodeComponent(val, reserved, op));
104
+ }
105
+ }
106
+ else if (typeof value === "object") {
107
+ for (const key of Object.keys(value)) {
108
+ if (!isDefined(value[key])) {
109
+ continue;
110
+ }
111
+ items.push(encodeRFC3986URIComponent(key));
112
+ items.push(encodeComponent(value[key], reserved, op));
113
+ }
114
+ }
115
+ vals.push(items.join(","));
116
+ return !vals.join(",") ? undefined : `${first}${vals.join("")}`;
117
+ }
118
+ function getVarValue(option) {
119
+ const { op, varName, modifier, isFirst, reserved, varValue: value } = option;
120
+ if (!isDefined(value)) {
121
+ return undefined;
122
+ }
123
+ else if (["string", "number", "boolean"].includes(typeof value)) {
124
+ let val = value.toString();
125
+ const [named, ifEmpty] = getNamedAndIfEmpty(op);
126
+ const vals = [getFirstOrSep(op, isFirst)];
127
+ if (named && varName) {
128
+ // No need to encode varName considering it is already encoded
129
+ vals.push(varName);
130
+ if (val === "") {
131
+ vals.push(ifEmpty);
132
+ }
133
+ else {
134
+ vals.push("=");
135
+ }
136
+ }
137
+ if (modifier && modifier !== "*") {
138
+ val = val.substring(0, parseInt(modifier, 10));
139
+ }
140
+ vals.push(encodeComponent(val, reserved, op));
141
+ return vals.join("");
142
+ }
143
+ else if (modifier === "*") {
144
+ return getExpandedValue(option);
145
+ }
146
+ else {
147
+ return getNonExpandedValue(option);
148
+ }
149
+ }
150
+ // ---------------------------------------------------------------------------------------------------
151
+ // This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.
152
+ // ---------------------------------------------------------------------------------------------------
153
+ export function expandUrlTemplate(template, context, option) {
154
+ return template.replace(/\{([^{}]+)\}|([^{}]+)/g, (_, expr, text) => {
155
+ if (!expr) {
156
+ return encodeReservedComponent(text);
157
+ }
158
+ let op;
159
+ let expressionToParse = expr;
160
+ if (["+", "#", ".", "/", ";", "?", "&"].includes(expressionToParse[0])) {
161
+ op = expressionToParse[0];
162
+ expressionToParse = expressionToParse.slice(1);
163
+ }
164
+ const varList = expressionToParse.split(/,/g);
165
+ const result = [];
166
+ for (const varSpec of varList) {
167
+ const varMatch = /([^:*]*)(?::(\d+)|(\*))?/.exec(varSpec);
168
+ if (!varMatch || !varMatch[1]) {
169
+ continue;
170
+ }
171
+ const varValue = getVarValue({
172
+ isFirst: result.length === 0,
173
+ op,
174
+ varValue: context[varMatch[1]],
175
+ varName: varMatch[1],
176
+ modifier: varMatch[2] || varMatch[3],
177
+ reserved: option === null || option === void 0 ? void 0 : option.allowReserved,
178
+ });
179
+ if (varValue) {
180
+ result.push(varValue);
181
+ }
182
+ }
183
+ return result.join("");
184
+ });
185
+ }
186
+ //# sourceMappingURL=urlTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlTemplate.js","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// ---------------------\n// interfaces\n// ---------------------\ninterface ValueOptions {\n isFirst: boolean; // is first value in the expression\n op?: string; // operator\n varValue?: any; // variable value\n varName?: string; // variable name\n modifier?: string; // modifier e.g *\n reserved?: boolean; // if true we'll keep reserved words with not encoding\n}\n\nexport interface UrlTemplateOptions {\n // if set to true, reserved characters will not be encoded\n allowReserved?: boolean;\n}\n\n// ---------------------\n// helpers\n// ---------------------\nfunction encodeComponent(val: string, reserved?: boolean, op?: string): string {\n return (reserved ?? op === \"+\") || op === \"#\"\n ? encodeReservedComponent(val)\n : encodeRFC3986URIComponent(val);\n}\n\nfunction encodeReservedComponent(str: string): string {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part))\n .join(\"\");\n}\n\nfunction encodeRFC3986URIComponent(str: string): string {\n return encodeURIComponent(str).replace(\n /[!'()*]/g,\n (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`,\n );\n}\n\nfunction isDefined(val: any): boolean {\n return val !== undefined && val !== null;\n}\n\nfunction getNamedAndIfEmpty(op?: string): [boolean, string] {\n return [!!op && [\";\", \"?\", \"&\"].includes(op), !!op && [\"?\", \"&\"].includes(op) ? \"=\" : \"\"];\n}\n\nfunction getFirstOrSep(op?: string, isFirst = false): string {\n if (isFirst) {\n return !op || op === \"+\" ? \"\" : op;\n } else if (!op || op === \"+\" || op === \"#\") {\n return \",\";\n } else if (op === \"?\") {\n return \"&\";\n } else {\n return op;\n }\n}\n\nfunction getExpandedValue(option: ValueOptions): string {\n let isFirst = option.isFirst;\n const { op, varName, varValue: value, reserved } = option;\n const vals: string[] = [];\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n // prepare the following parts: separator, varName, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (named && varName) {\n vals.push(`${encodeURIComponent(varName)}`);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n const val = value[key];\n if (!isDefined(val)) {\n continue;\n }\n // prepare the following parts: separator, key, value\n vals.push(`${getFirstOrSep(op, isFirst)}`);\n if (key) {\n vals.push(`${encodeURIComponent(key)}`);\n if (named && val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n vals.push(encodeComponent(val, reserved, op));\n isFirst = false;\n }\n }\n return vals.join(\"\");\n}\n\nfunction getNonExpandedValue(option: ValueOptions): string | undefined {\n const { op, varName, varValue: value, isFirst, reserved } = option;\n const vals: string[] = [];\n const first = getFirstOrSep(op, isFirst);\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n if (named && varName) {\n vals.push(encodeComponent(varName, reserved, op));\n if (value === \"\") {\n if (!ifEmpty) {\n vals.push(ifEmpty);\n }\n return !vals.join(\"\") ? undefined : `${first}${vals.join(\"\")}`;\n }\n vals.push(\"=\");\n }\n\n const items = [];\n if (Array.isArray(value)) {\n for (const val of value.filter(isDefined)) {\n items.push(encodeComponent(val, reserved, op));\n }\n } else if (typeof value === \"object\") {\n for (const key of Object.keys(value)) {\n if (!isDefined(value[key])) {\n continue;\n }\n items.push(encodeRFC3986URIComponent(key));\n items.push(encodeComponent(value[key], reserved, op));\n }\n }\n vals.push(items.join(\",\"));\n return !vals.join(\",\") ? undefined : `${first}${vals.join(\"\")}`;\n}\n\nfunction getVarValue(option: ValueOptions): string | undefined {\n const { op, varName, modifier, isFirst, reserved, varValue: value } = option;\n\n if (!isDefined(value)) {\n return undefined;\n } else if ([\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n let val = value.toString();\n const [named, ifEmpty] = getNamedAndIfEmpty(op);\n const vals: string[] = [getFirstOrSep(op, isFirst)];\n if (named && varName) {\n // No need to encode varName considering it is already encoded\n vals.push(varName);\n if (val === \"\") {\n vals.push(ifEmpty);\n } else {\n vals.push(\"=\");\n }\n }\n if (modifier && modifier !== \"*\") {\n val = val.substring(0, parseInt(modifier, 10));\n }\n vals.push(encodeComponent(val, reserved, op));\n return vals.join(\"\");\n } else if (modifier === \"*\") {\n return getExpandedValue(option);\n } else {\n return getNonExpandedValue(option);\n }\n}\n\n// ---------------------------------------------------------------------------------------------------\n// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570.\n// ---------------------------------------------------------------------------------------------------\nexport function expandUrlTemplate(\n template: string,\n context: Record<string, any>,\n option?: UrlTemplateOptions,\n): string {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, (_, expr, text) => {\n if (!expr) {\n return encodeReservedComponent(text);\n }\n let op;\n let expressionToParse = expr;\n if ([\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"].includes(expressionToParse[0])) {\n op = expressionToParse[0];\n expressionToParse = expressionToParse.slice(1);\n }\n const varList = expressionToParse.split(/,/g);\n const result = [];\n for (const varSpec of varList) {\n const varMatch = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(varSpec);\n if (!varMatch || !varMatch[1]) {\n continue;\n }\n const varValue = getVarValue({\n isFirst: result.length === 0,\n op,\n varValue: context[varMatch[1]],\n varName: varMatch[1],\n modifier: varMatch[2] || varMatch[3],\n reserved: option?.allowReserved,\n });\n if (varValue) {\n result.push(varValue);\n }\n }\n return result.join(\"\");\n });\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export { createLogsIngestion, LogsIngestionContext, LogsIngestionClientOptions, } from "./logsIngestionContext.js";
2
+ export { upload } from "./operations.js";
3
+ export { LogsUploadOptions } from "./options.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.upload = exports.createLogsIngestion = void 0;
6
+ var logsIngestionContext_js_1 = require("./logsIngestionContext.js");
7
+ Object.defineProperty(exports, "createLogsIngestion", { enumerable: true, get: function () { return logsIngestionContext_js_1.createLogsIngestion; } });
8
+ var operations_js_1 = require("./operations.js");
9
+ Object.defineProperty(exports, "upload", { enumerable: true, get: function () { return operations_js_1.upload; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,qEAImC;AAHjC,8HAAA,mBAAmB,OAAA;AAIrB,iDAAyC;AAAhC,uGAAA,MAAM,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n createLogsIngestion,\n LogsIngestionContext,\n LogsIngestionClientOptions,\n} from \"./logsIngestionContext.js\";\nexport { upload } from \"./operations.js\";\nexport { LogsUploadOptions } from \"./options.js\";\n"]}
@@ -0,0 +1,23 @@
1
+ import type { Client, ClientOptions } from "@azure-rest/core-client";
2
+ import type { TokenCredential } from "@azure/core-auth";
3
+ /** Azure Monitor data collection client. */
4
+ export interface LogsIngestionContext extends Client {
5
+ /** The API version to use for this operation. */
6
+ /** Known values of {@link KnownVersions} that the service accepts. */
7
+ apiVersion: string;
8
+ }
9
+ /** Optional parameters for the client. */
10
+ export interface LogsIngestionClientOptions extends ClientOptions {
11
+ /** The API version to use for this operation. */
12
+ /** Known values of {@link KnownVersions} that the service accepts. */
13
+ apiVersion?: string;
14
+ /**
15
+ * The Audience to use for authentication with Microsoft Entra ID. The
16
+ * audience is not considered when using a shared key.
17
+ * {@link KnownMonitorAudience} can be used interchangeably with audience
18
+ */
19
+ audience?: string;
20
+ }
21
+ /** Azure Monitor data collection client. */
22
+ export declare function createLogsIngestion(endpoint: string, tokenCredential: TokenCredential, options?: LogsIngestionClientOptions): LogsIngestionContext;
23
+ //# sourceMappingURL=logsIngestionContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logsIngestionContext.d.ts","sourceRoot":"","sources":["../../../src/api/logsIngestionContext.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,4CAA4C;AAC5C,MAAM,WAAW,oBAAqB,SAAQ,MAAM;IAClD,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,4CAA4C;AAC5C,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,0BAA+B,GACvC,oBAAoB,CAqCtB"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.createLogsIngestion = createLogsIngestion;
6
+ const tslib_1 = require("tslib");
7
+ const logger_js_1 = require("../logger.js");
8
+ const models_js_1 = require("../models/models.js");
9
+ const core_client_1 = require("@azure-rest/core-client");
10
+ /** Azure Monitor data collection client. */
11
+ function createLogsIngestion(endpoint, tokenCredential, options = {}) {
12
+ var _a, _b, _c, _d, _e, _f, _g;
13
+ const endpointUrl = (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUrl) !== null && _b !== void 0 ? _b : String(endpoint);
14
+ const prefixFromOptions = (_c = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _c === void 0 ? void 0 : _c.userAgentPrefix;
15
+ const userAgentInfo = `azsdk-js-monitor-ingestion/1.2.0`;
16
+ const userAgentPrefix = prefixFromOptions
17
+ ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`
18
+ : `azsdk-js-api ${userAgentInfo}`;
19
+ const scope = (options === null || options === void 0 ? void 0 : options.audience)
20
+ ? `${options.audience}/.default`
21
+ : `${models_js_1.KnownMonitorAudience.AzurePublicCloud}/.default`;
22
+ const _h = Object.assign(Object.assign({}, options), { userAgentOptions: { userAgentPrefix }, loggingOptions: { logger: (_e = (_d = options.loggingOptions) === null || _d === void 0 ? void 0 : _d.logger) !== null && _e !== void 0 ? _e : logger_js_1.logger.info }, credentials: {
23
+ scopes: scope ? [scope] : (_f = options.credentials) === null || _f === void 0 ? void 0 : _f.scopes,
24
+ } }), { apiVersion: _ } = _h, updatedOptions = tslib_1.__rest(_h, ["apiVersion"]);
25
+ const clientContext = (0, core_client_1.getClient)(endpointUrl, tokenCredential, updatedOptions);
26
+ clientContext.pipeline.removePolicy({ name: "ApiVersionPolicy" });
27
+ const apiVersion = (_g = options.apiVersion) !== null && _g !== void 0 ? _g : "2023-01-01";
28
+ clientContext.pipeline.addPolicy({
29
+ name: "ClientApiVersionPolicy",
30
+ sendRequest: (req, next) => {
31
+ // Use the apiVersion defined in request url directly
32
+ // Append one if there is no apiVersion and we have one at client options
33
+ const url = new URL(req.url);
34
+ if (!url.searchParams.get("api-version")) {
35
+ req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${apiVersion}`;
36
+ }
37
+ return next(req);
38
+ },
39
+ });
40
+ return Object.assign(Object.assign({}, clientContext), { apiVersion });
41
+ }
42
+ //# sourceMappingURL=logsIngestionContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logsIngestionContext.js","sourceRoot":"","sources":["../../../src/api/logsIngestionContext.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AA8BlC,kDAyCC;;AArED,4CAAsC;AACtC,mDAA0E;AAE1E,yDAAoD;AAwBpD,4CAA4C;AAC5C,SAAgB,mBAAmB,CACjC,QAAgB,EAChB,eAAgC,EAChC,UAAsC,EAAE;;IAExC,MAAM,WAAW,GAAG,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,OAAO,mCAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,kCAAkC,CAAC;IACzD,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,GAAG,iBAAiB,iBAAiB,aAAa,EAAE;QACtD,CAAC,CAAC,gBAAgB,aAAa,EAAE,CAAC;IACpC,MAAM,KAAK,GAAW,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;QACrC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,WAAW;QAChC,CAAC,CAAC,GAAG,gCAAoB,CAAC,gBAAgB,WAAW,CAAC;IACxD,MAAM,qCACD,OAAO,KACV,gBAAgB,EAAE,EAAE,eAAe,EAAE,EACrC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,MAAM,mCAAI,kBAAM,CAAC,IAAI,EAAE,EACzE,WAAW,EAAE;YACX,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,WAAW,0CAAE,MAAM;SACtD,GACF,EAPK,EAAE,UAAU,EAAE,CAAC,OAOpB,EAPyB,cAAc,sBAAlC,cAAoC,CAOzC,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,uBAAS,EAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC9E,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,YAAY,CAAC;IACtD,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACzD,eAAe,UAAU,EAAE,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,gCAAK,aAAa,KAAE,UAAU,GAA0B,CAAC;AAClE,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"../logger.js\";\nimport { KnownMonitorAudience, KnownVersions } from \"../models/models.js\";\nimport type { Client, ClientOptions } from \"@azure-rest/core-client\";\nimport { getClient } from \"@azure-rest/core-client\";\nimport type { TokenCredential } from \"@azure/core-auth\";\n\n/** Azure Monitor data collection client. */\nexport interface LogsIngestionContext extends Client {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion: string;\n}\n\n/** Optional parameters for the client. */\nexport interface LogsIngestionClientOptions extends ClientOptions {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion?: string;\n\n /**\n * The Audience to use for authentication with Microsoft Entra ID. The\n * audience is not considered when using a shared key.\n * {@link KnownMonitorAudience} can be used interchangeably with audience\n */\n audience?: string;\n}\n\n/** Azure Monitor data collection client. */\nexport function createLogsIngestion(\n endpoint: string,\n tokenCredential: TokenCredential,\n options: LogsIngestionClientOptions = {},\n): LogsIngestionContext {\n const endpointUrl = options.endpoint ?? options.baseUrl ?? String(endpoint);\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentInfo = `azsdk-js-monitor-ingestion/1.2.0`;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`\n : `azsdk-js-api ${userAgentInfo}`;\n const scope: string = options?.audience\n ? `${options.audience}/.default`\n : `${KnownMonitorAudience.AzurePublicCloud}/.default`;\n const { apiVersion: _, ...updatedOptions } = {\n ...options,\n userAgentOptions: { userAgentPrefix },\n loggingOptions: { logger: options.loggingOptions?.logger ?? logger.info },\n credentials: {\n scopes: scope ? [scope] : options.credentials?.scopes,\n },\n };\n const clientContext = getClient(endpointUrl, tokenCredential, updatedOptions);\n clientContext.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n const apiVersion = options.apiVersion ?? \"2023-01-01\";\n clientContext.pipeline.addPolicy({\n name: \"ClientApiVersionPolicy\",\n sendRequest: (req, next) => {\n // Use the apiVersion defined in request url directly\n // Append one if there is no apiVersion and we have one at client options\n const url = new URL(req.url);\n if (!url.searchParams.get(\"api-version\")) {\n req.url = `${req.url}${\n Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n\n return next(req);\n },\n });\n return { ...clientContext, apiVersion } as LogsIngestionContext;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { LogsIngestionContext as Client } from "./index.js";
2
+ import type { LogsUploadOptions } from "./options.js";
3
+ import type { StreamableMethod, PathUncheckedResponse } from "@azure-rest/core-client";
4
+ export declare function _uploadSend(context: Client, ruleId: string, streamName: string, body: Record<string, any>[], options?: LogsUploadOptions): StreamableMethod;
5
+ export declare function _uploadDeserialize(result: PathUncheckedResponse): Promise<void>;
6
+ /** Ingestion API used to directly ingest data using Data Collection Rules. */
7
+ export declare function upload(context: Client, ruleId: string, streamName: string, body: Record<string, any>[], options?: LogsUploadOptions): Promise<void>;
8
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/api/operations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGvF,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC3B,OAAO,GAAE,iBAA0C,GAClD,gBAAgB,CA6BlB;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrF;AAED,8EAA8E;AAC9E,wBAAsB,MAAM,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC3B,OAAO,GAAE,iBAA0C,GAClD,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports._uploadSend = _uploadSend;
6
+ exports._uploadDeserialize = _uploadDeserialize;
7
+ exports.upload = upload;
8
+ const urlTemplate_js_1 = require("../static-helpers/urlTemplate.js");
9
+ const core_client_1 = require("@azure-rest/core-client");
10
+ function _uploadSend(context, ruleId, streamName, body, options = { requestOptions: {} }) {
11
+ var _a, _b;
12
+ const path = (0, urlTemplate_js_1.expandUrlTemplate)("/dataCollectionRules/{ruleId}/streams/{stream}{?api%2Dversion}", {
13
+ ruleId: ruleId,
14
+ stream: streamName,
15
+ "api%2Dversion": context.apiVersion,
16
+ }, {
17
+ allowReserved: (_a = options === null || options === void 0 ? void 0 : options.requestOptions) === null || _a === void 0 ? void 0 : _a.skipUrlEncoding,
18
+ });
19
+ return context.path(path).post(Object.assign(Object.assign({}, (0, core_client_1.operationOptionsToRequestParameters)(options)), { contentType: "application/json", headers: Object.assign(Object.assign(Object.assign(Object.assign({}, ((options === null || options === void 0 ? void 0 : options.contentEncoding) !== undefined
20
+ ? { "Content-Encoding": options === null || options === void 0 ? void 0 : options.contentEncoding }
21
+ : {})), ((options === null || options === void 0 ? void 0 : options.clientRequestId) !== undefined
22
+ ? { "x-ms-client-request-id": options === null || options === void 0 ? void 0 : options.clientRequestId }
23
+ : {})), { accept: "application/json" }), (_b = options.requestOptions) === null || _b === void 0 ? void 0 : _b.headers), body: body.map((p) => {
24
+ return p;
25
+ }) }));
26
+ }
27
+ async function _uploadDeserialize(result) {
28
+ const expectedStatuses = ["204"];
29
+ if (!expectedStatuses.includes(result.status)) {
30
+ throw (0, core_client_1.createRestError)(result);
31
+ }
32
+ return;
33
+ }
34
+ /** Ingestion API used to directly ingest data using Data Collection Rules. */
35
+ async function upload(context, ruleId, streamName, body, options = { requestOptions: {} }) {
36
+ const result = await _uploadSend(context, ruleId, streamName, body, options);
37
+ return _uploadDeserialize(result);
38
+ }
39
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/api/operations.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAQlC,kCAmCC;AAED,gDAOC;AAGD,wBASC;AA5DD,qEAAqE;AAErE,yDAA+F;AAE/F,SAAgB,WAAW,CACzB,OAAe,EACf,MAAc,EACd,UAAkB,EAClB,IAA2B,EAC3B,UAA6B,EAAE,cAAc,EAAE,EAAE,EAAE;;IAEnD,MAAM,IAAI,GAAG,IAAA,kCAAiB,EAC5B,gEAAgE,EAChE;QACE,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,UAAU;QAClB,eAAe,EAAE,OAAO,CAAC,UAAU;KACpC,EACD;QACE,aAAa,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,0CAAE,eAAe;KACxD,CACF,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,iCACzB,IAAA,iDAAmC,EAAC,OAAO,CAAC,KAC/C,WAAW,EAAE,kBAAkB,EAC/B,OAAO,8DACF,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAK,SAAS;YACxC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC,GACJ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAK,SAAS;YACxC,CAAC,CAAC,EAAE,wBAAwB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC,KACP,MAAM,EAAE,kBAAkB,KACvB,MAAA,OAAO,CAAC,cAAc,0CAAE,OAAO,GAEpC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACxB,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,IACF,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,MAA6B;IACpE,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;AACT,CAAC;AAED,8EAA8E;AACvE,KAAK,UAAU,MAAM,CAC1B,OAAe,EACf,MAAc,EACd,UAAkB,EAClB,IAA2B,EAC3B,UAA6B,EAAE,cAAc,EAAE,EAAE,EAAE;IAEnD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7E,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { LogsIngestionContext as Client } from \"./index.js\";\nimport type { LogsUploadOptions } from \"./options.js\";\nimport { expandUrlTemplate } from \"../static-helpers/urlTemplate.js\";\nimport type { StreamableMethod, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { createRestError, operationOptionsToRequestParameters } from \"@azure-rest/core-client\";\n\nexport function _uploadSend(\n context: Client,\n ruleId: string,\n streamName: string,\n body: Record<string, any>[],\n options: LogsUploadOptions = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/dataCollectionRules/{ruleId}/streams/{stream}{?api%2Dversion}\",\n {\n ruleId: ruleId,\n stream: streamName,\n \"api%2Dversion\": context.apiVersion,\n },\n {\n allowReserved: options?.requestOptions?.skipUrlEncoding,\n },\n );\n return context.path(path).post({\n ...operationOptionsToRequestParameters(options),\n contentType: \"application/json\",\n headers: {\n ...(options?.contentEncoding !== undefined\n ? { \"Content-Encoding\": options?.contentEncoding }\n : {}),\n ...(options?.clientRequestId !== undefined\n ? { \"x-ms-client-request-id\": options?.clientRequestId }\n : {}),\n accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: body.map((p: any) => {\n return p;\n }),\n });\n}\n\nexport async function _uploadDeserialize(result: PathUncheckedResponse): Promise<void> {\n const expectedStatuses = [\"204\"];\n if (!expectedStatuses.includes(result.status)) {\n throw createRestError(result);\n }\n\n return;\n}\n\n/** Ingestion API used to directly ingest data using Data Collection Rules. */\nexport async function upload(\n context: Client,\n ruleId: string,\n streamName: string,\n body: Record<string, any>[],\n options: LogsUploadOptions = { requestOptions: {} },\n): Promise<void> {\n const result = await _uploadSend(context, ruleId, streamName, body, options);\n return _uploadDeserialize(result);\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import type { OperationOptions } from "@azure-rest/core-client";
2
+ import type { LogsUploadFailure } from "../models/models.js";
3
+ /** Optional parameters. */
4
+ export interface LogsUploadOptions extends OperationOptions {
5
+ /** The content encoding of the request body which is always 'gzip'. */
6
+ contentEncoding?: string;
7
+ /** An opaque, globally-unique, client-generated string identifier for the request. */
8
+ clientRequestId?: string;
9
+ /**
10
+ * Concurrency of parallel requests. Must be greater than or equal to 1.
11
+ * The default value is 1.
12
+ */
13
+ maxConcurrency?: number;
14
+ /**
15
+ * Callback function for error handling when logs fail to upload
16
+ * @param uploadLogsError - This is the {@link LogsUploadFailure} object
17
+ * @returns void
18
+ */
19
+ onError?: (uploadLogsError: LogsUploadFailure) => void;
20
+ }
21
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/api/options.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACxD"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/api/options.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions } from \"@azure-rest/core-client\";\nimport type { LogsUploadFailure } from \"../models/models.js\";\n\n/** Optional parameters. */\nexport interface LogsUploadOptions extends OperationOptions {\n /** The content encoding of the request body which is always 'gzip'. */\n contentEncoding?: string;\n /** An opaque, globally-unique, client-generated string identifier for the request. */\n clientRequestId?: string;\n /**\n * Concurrency of parallel requests. Must be greater than or equal to 1.\n * The default value is 1.\n */\n maxConcurrency?: number;\n /**\n * Callback function for error handling when logs fail to upload\n * @param uploadLogsError - This is the {@link LogsUploadFailure} object\n * @returns void\n */\n onError?: (uploadLogsError: LogsUploadFailure) => void;\n}\n"]}
@@ -1,8 +1,4 @@
1
- /**
2
- * This package is used for logs ingestion for the [Azure Monitor](https://learn.microsoft.com/azure/azure-monitor/overview) resource.
3
- * @packageDocumentation
4
- */
5
- export * from "./logsIngestionClient.js";
6
- export * from "./models.js";
7
- export { KnownMonitorAudience } from "./constants.js";
1
+ export { LogsIngestionClient } from "./logsIngestionClient.js";
2
+ export { KnownVersions, KnownMonitorAudience, AggregateLogsUploadErrorName, isAggregateLogsUploadError, AggregateLogsUploadError, LogsUploadFailure, } from "./models/index.js";
3
+ export { LogsIngestionClientOptions, LogsUploadOptions } from "./api/index.js";
8
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -2,14 +2,13 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.KnownMonitorAudience = void 0;
6
- const tslib_1 = require("tslib");
7
- /**
8
- * This package is used for logs ingestion for the [Azure Monitor](https://learn.microsoft.com/azure/azure-monitor/overview) resource.
9
- * @packageDocumentation
10
- */
11
- tslib_1.__exportStar(require("./logsIngestionClient.js"), exports);
12
- tslib_1.__exportStar(require("./models.js"), exports);
13
- var constants_js_1 = require("./constants.js");
14
- Object.defineProperty(exports, "KnownMonitorAudience", { enumerable: true, get: function () { return constants_js_1.KnownMonitorAudience; } });
5
+ exports.AggregateLogsUploadError = exports.isAggregateLogsUploadError = exports.AggregateLogsUploadErrorName = exports.KnownMonitorAudience = exports.KnownVersions = exports.LogsIngestionClient = void 0;
6
+ var logsIngestionClient_js_1 = require("./logsIngestionClient.js");
7
+ Object.defineProperty(exports, "LogsIngestionClient", { enumerable: true, get: function () { return logsIngestionClient_js_1.LogsIngestionClient; } });
8
+ var index_js_1 = require("./models/index.js");
9
+ Object.defineProperty(exports, "KnownVersions", { enumerable: true, get: function () { return index_js_1.KnownVersions; } });
10
+ Object.defineProperty(exports, "KnownMonitorAudience", { enumerable: true, get: function () { return index_js_1.KnownMonitorAudience; } });
11
+ Object.defineProperty(exports, "AggregateLogsUploadErrorName", { enumerable: true, get: function () { return index_js_1.AggregateLogsUploadErrorName; } });
12
+ Object.defineProperty(exports, "isAggregateLogsUploadError", { enumerable: true, get: function () { return index_js_1.isAggregateLogsUploadError; } });
13
+ Object.defineProperty(exports, "AggregateLogsUploadError", { enumerable: true, get: function () { return index_js_1.AggregateLogsUploadError; } });
15
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC;;;GAGG;AACH,mEAAyC;AACzC,sDAA4B;AAC5B,+CAAsD;AAA7C,oHAAA,oBAAoB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * This package is used for logs ingestion for the [Azure Monitor](https://learn.microsoft.com/azure/azure-monitor/overview) resource.\n * @packageDocumentation\n */\nexport * from \"./logsIngestionClient.js\";\nexport * from \"./models.js\";\nexport { KnownMonitorAudience } from \"./constants.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,8CAO2B;AANzB,yGAAA,aAAa,OAAA;AACb,gHAAA,oBAAoB,OAAA;AACpB,wHAAA,4BAA4B,OAAA;AAC5B,sHAAA,0BAA0B,OAAA;AAC1B,oHAAA,wBAAwB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { LogsIngestionClient } from \"./logsIngestionClient.js\";\nexport {\n KnownVersions,\n KnownMonitorAudience,\n AggregateLogsUploadErrorName,\n isAggregateLogsUploadError,\n AggregateLogsUploadError,\n LogsUploadFailure,\n} from \"./models/index.js\";\nexport { LogsIngestionClientOptions, LogsUploadOptions } from \"./api/index.js\";\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const logger: import("@azure/logger").AzureLogger;
2
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,MAAM,qCAA0C,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.logger = void 0;
6
+ const logger_1 = require("@azure/logger");
7
+ exports.logger = (0, logger_1.createClientLogger)("monitor-ingestion");
8
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,0CAAmD;AACtC,QAAA,MAAM,GAAG,IAAA,2BAAkB,EAAC,mBAAmB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"monitor-ingestion\");\n"]}
@@ -1,28 +1,15 @@
1
+ import type { LogsIngestionClientOptions } from "./api/index.js";
2
+ import type { LogsUploadOptions } from "./api/options.js";
3
+ import type { Pipeline } from "@azure/core-rest-pipeline";
1
4
  import type { TokenCredential } from "@azure/core-auth";
2
- import type { CommonClientOptions } from "@azure/core-client";
3
- import type { LogsUploadOptions } from "./models.js";
4
- /**
5
- * Options for Monitor Logs Ingestion Client
6
- */
7
- export interface LogsIngestionClientOptions extends CommonClientOptions {
8
- /** Api Version */
9
- apiVersion?: string;
10
- /**
11
- * The Audience to use for authentication with Microsoft Entra ID. The
12
- * audience is not considered when using a shared key.
13
- * {@link KnownMonitorAudience} can be used interchangeably with audience
14
- */
15
- audience?: string;
16
- }
5
+ export { LogsIngestionClientOptions } from "./api/logsIngestionContext.js";
17
6
  /**
18
7
  * Client for Monitor Logs Ingestion
19
8
  */
20
9
  export declare class LogsIngestionClient {
21
- /**
22
- * Overrides client endpoint.
23
- */
24
- private endpoint;
25
- private _dataClient;
10
+ private _client;
11
+ /** The pipeline used by this client to make requests */
12
+ readonly pipeline: Pipeline;
26
13
  /**
27
14
  * Construct a MonitorIngestionClient that can be used to query logs using the Log Analytics Query language.
28
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"logsIngestionClient.d.ts","sourceRoot":"","sources":["../../src/logsIngestionClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOxE;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAkC;IACrD;;;;;OAKG;gBAED,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,OAAO,CAAC,EAAE,0BAA0B;IAetC;;;;;;;OAOG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAE/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;CAoCjB"}
1
+ {"version":3,"file":"logsIngestionClient.d.ts","sourceRoot":"","sources":["../../src/logsIngestionClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAwB,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAI3E;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAuB;IACtC,wDAAwD;IACxD,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC;;;;;OAKG;gBAED,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,eAAe,EAChC,OAAO,CAAC,EAAE,0BAA0B;IActC;;;;;;;OAOG;IACG,MAAM,CACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,IAAI,CAAC;CAqCjB"}
@@ -3,13 +3,13 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.LogsIngestionClient = void 0;
6
- const index_js_1 = require("./generated/index.js");
7
- const models_js_1 = require("./models.js");
6
+ const index_js_1 = require("./api/index.js");
7
+ const operations_js_1 = require("./api/operations.js");
8
+ const models_js_1 = require("./models/models.js");
9
+ const core_util_1 = require("@azure/core-util");
8
10
  const gZippingPolicy_js_1 = require("./gZippingPolicy.js");
9
11
  const concurrentPoolHelper_js_1 = require("./utils/concurrentPoolHelper.js");
10
12
  const splitDataToChunksHelper_js_1 = require("./utils/splitDataToChunksHelper.js");
11
- const core_util_1 = require("@azure/core-util");
12
- const constants_js_1 = require("./constants.js");
13
13
  const DEFAULT_MAX_CONCURRENCY = 5;
14
14
  /**
15
15
  * Client for Monitor Logs Ingestion
@@ -22,13 +22,14 @@ class LogsIngestionClient {
22
22
  * @param options - Options for the MonitorIngestionClient.
23
23
  */
24
24
  constructor(endpoint, tokenCredential, options) {
25
- const scope = (options === null || options === void 0 ? void 0 : options.audience)
26
- ? `${options.audience}/.default`
27
- : `${constants_js_1.KnownMonitorAudience.AzurePublicCloud}/.default`;
28
- this.endpoint = endpoint;
29
- this._dataClient = new index_js_1.GeneratedMonitorIngestionClient(tokenCredential, this.endpoint, Object.assign(Object.assign({}, options), { credentialScopes: scope }));
30
- // adding gzipping policy because this is a single method client which needs gzipping
31
- this._dataClient.pipeline.addPolicy(gZippingPolicy_js_1.GZippingPolicy);
25
+ var _a;
26
+ const prefixFromOptions = (_a = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _a === void 0 ? void 0 : _a.userAgentPrefix;
27
+ const userAgentPrefix = prefixFromOptions
28
+ ? `${prefixFromOptions} azsdk-js-client`
29
+ : `azsdk-js-client`;
30
+ this._client = (0, index_js_1.createLogsIngestion)(endpoint, tokenCredential, Object.assign(Object.assign({}, options), { userAgentOptions: { userAgentPrefix } }));
31
+ this.pipeline = this._client.pipeline;
32
+ this.pipeline.addPolicy(gZippingPolicy_js_1.GZippingPolicy);
32
33
  }
33
34
  /**
34
35
  * Uploads logs to Monitor Resource
@@ -47,7 +48,7 @@ class LogsIngestionClient {
47
48
  const uploadResultErrors = [];
48
49
  await (0, concurrentPoolHelper_js_1.concurrentRun)(concurrency, chunkArray, async (eachChunk) => {
49
50
  try {
50
- await this._dataClient.upload(ruleId, streamName, eachChunk, {
51
+ await (0, operations_js_1.upload)(this._client, ruleId, streamName, eachChunk, {
51
52
  contentEncoding: "gzip",
52
53
  abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal,
53
54
  });
@@ -68,6 +69,7 @@ class LogsIngestionClient {
68
69
  if (uploadResultErrors.length > 0) {
69
70
  throw new models_js_1.AggregateLogsUploadError(uploadResultErrors);
70
71
  }
72
+ return Promise.resolve();
71
73
  }
72
74
  }
73
75
  exports.LogsIngestionClient = LogsIngestionClient;