@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
package/dist/esm/index.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* @packageDocumentation
|
|
6
|
-
*/
|
|
7
|
-
export * from "./logsIngestionClient.js";
|
|
8
|
-
export * from "./models.js";
|
|
9
|
-
export { KnownMonitorAudience } from "./constants.js";
|
|
3
|
+
export { LogsIngestionClient } from "./logsIngestionClient.js";
|
|
4
|
+
export { KnownVersions, KnownMonitorAudience, AggregateLogsUploadErrorName, isAggregateLogsUploadError, AggregateLogsUploadError, } from "./models/index.js";
|
|
10
5
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,GAEzB,MAAM,mBAAmB,CAAC","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 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { createLogsIngestion } from "./api/index.js";
|
|
4
|
+
import { upload } from "./api/operations.js";
|
|
5
|
+
import { AggregateLogsUploadError } from "./models/models.js";
|
|
6
|
+
import { isError } from "@azure/core-util";
|
|
5
7
|
import { GZippingPolicy } from "./gZippingPolicy.js";
|
|
6
8
|
import { concurrentRun } from "./utils/concurrentPoolHelper.js";
|
|
7
9
|
import { splitDataToChunks } from "./utils/splitDataToChunksHelper.js";
|
|
8
|
-
import { isError } from "@azure/core-util";
|
|
9
|
-
import { KnownMonitorAudience } from "./constants.js";
|
|
10
10
|
const DEFAULT_MAX_CONCURRENCY = 5;
|
|
11
11
|
/**
|
|
12
12
|
* Client for Monitor Logs Ingestion
|
|
@@ -19,13 +19,14 @@ export class LogsIngestionClient {
|
|
|
19
19
|
* @param options - Options for the MonitorIngestionClient.
|
|
20
20
|
*/
|
|
21
21
|
constructor(endpoint, tokenCredential, options) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.
|
|
22
|
+
var _a;
|
|
23
|
+
const prefixFromOptions = (_a = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _a === void 0 ? void 0 : _a.userAgentPrefix;
|
|
24
|
+
const userAgentPrefix = prefixFromOptions
|
|
25
|
+
? `${prefixFromOptions} azsdk-js-client`
|
|
26
|
+
: `azsdk-js-client`;
|
|
27
|
+
this._client = createLogsIngestion(endpoint, tokenCredential, Object.assign(Object.assign({}, options), { userAgentOptions: { userAgentPrefix } }));
|
|
28
|
+
this.pipeline = this._client.pipeline;
|
|
29
|
+
this.pipeline.addPolicy(GZippingPolicy);
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Uploads logs to Monitor Resource
|
|
@@ -44,7 +45,7 @@ export class LogsIngestionClient {
|
|
|
44
45
|
const uploadResultErrors = [];
|
|
45
46
|
await concurrentRun(concurrency, chunkArray, async (eachChunk) => {
|
|
46
47
|
try {
|
|
47
|
-
await this.
|
|
48
|
+
await upload(this._client, ruleId, streamName, eachChunk, {
|
|
48
49
|
contentEncoding: "gzip",
|
|
49
50
|
abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal,
|
|
50
51
|
});
|
|
@@ -65,6 +66,7 @@ export class LogsIngestionClient {
|
|
|
65
66
|
if (uploadResultErrors.length > 0) {
|
|
66
67
|
throw new AggregateLogsUploadError(uploadResultErrors);
|
|
67
68
|
}
|
|
69
|
+
return Promise.resolve();
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
//# sourceMappingURL=logsIngestionClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logsIngestionClient.js","sourceRoot":"","sources":["../../src/logsIngestionClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;
|
|
1
|
+
{"version":3,"file":"logsIngestionClient.js","sourceRoot":"","sources":["../../src/logsIngestionClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { LogsIngestionContext, LogsIngestionClientOptions } from \"./api/index.js\";\nimport { createLogsIngestion } from \"./api/index.js\";\nimport type { LogsUploadOptions } from \"./api/options.js\";\nimport { upload } from \"./api/operations.js\";\nimport type { Pipeline } from \"@azure/core-rest-pipeline\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { LogsUploadFailure } from \"./models/models.js\";\nimport { AggregateLogsUploadError } from \"./models/models.js\";\nimport { isError } from \"@azure/core-util\";\nimport { GZippingPolicy } from \"./gZippingPolicy.js\";\nimport { concurrentRun } from \"./utils/concurrentPoolHelper.js\";\nimport { splitDataToChunks } from \"./utils/splitDataToChunksHelper.js\";\nexport { LogsIngestionClientOptions } from \"./api/logsIngestionContext.js\";\n\nconst DEFAULT_MAX_CONCURRENCY = 5;\n\n/**\n * Client for Monitor Logs Ingestion\n */\nexport class LogsIngestionClient {\n private _client: LogsIngestionContext;\n /** The pipeline used by this client to make requests */\n public readonly pipeline: Pipeline;\n\n /**\n * Construct a MonitorIngestionClient that can be used to query logs using the Log Analytics Query language.\n *\n * @param tokenCredential - A token credential.\n * @param options - Options for the MonitorIngestionClient.\n */\n constructor(\n endpoint: string,\n tokenCredential: TokenCredential,\n options?: LogsIngestionClientOptions,\n ) {\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-client`\n : `azsdk-js-client`;\n this._client = createLogsIngestion(endpoint, tokenCredential, {\n ...options,\n userAgentOptions: { userAgentPrefix },\n });\n this.pipeline = this._client.pipeline;\n this.pipeline.addPolicy(GZippingPolicy);\n }\n\n /**\n * Uploads logs to Monitor Resource\n * @param ruleId - The immutable Id of the Data Collection Rule resource.\n * @param streamName - The streamDeclaration name as defined in the Data Collection Rule.\n * @param logs - An array of objects matching the schema defined by the provided stream.\n * @param options - The options parameters.\n * See error response code and error response message for more detail.\n */\n async upload(\n ruleId: string,\n streamName: string,\n logs: Record<string, unknown>[],\n options?: LogsUploadOptions,\n ): Promise<void> {\n // TODO: Do we need to worry about memory issues when loading data for 100GB ?? JS max allocation is 1 or 2GB\n\n // This splits logs into 1MB chunks\n const chunkArray = splitDataToChunks(logs);\n const concurrency = Math.max(options?.maxConcurrency ?? DEFAULT_MAX_CONCURRENCY, 1);\n\n const uploadResultErrors: Array<LogsUploadFailure> = [];\n await concurrentRun(\n concurrency,\n chunkArray,\n async (eachChunk: Record<string, unknown>[]): Promise<void> => {\n try {\n await upload(this._client, ruleId, streamName, eachChunk, {\n contentEncoding: \"gzip\",\n abortSignal: options?.abortSignal,\n });\n } catch (e: unknown) {\n if (options?.onError) {\n options.onError({\n failedLogs: eachChunk,\n cause: isError(e) ? e : new Error(e as string),\n });\n }\n uploadResultErrors.push({\n cause: isError(e) ? e : new Error(e as string),\n failedLogs: eachChunk,\n });\n }\n },\n options?.abortSignal,\n );\n if (uploadResultErrors.length > 0) {\n throw new AggregateLogsUploadError(uploadResultErrors);\n }\n return Promise.resolve();\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,GAEzB,MAAM,aAAa,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n KnownVersions,\n KnownMonitorAudience,\n AggregateLogsUploadErrorName,\n isAggregateLogsUploadError,\n AggregateLogsUploadError,\n LogsUploadFailure,\n} from \"./models.js\";\n"]}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
/** Service API versions */
|
|
2
|
+
export declare enum KnownVersions {
|
|
3
|
+
/** The 2023-01-01 API version. */
|
|
4
|
+
V20230101 = "2023-01-01"
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
|
-
*
|
|
7
|
+
* Known values for Monitor Audience
|
|
4
8
|
*/
|
|
5
|
-
export
|
|
9
|
+
export declare enum KnownMonitorAudience {
|
|
10
|
+
/**
|
|
11
|
+
* Audience for Azure China
|
|
12
|
+
*/
|
|
13
|
+
AzureChina = "https://monitor.azure.cn",
|
|
6
14
|
/**
|
|
7
|
-
*
|
|
8
|
-
* The default value is 1.
|
|
15
|
+
* Audience for Azure Government
|
|
9
16
|
*/
|
|
10
|
-
|
|
17
|
+
AzureGovernment = "https://monitor.azure.us",
|
|
11
18
|
/**
|
|
12
|
-
*
|
|
13
|
-
* @param uploadLogsError - This is the {@link LogsUploadFailure} object
|
|
14
|
-
* @returns void
|
|
19
|
+
* Audience for Azure Public
|
|
15
20
|
*/
|
|
16
|
-
|
|
21
|
+
AzurePublicCloud = "https://monitor.azure.com"
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
19
24
|
* Error for each log upload request to service
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"AAIA,2BAA2B;AAC3B,oBAAY,aAAa;IACvB,kCAAkC;IAClC,SAAS,eAAe;CACzB;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B;;OAEG;IACH,UAAU,6BAA6B;IACvC;;OAEG;IACH,eAAe,6BAA6B;IAC5C;;OAEG;IACH,gBAAgB,8BAA8B;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAEvE;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD;;;OAGG;IACH,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAE5B;;;;OAIG;gBACS,MAAM,EAAE,iBAAiB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;CAK/D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,wBAAwB,CAKpF"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
import { isError } from "@azure/core-util";
|
|
4
|
+
/** Service API versions */
|
|
5
|
+
export var KnownVersions;
|
|
6
|
+
(function (KnownVersions) {
|
|
7
|
+
/** The 2023-01-01 API version. */
|
|
8
|
+
KnownVersions["V20230101"] = "2023-01-01";
|
|
9
|
+
})(KnownVersions || (KnownVersions = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Known values for Monitor Audience
|
|
12
|
+
*/
|
|
13
|
+
export var KnownMonitorAudience;
|
|
14
|
+
(function (KnownMonitorAudience) {
|
|
15
|
+
/**
|
|
16
|
+
* Audience for Azure China
|
|
17
|
+
*/
|
|
18
|
+
KnownMonitorAudience["AzureChina"] = "https://monitor.azure.cn";
|
|
19
|
+
/**
|
|
20
|
+
* Audience for Azure Government
|
|
21
|
+
*/
|
|
22
|
+
KnownMonitorAudience["AzureGovernment"] = "https://monitor.azure.us";
|
|
23
|
+
/**
|
|
24
|
+
* Audience for Azure Public
|
|
25
|
+
*/
|
|
26
|
+
KnownMonitorAudience["AzurePublicCloud"] = "https://monitor.azure.com";
|
|
27
|
+
})(KnownMonitorAudience || (KnownMonitorAudience = {}));
|
|
4
28
|
/**
|
|
5
29
|
* Aggregate Upload Logs Error Name
|
|
6
30
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,2BAA2B;AAC3B,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAkC;IAClC,yCAAwB,CAAA;AAC1B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,oBAaX;AAbD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,+DAAuC,CAAA;IACvC;;OAEG;IACH,oEAA4C,CAAA;IAC5C;;OAEG;IACH,sEAA8C,CAAA;AAChD,CAAC,EAbW,oBAAoB,KAApB,oBAAoB,QAa/B;AAgBD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAEvE;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAOjD;;;;OAIG;IACH,YAAY,MAA2B,EAAE,YAAqB;QAC5D,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,CAAU;IACnD,IAAI,CAAC,YAAY,wBAAwB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,CAAC;AAC/D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { isError } from \"@azure/core-util\";\n\n/** Service API versions */\nexport enum KnownVersions {\n /** The 2023-01-01 API version. */\n V20230101 = \"2023-01-01\",\n}\n\n/**\n * Known values for Monitor Audience\n */\nexport enum KnownMonitorAudience {\n /**\n * Audience for Azure China\n */\n AzureChina = \"https://monitor.azure.cn\",\n /**\n * Audience for Azure Government\n */\n AzureGovernment = \"https://monitor.azure.us\",\n /**\n * Audience for Azure Public\n */\n AzurePublicCloud = \"https://monitor.azure.com\",\n}\n\n/**\n * Error for each log upload request to service\n */\nexport interface LogsUploadFailure {\n /**\n * List of failed logs\n */\n failedLogs: Record<string, unknown>[];\n /**\n * Error for failed logs\n */\n cause: Error;\n}\n\n/**\n * Aggregate Upload Logs Error Name\n */\nexport const AggregateLogsUploadErrorName = \"AggregateLogsUploadError\";\n\n/**\n * Aggregate Error type for upload function\n */\nexport class AggregateLogsUploadError extends Error {\n /**\n * List of {@link LogsUploadFailure} returned from\n * individual upload requests to service\n */\n errors: LogsUploadFailure[];\n\n /**\n *\n * @param errors - list of {@link LogsUploadFailure}\n * @param errorMessage - error message\n */\n constructor(errors: LogsUploadFailure[], errorMessage?: string) {\n super(`${errorMessage}\\n}`);\n this.errors = errors;\n this.name = AggregateLogsUploadErrorName;\n }\n}\n\n/**\n * Typeguard for AggregateUploadLogsError\n * @param e - Something caught by a catch clause.\n */\nexport function isAggregateLogsUploadError(e: unknown): e is AggregateLogsUploadError {\n if (e instanceof AggregateLogsUploadError) {\n return true;\n }\n return isError(e) && e.name === AggregateLogsUploadErrorName;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlTemplate.d.ts","sourceRoot":"","sources":["../../../src/static-helpers/urlTemplate.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,kBAAkB;IAEjC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA4JD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,MAAM,CAgCR"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EACL,mBAAmB,GAGpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC","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,39 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { __rest } from "tslib";
|
|
4
|
+
import { logger } from "../logger.js";
|
|
5
|
+
import { KnownMonitorAudience } from "../models/models.js";
|
|
6
|
+
import { getClient } from "@azure-rest/core-client";
|
|
7
|
+
/** Azure Monitor data collection client. */
|
|
8
|
+
export function createLogsIngestion(endpoint, tokenCredential, options = {}) {
|
|
9
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
10
|
+
const endpointUrl = (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUrl) !== null && _b !== void 0 ? _b : String(endpoint);
|
|
11
|
+
const prefixFromOptions = (_c = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _c === void 0 ? void 0 : _c.userAgentPrefix;
|
|
12
|
+
const userAgentInfo = `azsdk-js-monitor-ingestion/1.2.0`;
|
|
13
|
+
const userAgentPrefix = prefixFromOptions
|
|
14
|
+
? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`
|
|
15
|
+
: `azsdk-js-api ${userAgentInfo}`;
|
|
16
|
+
const scope = (options === null || options === void 0 ? void 0 : options.audience)
|
|
17
|
+
? `${options.audience}/.default`
|
|
18
|
+
: `${KnownMonitorAudience.AzurePublicCloud}/.default`;
|
|
19
|
+
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.info }, credentials: {
|
|
20
|
+
scopes: scope ? [scope] : (_f = options.credentials) === null || _f === void 0 ? void 0 : _f.scopes,
|
|
21
|
+
} }), { apiVersion: _ } = _h, updatedOptions = __rest(_h, ["apiVersion"]);
|
|
22
|
+
const clientContext = getClient(endpointUrl, tokenCredential, updatedOptions);
|
|
23
|
+
clientContext.pipeline.removePolicy({ name: "ApiVersionPolicy" });
|
|
24
|
+
const apiVersion = (_g = options.apiVersion) !== null && _g !== void 0 ? _g : "2023-01-01";
|
|
25
|
+
clientContext.pipeline.addPolicy({
|
|
26
|
+
name: "ClientApiVersionPolicy",
|
|
27
|
+
sendRequest: (req, next) => {
|
|
28
|
+
// Use the apiVersion defined in request url directly
|
|
29
|
+
// Append one if there is no apiVersion and we have one at client options
|
|
30
|
+
const url = new URL(req.url);
|
|
31
|
+
if (!url.searchParams.get("api-version")) {
|
|
32
|
+
req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${apiVersion}`;
|
|
33
|
+
}
|
|
34
|
+
return next(req);
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
return Object.assign(Object.assign({}, clientContext), { apiVersion });
|
|
38
|
+
}
|
|
39
|
+
//# 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;;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAiB,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAwBpD,4CAA4C;AAC5C,MAAM,UAAU,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,oBAAoB,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,MAAM,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,cAAlC,cAAoC,CAOzC,CAAC;IACF,MAAM,aAAa,GAAG,SAAS,CAAC,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"]}
|