@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.
- package/dist/browser/api/index.d.ts +4 -0
- package/dist/browser/api/index.d.ts.map +1 -0
- package/dist/browser/api/index.js +5 -0
- package/dist/browser/api/index.js.map +1 -0
- package/dist/browser/api/logsIngestionContext.d.ts +23 -0
- package/dist/browser/api/logsIngestionContext.d.ts.map +1 -0
- package/dist/browser/api/logsIngestionContext.js +39 -0
- package/dist/browser/api/logsIngestionContext.js.map +1 -0
- package/dist/browser/api/operations.d.ts +8 -0
- package/dist/browser/api/operations.d.ts.map +1 -0
- package/dist/browser/api/operations.js +34 -0
- package/dist/browser/api/operations.js.map +1 -0
- package/dist/browser/api/options.d.ts +21 -0
- package/dist/browser/api/options.d.ts.map +1 -0
- package/dist/browser/api/options.js +4 -0
- package/dist/browser/api/options.js.map +1 -0
- package/dist/browser/index.d.ts +3 -7
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +2 -7
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/logger.d.ts +2 -0
- package/dist/browser/logger.d.ts.map +1 -0
- package/dist/browser/logger.js +5 -0
- package/dist/browser/logger.js.map +1 -0
- package/dist/browser/logsIngestionClient.d.ts +7 -20
- package/dist/browser/logsIngestionClient.d.ts.map +1 -1
- package/dist/browser/logsIngestionClient.js +14 -12
- package/dist/browser/logsIngestionClient.js.map +1 -1
- package/dist/browser/models/index.d.ts +2 -0
- package/dist/browser/models/index.d.ts.map +1 -0
- package/dist/browser/models/index.js +4 -0
- package/dist/browser/models/index.js.map +1 -0
- package/dist/{esm → browser/models}/models.d.ts +15 -10
- package/dist/browser/models/models.d.ts.map +1 -0
- package/dist/browser/{models.js → models/models.js} +24 -0
- package/dist/browser/models/models.js.map +1 -0
- package/dist/browser/static-helpers/urlTemplate.d.ts +5 -0
- package/dist/browser/static-helpers/urlTemplate.d.ts.map +1 -0
- package/dist/browser/static-helpers/urlTemplate.js +186 -0
- package/dist/browser/static-helpers/urlTemplate.js.map +1 -0
- package/dist/commonjs/api/index.d.ts +4 -0
- package/dist/commonjs/api/index.d.ts.map +1 -0
- package/dist/commonjs/api/index.js +10 -0
- package/dist/commonjs/api/index.js.map +1 -0
- package/dist/commonjs/api/logsIngestionContext.d.ts +23 -0
- package/dist/commonjs/api/logsIngestionContext.d.ts.map +1 -0
- package/dist/commonjs/api/logsIngestionContext.js +42 -0
- package/dist/commonjs/api/logsIngestionContext.js.map +1 -0
- package/dist/commonjs/api/operations.d.ts +8 -0
- package/dist/commonjs/api/operations.d.ts.map +1 -0
- package/dist/commonjs/api/operations.js +39 -0
- package/dist/commonjs/api/operations.js.map +1 -0
- package/dist/commonjs/api/options.d.ts +21 -0
- package/dist/commonjs/api/options.d.ts.map +1 -0
- package/dist/commonjs/api/options.js +5 -0
- package/dist/commonjs/api/options.js.map +1 -0
- package/dist/commonjs/index.d.ts +3 -7
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +9 -10
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/logger.d.ts +2 -0
- package/dist/commonjs/logger.d.ts.map +1 -0
- package/dist/commonjs/logger.js +8 -0
- package/dist/commonjs/logger.js.map +1 -0
- package/dist/commonjs/logsIngestionClient.d.ts +7 -20
- package/dist/commonjs/logsIngestionClient.d.ts.map +1 -1
- package/dist/commonjs/logsIngestionClient.js +14 -12
- package/dist/commonjs/logsIngestionClient.js.map +1 -1
- package/dist/commonjs/models/index.d.ts +2 -0
- package/dist/commonjs/models/index.d.ts.map +1 -0
- package/dist/commonjs/models/index.js +12 -0
- package/dist/commonjs/models/index.js.map +1 -0
- package/dist/{react-native → commonjs/models}/models.d.ts +15 -10
- package/dist/commonjs/models/models.d.ts.map +1 -0
- package/dist/commonjs/{models.js → models/models.js} +27 -3
- package/dist/commonjs/models/models.js.map +1 -0
- package/dist/commonjs/static-helpers/urlTemplate.d.ts +5 -0
- package/dist/commonjs/static-helpers/urlTemplate.d.ts.map +1 -0
- package/dist/commonjs/static-helpers/urlTemplate.js +189 -0
- package/dist/commonjs/static-helpers/urlTemplate.js.map +1 -0
- package/dist/esm/api/index.d.ts +4 -0
- package/dist/esm/api/index.d.ts.map +1 -0
- package/dist/esm/api/index.js +5 -0
- package/dist/esm/api/index.js.map +1 -0
- package/dist/esm/api/logsIngestionContext.d.ts +23 -0
- package/dist/esm/api/logsIngestionContext.d.ts.map +1 -0
- package/dist/esm/api/logsIngestionContext.js +39 -0
- package/dist/esm/api/logsIngestionContext.js.map +1 -0
- package/dist/esm/api/operations.d.ts +8 -0
- package/dist/esm/api/operations.d.ts.map +1 -0
- package/dist/esm/api/operations.js +34 -0
- package/dist/esm/api/operations.js.map +1 -0
- package/dist/esm/api/options.d.ts +21 -0
- package/dist/esm/api/options.d.ts.map +1 -0
- package/dist/esm/api/options.js +4 -0
- package/dist/esm/api/options.js.map +1 -0
- package/dist/esm/index.d.ts +3 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logger.d.ts +2 -0
- package/dist/esm/logger.d.ts.map +1 -0
- package/dist/esm/logger.js +5 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/logsIngestionClient.d.ts +7 -20
- package/dist/esm/logsIngestionClient.d.ts.map +1 -1
- package/dist/esm/logsIngestionClient.js +14 -12
- package/dist/esm/logsIngestionClient.js.map +1 -1
- package/dist/esm/models/index.d.ts +2 -0
- package/dist/esm/models/index.d.ts.map +1 -0
- package/dist/esm/models/index.js +4 -0
- package/dist/esm/models/index.js.map +1 -0
- package/dist/{browser → esm/models}/models.d.ts +15 -10
- package/dist/esm/models/models.d.ts.map +1 -0
- package/dist/{react-native → esm/models}/models.js +24 -0
- package/dist/esm/models/models.js.map +1 -0
- package/dist/esm/static-helpers/urlTemplate.d.ts +5 -0
- package/dist/esm/static-helpers/urlTemplate.d.ts.map +1 -0
- package/dist/esm/static-helpers/urlTemplate.js +186 -0
- package/dist/esm/static-helpers/urlTemplate.js.map +1 -0
- package/dist/react-native/api/index.d.ts +4 -0
- package/dist/react-native/api/index.d.ts.map +1 -0
- package/dist/react-native/api/index.js +5 -0
- package/dist/react-native/api/index.js.map +1 -0
- package/dist/react-native/api/logsIngestionContext.d.ts +23 -0
- package/dist/react-native/api/logsIngestionContext.d.ts.map +1 -0
- package/dist/react-native/api/logsIngestionContext.js +39 -0
- package/dist/react-native/api/logsIngestionContext.js.map +1 -0
- package/dist/react-native/api/operations.d.ts +8 -0
- package/dist/react-native/api/operations.d.ts.map +1 -0
- package/dist/react-native/api/operations.js +34 -0
- package/dist/react-native/api/operations.js.map +1 -0
- package/dist/react-native/api/options.d.ts +21 -0
- package/dist/react-native/api/options.d.ts.map +1 -0
- package/dist/react-native/api/options.js +4 -0
- package/dist/react-native/api/options.js.map +1 -0
- package/dist/react-native/index.d.ts +3 -7
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +2 -7
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/logger.d.ts +2 -0
- package/dist/react-native/logger.d.ts.map +1 -0
- package/dist/react-native/logger.js +5 -0
- package/dist/react-native/logger.js.map +1 -0
- package/dist/react-native/logsIngestionClient.d.ts +7 -20
- package/dist/react-native/logsIngestionClient.d.ts.map +1 -1
- package/dist/react-native/logsIngestionClient.js +14 -12
- package/dist/react-native/logsIngestionClient.js.map +1 -1
- package/dist/react-native/models/index.d.ts +2 -0
- package/dist/react-native/models/index.d.ts.map +1 -0
- package/dist/react-native/models/index.js +4 -0
- package/dist/react-native/models/index.js.map +1 -0
- package/dist/{commonjs → react-native/models}/models.d.ts +15 -10
- package/dist/react-native/models/models.d.ts.map +1 -0
- package/dist/{esm → react-native/models}/models.js +24 -0
- package/dist/react-native/models/models.js.map +1 -0
- package/dist/react-native/static-helpers/urlTemplate.d.ts +5 -0
- package/dist/react-native/static-helpers/urlTemplate.d.ts.map +1 -0
- package/dist/react-native/static-helpers/urlTemplate.js +186 -0
- package/dist/react-native/static-helpers/urlTemplate.js.map +1 -0
- package/package.json +67 -66
- package/dist/browser/constants.d.ts +0 -22
- package/dist/browser/constants.d.ts.map +0 -1
- package/dist/browser/constants.js +0 -25
- package/dist/browser/constants.js.map +0 -1
- package/dist/browser/generated/generatedMonitorIngestionClient.d.ts +0 -23
- package/dist/browser/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
- package/dist/browser/generated/generatedMonitorIngestionClient.js +0 -59
- package/dist/browser/generated/generatedMonitorIngestionClient.js.map +0 -1
- package/dist/browser/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
- package/dist/browser/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
- package/dist/browser/generated/generatedMonitorIngestionClientContext.js +0 -47
- package/dist/browser/generated/generatedMonitorIngestionClientContext.js.map +0 -1
- package/dist/browser/generated/index.d.ts +0 -4
- package/dist/browser/generated/index.d.ts.map +0 -1
- package/dist/browser/generated/index.js +0 -11
- package/dist/browser/generated/index.js.map +0 -1
- package/dist/browser/generated/models/index.d.ts +0 -67
- package/dist/browser/generated/models/index.d.ts.map +0 -1
- package/dist/browser/generated/models/index.js +0 -9
- package/dist/browser/generated/models/index.js.map +0 -1
- package/dist/browser/generated/models/mappers.d.ts +0 -6
- package/dist/browser/generated/models/mappers.d.ts.map +0 -1
- package/dist/browser/generated/models/mappers.js +0 -115
- package/dist/browser/generated/models/mappers.js.map +0 -1
- package/dist/browser/generated/models/parameters.d.ts +0 -11
- package/dist/browser/generated/models/parameters.d.ts.map +0 -1
- package/dist/browser/generated/models/parameters.js +0 -106
- package/dist/browser/generated/models/parameters.js.map +0 -1
- package/dist/browser/models.d.ts.map +0 -1
- package/dist/browser/models.js.map +0 -1
- package/dist/commonjs/constants.d.ts +0 -22
- package/dist/commonjs/constants.d.ts.map +0 -1
- package/dist/commonjs/constants.js +0 -28
- package/dist/commonjs/constants.js.map +0 -1
- package/dist/commonjs/generated/generatedMonitorIngestionClient.d.ts +0 -23
- package/dist/commonjs/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
- package/dist/commonjs/generated/generatedMonitorIngestionClient.js +0 -64
- package/dist/commonjs/generated/generatedMonitorIngestionClient.js.map +0 -1
- package/dist/commonjs/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
- package/dist/commonjs/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
- package/dist/commonjs/generated/generatedMonitorIngestionClientContext.js +0 -52
- package/dist/commonjs/generated/generatedMonitorIngestionClientContext.js.map +0 -1
- package/dist/commonjs/generated/index.d.ts +0 -4
- package/dist/commonjs/generated/index.d.ts.map +0 -1
- package/dist/commonjs/generated/index.js +0 -17
- package/dist/commonjs/generated/index.js.map +0 -1
- package/dist/commonjs/generated/models/index.d.ts +0 -67
- package/dist/commonjs/generated/models/index.d.ts.map +0 -1
- package/dist/commonjs/generated/models/index.js +0 -10
- package/dist/commonjs/generated/models/index.js.map +0 -1
- package/dist/commonjs/generated/models/mappers.d.ts +0 -6
- package/dist/commonjs/generated/models/mappers.d.ts.map +0 -1
- package/dist/commonjs/generated/models/mappers.js +0 -118
- package/dist/commonjs/generated/models/mappers.js.map +0 -1
- package/dist/commonjs/generated/models/parameters.d.ts +0 -11
- package/dist/commonjs/generated/models/parameters.d.ts.map +0 -1
- package/dist/commonjs/generated/models/parameters.js +0 -109
- package/dist/commonjs/generated/models/parameters.js.map +0 -1
- package/dist/commonjs/models.d.ts.map +0 -1
- package/dist/commonjs/models.js.map +0 -1
- package/dist/esm/constants.d.ts +0 -22
- package/dist/esm/constants.d.ts.map +0 -1
- package/dist/esm/constants.js +0 -25
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/generated/generatedMonitorIngestionClient.d.ts +0 -23
- package/dist/esm/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
- package/dist/esm/generated/generatedMonitorIngestionClient.js +0 -59
- package/dist/esm/generated/generatedMonitorIngestionClient.js.map +0 -1
- package/dist/esm/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
- package/dist/esm/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
- package/dist/esm/generated/generatedMonitorIngestionClientContext.js +0 -47
- package/dist/esm/generated/generatedMonitorIngestionClientContext.js.map +0 -1
- package/dist/esm/generated/index.d.ts +0 -4
- package/dist/esm/generated/index.d.ts.map +0 -1
- package/dist/esm/generated/index.js +0 -11
- package/dist/esm/generated/index.js.map +0 -1
- package/dist/esm/generated/models/index.d.ts +0 -67
- package/dist/esm/generated/models/index.d.ts.map +0 -1
- package/dist/esm/generated/models/index.js +0 -9
- package/dist/esm/generated/models/index.js.map +0 -1
- package/dist/esm/generated/models/mappers.d.ts +0 -6
- package/dist/esm/generated/models/mappers.d.ts.map +0 -1
- package/dist/esm/generated/models/mappers.js +0 -115
- package/dist/esm/generated/models/mappers.js.map +0 -1
- package/dist/esm/generated/models/parameters.d.ts +0 -11
- package/dist/esm/generated/models/parameters.d.ts.map +0 -1
- package/dist/esm/generated/models/parameters.js +0 -106
- package/dist/esm/generated/models/parameters.js.map +0 -1
- package/dist/esm/models.d.ts.map +0 -1
- package/dist/esm/models.js.map +0 -1
- package/dist/react-native/constants.d.ts +0 -22
- package/dist/react-native/constants.d.ts.map +0 -1
- package/dist/react-native/constants.js +0 -25
- package/dist/react-native/constants.js.map +0 -1
- package/dist/react-native/generated/generatedMonitorIngestionClient.d.ts +0 -23
- package/dist/react-native/generated/generatedMonitorIngestionClient.d.ts.map +0 -1
- package/dist/react-native/generated/generatedMonitorIngestionClient.js +0 -59
- package/dist/react-native/generated/generatedMonitorIngestionClient.js.map +0 -1
- package/dist/react-native/generated/generatedMonitorIngestionClientContext.d.ts +0 -17
- package/dist/react-native/generated/generatedMonitorIngestionClientContext.d.ts.map +0 -1
- package/dist/react-native/generated/generatedMonitorIngestionClientContext.js +0 -47
- package/dist/react-native/generated/generatedMonitorIngestionClientContext.js.map +0 -1
- package/dist/react-native/generated/index.d.ts +0 -4
- package/dist/react-native/generated/index.d.ts.map +0 -1
- package/dist/react-native/generated/index.js +0 -11
- package/dist/react-native/generated/index.js.map +0 -1
- package/dist/react-native/generated/models/index.d.ts +0 -67
- package/dist/react-native/generated/models/index.d.ts.map +0 -1
- package/dist/react-native/generated/models/index.js +0 -9
- package/dist/react-native/generated/models/index.js.map +0 -1
- package/dist/react-native/generated/models/mappers.d.ts +0 -6
- package/dist/react-native/generated/models/mappers.d.ts.map +0 -1
- package/dist/react-native/generated/models/mappers.js +0 -115
- package/dist/react-native/generated/models/mappers.js.map +0 -1
- package/dist/react-native/generated/models/parameters.d.ts +0 -11
- package/dist/react-native/generated/models/parameters.d.ts.map +0 -1
- package/dist/react-native/generated/models/parameters.js +0 -106
- package/dist/react-native/generated/models/parameters.js.map +0 -1
- package/dist/react-native/models.d.ts.map +0 -1
- 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 @@
|
|
|
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 @@
|
|
|
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"]}
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
|
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"}
|
package/dist/commonjs/index.js
CHANGED
|
@@ -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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
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 @@
|
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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("./
|
|
7
|
-
const
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.
|
|
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
|
|
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;
|