@azure/monitor-query-metrics 1.0.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/LICENSE +21 -0
- package/README.md +243 -0
- 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/metricsContext.d.ts +15 -0
- package/dist/browser/api/metricsContext.d.ts.map +1 -0
- package/dist/browser/api/metricsContext.js +38 -0
- package/dist/browser/api/metricsContext.js.map +1 -0
- package/dist/browser/api/operations.d.ts +9 -0
- package/dist/browser/api/operations.d.ts.map +1 -0
- package/dist/browser/api/operations.js +49 -0
- package/dist/browser/api/operations.js.map +1 -0
- package/dist/browser/api/options.d.ts +57 -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 +5 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +6 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/internalMetricsClient.d.ts +15 -0
- package/dist/browser/internalMetricsClient.d.ts.map +1 -0
- package/dist/browser/internalMetricsClient.js +23 -0
- package/dist/browser/internalMetricsClient.js.map +1 -0
- 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/metricsClient.d.ts +28 -0
- package/dist/browser/metricsClient.d.ts.map +1 -0
- package/dist/browser/metricsClient.js +48 -0
- package/dist/browser/metricsClient.js.map +1 -0
- 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/browser/models/models.d.ts +141 -0
- package/dist/browser/models/models.d.ts.map +1 -0
- package/dist/browser/models/models.js +136 -0
- package/dist/browser/models/models.js.map +1 -0
- package/dist/browser/models.d.ts +167 -0
- package/dist/browser/models.d.ts.map +1 -0
- package/dist/browser/models.js +46 -0
- package/dist/browser/models.js.map +1 -0
- package/dist/browser/package.json +3 -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/browser/utils.d.ts +13 -0
- package/dist/browser/utils.d.ts.map +1 -0
- package/dist/browser/utils.js +54 -0
- package/dist/browser/utils.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/metricsContext.d.ts +15 -0
- package/dist/commonjs/api/metricsContext.d.ts.map +1 -0
- package/dist/commonjs/api/metricsContext.js +41 -0
- package/dist/commonjs/api/metricsContext.js.map +1 -0
- package/dist/commonjs/api/operations.d.ts +9 -0
- package/dist/commonjs/api/operations.d.ts.map +1 -0
- package/dist/commonjs/api/operations.js +54 -0
- package/dist/commonjs/api/operations.js.map +1 -0
- package/dist/commonjs/api/options.d.ts +57 -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 +5 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +13 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/internalMetricsClient.d.ts +15 -0
- package/dist/commonjs/internalMetricsClient.d.ts.map +1 -0
- package/dist/commonjs/internalMetricsClient.js +27 -0
- package/dist/commonjs/internalMetricsClient.js.map +1 -0
- 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/metricsClient.d.ts +28 -0
- package/dist/commonjs/metricsClient.d.ts.map +1 -0
- package/dist/commonjs/metricsClient.js +52 -0
- package/dist/commonjs/metricsClient.js.map +1 -0
- 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 +8 -0
- package/dist/commonjs/models/index.js.map +1 -0
- package/dist/commonjs/models/models.d.ts +141 -0
- package/dist/commonjs/models/models.d.ts.map +1 -0
- package/dist/commonjs/models/models.js +157 -0
- package/dist/commonjs/models/models.js.map +1 -0
- package/dist/commonjs/models.d.ts +167 -0
- package/dist/commonjs/models.d.ts.map +1 -0
- package/dist/commonjs/models.js +49 -0
- package/dist/commonjs/models.js.map +1 -0
- package/dist/commonjs/package.json +3 -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/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/utils.d.ts +13 -0
- package/dist/commonjs/utils.d.ts.map +1 -0
- package/dist/commonjs/utils.js +60 -0
- package/dist/commonjs/utils.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/metricsContext.d.ts +15 -0
- package/dist/esm/api/metricsContext.d.ts.map +1 -0
- package/dist/esm/api/metricsContext.js +38 -0
- package/dist/esm/api/metricsContext.js.map +1 -0
- package/dist/esm/api/operations.d.ts +9 -0
- package/dist/esm/api/operations.d.ts.map +1 -0
- package/dist/esm/api/operations.js +49 -0
- package/dist/esm/api/operations.js.map +1 -0
- package/dist/esm/api/options.d.ts +57 -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 +5 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internalMetricsClient.d.ts +15 -0
- package/dist/esm/internalMetricsClient.d.ts.map +1 -0
- package/dist/esm/internalMetricsClient.js +23 -0
- package/dist/esm/internalMetricsClient.js.map +1 -0
- 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/metricsClient.d.ts +28 -0
- package/dist/esm/metricsClient.d.ts.map +1 -0
- package/dist/esm/metricsClient.js +48 -0
- package/dist/esm/metricsClient.js.map +1 -0
- 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/esm/models/models.d.ts +141 -0
- package/dist/esm/models/models.d.ts.map +1 -0
- package/dist/esm/models/models.js +136 -0
- package/dist/esm/models/models.js.map +1 -0
- package/dist/esm/models.d.ts +167 -0
- package/dist/esm/models.d.ts.map +1 -0
- package/dist/esm/models.js +46 -0
- package/dist/esm/models.js.map +1 -0
- package/dist/esm/package.json +3 -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/esm/utils.d.ts +13 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +54 -0
- package/dist/esm/utils.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/metricsContext.d.ts +15 -0
- package/dist/react-native/api/metricsContext.d.ts.map +1 -0
- package/dist/react-native/api/metricsContext.js +38 -0
- package/dist/react-native/api/metricsContext.js.map +1 -0
- package/dist/react-native/api/operations.d.ts +9 -0
- package/dist/react-native/api/operations.d.ts.map +1 -0
- package/dist/react-native/api/operations.js +49 -0
- package/dist/react-native/api/operations.js.map +1 -0
- package/dist/react-native/api/options.d.ts +57 -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 +5 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +6 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/internalMetricsClient.d.ts +15 -0
- package/dist/react-native/internalMetricsClient.d.ts.map +1 -0
- package/dist/react-native/internalMetricsClient.js +23 -0
- package/dist/react-native/internalMetricsClient.js.map +1 -0
- 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/metricsClient.d.ts +28 -0
- package/dist/react-native/metricsClient.d.ts.map +1 -0
- package/dist/react-native/metricsClient.js +48 -0
- package/dist/react-native/metricsClient.js.map +1 -0
- 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/react-native/models/models.d.ts +141 -0
- package/dist/react-native/models/models.d.ts.map +1 -0
- package/dist/react-native/models/models.js +136 -0
- package/dist/react-native/models/models.js.map +1 -0
- package/dist/react-native/models.d.ts +167 -0
- package/dist/react-native/models.d.ts.map +1 -0
- package/dist/react-native/models.js +46 -0
- package/dist/react-native/models.js.map +1 -0
- package/dist/react-native/package.json +3 -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/dist/react-native/utils.d.ts +13 -0
- package/dist/react-native/utils.d.ts.map +1 -0
- package/dist/react-native/utils.js +54 -0
- package/dist/react-native/utils.js.map +1 -0
- package/package.json +130 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;GAEG;AACH,MAAM,CAAN,IAAY,gCAaX;AAbD,WAAY,gCAAgC;IAC1C;;OAEG;IACH,sFAAkD,CAAA;IAClD;;OAEG;IACH,4FAAwD,CAAA;IACxD;;OAEG;IACH,qFAAiD,CAAA;AACnD,CAAC,EAbW,gCAAgC,KAAhC,gCAAgC,QAa3C;AA6HD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,oCAAoC;IACpC,SAAS,EAAE,KAAK;IAChB,oCAAoC;IACpC,SAAS,EAAE,KAAK;IAChB,oCAAoC;IACpC,OAAO,EAAE,KAAK;IACd,oCAAoC;IACpC,MAAM,EAAE,KAAK;IACb,qCAAqC;IACrC,OAAO,EAAE,MAAM;IACf,qCAAqC;IACrC,SAAS,EAAE,MAAM;IACjB,sCAAsC;IACtC,eAAe,EAAE,OAAO;IACxB,sCAAsC;IACtC,eAAe,EAAE,OAAO;IACxB,sCAAsC;IACtC,aAAa,EAAE,OAAO;IACtB,qCAAqC;IACrC,WAAW,EAAE,MAAM;CACX,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { MetricsClientOptionalParams } from \"./internalMetricsClient.js\";\nimport type { Metric } from \"./models/models.js\";\n\n/**\n * Known values for Monitor Audience\n */\nexport enum KnownMonitorMetricsQueryAudience {\n /**\n * Audience for Azure China\n */\n AzureChina = \"https://management.chinacloudapi.cn\",\n /**\n * Audience for Azure Government\n */\n AzureGovernment = \"https://management.usgovcloudapi.net\",\n /**\n * Audience for Azure Public\n */\n AzurePublicCloud = \"https://management.azure.com\",\n}\n\n/**\n * Options for configuring the MetricsClient.\n */\nexport interface MetricsClientOptions extends MetricsClientOptionalParams {\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 KnownMonitorMetricsQueryAudience} can be used interchangeably with audience\n */\n audience?: string;\n /**\n * The endpoint to use when communicating with the service.\n */\n endpoint?: string;\n}\n\n// MetricsQueryResourcesOptions is equivalent to Omit<QueryResourcesOptionalParams, \"startTime\" | \"endTime\"> {\n// endTime?: Date;\n// startTime?: Date;\n// }\n/**\n * Options for querying metrics for multiple resources.\n */\nexport interface MetricsQueryResourcesOptions {\n /**\n * The start time of the query.\n */\n startTime?: Date;\n /** The end time of the query. */\n endTime?: Date;\n /**\n * The interval (i.e. timegrain) of the query in ISO 8601 duration format.\n * Defaults to PT1M. Special case for 'FULL' value that returns single datapoint\n * for entire time span requested.\n * *Examples: PT15M, PT1H, P1D, FULL*\n *\n * {@link Durations}\n */\n interval?: string;\n /** The list of aggregation types (comma separated) to retrieve. *Examples: average, minimum, maximum* */\n aggregation?: string;\n /**\n * The maximum number of records to retrieve per resource ID in the request.\n * Valid only if filter is specified.\n * Defaults to 10.\n */\n top?: number;\n /**\n * The aggregation to use for sorting results and the direction of the sort.\n * Only one order can be specified.\n * *Examples: sum asc*\n */\n orderBy?: string;\n /**\n * The filter is used to reduce the set of metric data\n * returned.<br>Example:<br>Metric contains metadata A, B and C.<br>- Return all\n * time series of C where A = a1 and B = b1 or b2<br>**filter=A eq ‘a1’ and B eq\n * ‘b1’ or B eq ‘b2’ and C eq ‘*’**<br>- Invalid variant:<br>**filter=A eq ‘a1’\n * and B eq ‘b1’ and C eq ‘*’ or B = ‘b2’**<br>This is invalid because the logical\n * or operator cannot separate two different metadata names.<br>- Return all time\n * series where A = a1, B = b1 and C = c1:<br>**filter=A eq ‘a1’ and B eq ‘b1’ and\n * C eq ‘c1’**<br>- Return all time series where A = a1<br>**filter=A eq ‘a1’ and\n * B eq ‘*’ and C eq ‘*’**.\n */\n filter?: string;\n /**\n * Dimension name(s) to rollup results by. For example if you only want to see\n * metric values with a filter like 'City eq Seattle or City eq Tacoma' but don't\n * want to see separate values for each city, you can specify 'RollUpBy=City' to\n * see the results for Seattle and Tacoma rolled up into one timeseries.\n */\n rollUpBy?: string;\n}\n\n/**\n * Query time interval type that supports multiple formats.\n */\nexport type QueryTimeInterval =\n | { startTime: Date; endTime: Date }\n | { startTime: Date; duration: string }\n | { duration: string; endTime: Date }\n | { duration: string };\n\n/**\n * Result of a metrics query for a single resource.\n */\nexport interface MetricsQueryResult {\n /**\n * The cost associated with the query.\n */\n cost?: number;\n /**\n * The interval (window size) for which the metric data was returned.\n */\n granularity?: string;\n /**\n * The metrics data.\n */\n metrics: Metric[];\n /**\n * The namespace of the metrics been queried.\n */\n namespace?: string;\n /**\n * The resource that has been queried for metrics.\n */\n resourceId?: string;\n /**\n * The region of the resource been queried for metrics.\n */\n resourceRegion?: string;\n /**\n * The timespan for the query.\n */\n timespan: QueryTimeInterval;\n /**\n * Helper method to get a metric by name.\n * @param metricName - The name of the metric to retrieve.\n * @returns The metric if found, undefined otherwise.\n */\n getMetricByName(metricName: string): Metric | undefined;\n}\n\n/**\n * Aliases for some common ISO8601 durations.\n */\nexport const Durations = {\n /** Alias for ISO8601 value 'P7D' */\n sevenDays: \"P7D\",\n /** Alias for ISO8601 value 'P3D' */\n threeDays: \"P3D\",\n /** Alias for ISO8601 value 'P2D' */\n twoDays: \"P2D\",\n /** Alias for ISO8601 value 'P1D' */\n oneDay: \"P1D\",\n /** Alias for ISO8601 value 'PT1H' */\n oneHour: \"PT1H\",\n /** Alias for ISO8601 value 'PT4H' */\n fourHours: \"PT4H\",\n /** Alias for ISO8601 value 'PT24H' */\n twentyFourHours: \"PT24H\",\n /** Alias for ISO8601 value 'PT48H' */\n fortyEightHours: \"PT48H\",\n /** Alias for ISO8601 value 'PT30M' */\n thirtyMinutes: \"PT30M\",\n /** Alias for ISO8601 value 'PT5M' */\n fiveMinutes: \"PT5M\",\n} as const;\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 ?? 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?.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,13 @@
|
|
|
1
|
+
import type { QueryResourcesOptionalParams } from "./api/options.js";
|
|
2
|
+
import type { MetricsQueryResourcesOptions, MetricsQueryResult } from "./models.js";
|
|
3
|
+
import type { MetricResultsResponseValuesItem } from "./models/models.js";
|
|
4
|
+
export declare const getSubscriptionFromResourceId: (resourceId: string) => string;
|
|
5
|
+
/**
|
|
6
|
+
* Helper function to convert MetricsQueryResourcesOptions to the internal format
|
|
7
|
+
*/
|
|
8
|
+
export declare function mapToInternalQueryOptions(options?: MetricsQueryResourcesOptions): QueryResourcesOptionalParams;
|
|
9
|
+
/**
|
|
10
|
+
* Helper function to create MetricsQueryResult from MetricResultsResponseValuesItem
|
|
11
|
+
*/
|
|
12
|
+
export declare function createMetricsQueryResult(item: MetricResultsResponseValuesItem): MetricsQueryResult;
|
|
13
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EACV,4BAA4B,EAC5B,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAU,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAElF,eAAO,MAAM,6BAA6B,GAAa,YAAY,MAAM,KAAG,MAI3E,CAAC;AASF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,4BAAiC,GACzC,4BAA4B,CAS9B;AAYD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,+BAA+B,GACpC,kBAAkB,CAepB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
export const getSubscriptionFromResourceId = function (resourceId) {
|
|
4
|
+
const startPos = resourceId.indexOf("subscriptions/") + 14;
|
|
5
|
+
const subscriptionId = resourceId.substring(startPos, resourceId.indexOf("/", startPos));
|
|
6
|
+
return subscriptionId;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Helper function to convert Date objects to ISO string format
|
|
10
|
+
*/
|
|
11
|
+
function dateToISOString(date) {
|
|
12
|
+
return date.toISOString();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Helper function to convert MetricsQueryResourcesOptions to the internal format
|
|
16
|
+
*/
|
|
17
|
+
export function mapToInternalQueryOptions(options = {}) {
|
|
18
|
+
if (!options) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
...options,
|
|
23
|
+
startTime: options.startTime ? dateToISOString(options.startTime) : undefined,
|
|
24
|
+
endTime: options.endTime ? dateToISOString(options.endTime) : undefined,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Helper function to reconstruct QueryTimeInterval from start/end times
|
|
29
|
+
*/
|
|
30
|
+
function reconstructTimeInterval(startTime, endTime) {
|
|
31
|
+
return {
|
|
32
|
+
startTime: new Date(startTime),
|
|
33
|
+
endTime: new Date(endTime),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Helper function to create MetricsQueryResult from MetricResultsResponseValuesItem
|
|
38
|
+
*/
|
|
39
|
+
export function createMetricsQueryResult(item) {
|
|
40
|
+
const timespan = reconstructTimeInterval(item.startTime, item.endTime);
|
|
41
|
+
return {
|
|
42
|
+
cost: undefined, // Not available in the new API
|
|
43
|
+
granularity: item.interval,
|
|
44
|
+
metrics: item.metrics,
|
|
45
|
+
namespace: item.namespace,
|
|
46
|
+
resourceId: item.resourceId,
|
|
47
|
+
resourceRegion: item.resourceRegion,
|
|
48
|
+
timespan,
|
|
49
|
+
getMetricByName(metricName) {
|
|
50
|
+
return this.metrics.find((metric) => metric.name === metricName);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAUlC,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,UAAkB;IACvE,MAAM,QAAQ,GAAW,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;IACnE,MAAM,cAAc,GAAW,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjG,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACH,SAAS,eAAe,CAAC,IAAU;IACjC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAwC,EAAE;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7E,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,SAAiB,EAAE,OAAe;IACjE,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;QAC9B,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAqC;IAErC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvE,OAAO;QACL,IAAI,EAAE,SAAS,EAAE,+BAA+B;QAChD,WAAW,EAAE,IAAI,CAAC,QAAQ;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,QAAQ;QACR,eAAe,CAAC,UAAkB;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { QueryResourcesOptionalParams } from \"./api/options.js\";\nimport type {\n MetricsQueryResourcesOptions,\n MetricsQueryResult,\n QueryTimeInterval,\n} from \"./models.js\";\nimport type { Metric, MetricResultsResponseValuesItem } from \"./models/models.js\";\n\nexport const getSubscriptionFromResourceId = function (resourceId: string): string {\n const startPos: number = resourceId.indexOf(\"subscriptions/\") + 14;\n const subscriptionId: string = resourceId.substring(startPos, resourceId.indexOf(\"/\", startPos));\n return subscriptionId;\n};\n\n/**\n * Helper function to convert Date objects to ISO string format\n */\nfunction dateToISOString(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Helper function to convert MetricsQueryResourcesOptions to the internal format\n */\nexport function mapToInternalQueryOptions(\n options: MetricsQueryResourcesOptions = {},\n): QueryResourcesOptionalParams {\n if (!options) {\n return {};\n }\n return {\n ...options,\n startTime: options.startTime ? dateToISOString(options.startTime) : undefined,\n endTime: options.endTime ? dateToISOString(options.endTime) : undefined,\n };\n}\n\n/**\n * Helper function to reconstruct QueryTimeInterval from start/end times\n */\nfunction reconstructTimeInterval(startTime: string, endTime: string): QueryTimeInterval {\n return {\n startTime: new Date(startTime),\n endTime: new Date(endTime),\n };\n}\n\n/**\n * Helper function to create MetricsQueryResult from MetricResultsResponseValuesItem\n */\nexport function createMetricsQueryResult(\n item: MetricResultsResponseValuesItem,\n): MetricsQueryResult {\n const timespan = reconstructTimeInterval(item.startTime, item.endTime);\n\n return {\n cost: undefined, // Not available in the new API\n granularity: item.interval,\n metrics: item.metrics,\n namespace: item.namespace,\n resourceId: item.resourceId,\n resourceRegion: item.resourceRegion,\n timespan,\n getMetricByName(metricName: string): Metric | undefined {\n return this.metrics.find((metric) => metric.name === metricName);\n },\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,4BAA4B,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.queryResources = exports.createMetrics = void 0;
|
|
6
|
+
var metricsContext_js_1 = require("./metricsContext.js");
|
|
7
|
+
Object.defineProperty(exports, "createMetrics", { enumerable: true, get: function () { return metricsContext_js_1.createMetrics; } });
|
|
8
|
+
var operations_js_1 = require("./operations.js");
|
|
9
|
+
Object.defineProperty(exports, "queryResources", { enumerable: true, get: function () { return operations_js_1.queryResources; } });
|
|
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,yDAAiG;AAAxF,kHAAA,aAAa,OAAA;AACtB,iDAAiD;AAAxC,+GAAA,cAAc,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { createMetrics, MetricsContext, MetricsClientOptionalParams } from \"./metricsContext.js\";\nexport { queryResources } from \"./operations.js\";\nexport { QueryResourcesOptionalParams } from \"./options.js\";\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Client, ClientOptions } from "@azure-rest/core-client";
|
|
2
|
+
import type { TokenCredential } from "@azure/core-auth";
|
|
3
|
+
export interface MetricsContext extends Client {
|
|
4
|
+
/** The API version to use for this operation. */
|
|
5
|
+
/** Known values of {@link KnownVersions} that the service accepts. */
|
|
6
|
+
apiVersion: string;
|
|
7
|
+
}
|
|
8
|
+
/** Optional parameters for the client. */
|
|
9
|
+
export interface MetricsClientOptionalParams extends ClientOptions {
|
|
10
|
+
/** The API version to use for this operation. */
|
|
11
|
+
/** Known values of {@link KnownVersions} that the service accepts. */
|
|
12
|
+
apiVersion?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function createMetrics(endpointParam: string, credential: TokenCredential, options?: MetricsClientOptionalParams): MetricsContext;
|
|
15
|
+
//# sourceMappingURL=metricsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metricsContext.d.ts","sourceRoot":"","sources":["../../../src/api/metricsContext.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IAChE,iDAAiD;IACjD,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,2BAAgC,GACxC,cAAc,CAmChB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.createMetrics = createMetrics;
|
|
6
|
+
const logger_js_1 = require("../logger.js");
|
|
7
|
+
const core_client_1 = require("@azure-rest/core-client");
|
|
8
|
+
function createMetrics(endpointParam, credential, options = {}) {
|
|
9
|
+
const endpointUrl = options.endpoint ?? String(endpointParam);
|
|
10
|
+
const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;
|
|
11
|
+
const userAgentInfo = `azsdk-js-monitor-query-metrics/1.0.0`;
|
|
12
|
+
const userAgentPrefix = prefixFromOptions
|
|
13
|
+
? `${prefixFromOptions} ${userAgentInfo}`
|
|
14
|
+
: `${userAgentInfo}`;
|
|
15
|
+
const { apiVersion: _, ...updatedOptions } = {
|
|
16
|
+
...options,
|
|
17
|
+
userAgentOptions: { userAgentPrefix },
|
|
18
|
+
loggingOptions: { logger: options.loggingOptions?.logger ?? logger_js_1.logger.info },
|
|
19
|
+
credentials: {
|
|
20
|
+
scopes: options.credentials?.scopes ?? ["https://metrics.monitor.azure.com/.default"],
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
const clientContext = (0, core_client_1.getClient)(endpointUrl, credential, updatedOptions);
|
|
24
|
+
clientContext.pipeline.removePolicy({ name: "ApiVersionPolicy" });
|
|
25
|
+
const apiVersion = options.apiVersion ?? "2024-02-01";
|
|
26
|
+
clientContext.pipeline.addPolicy({
|
|
27
|
+
name: "ClientApiVersionPolicy",
|
|
28
|
+
sendRequest: (req, next) => {
|
|
29
|
+
// Use the apiVersion defined in request url directly
|
|
30
|
+
// Append one if there is no apiVersion and we have one at client options
|
|
31
|
+
const url = new URL(req.url);
|
|
32
|
+
if (!url.searchParams.get("api-version")) {
|
|
33
|
+
// eslint-disable-next-line no-param-reassign
|
|
34
|
+
req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${apiVersion}`;
|
|
35
|
+
}
|
|
36
|
+
return next(req);
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return { ...clientContext, apiVersion };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=metricsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metricsContext.js","sourceRoot":"","sources":["../../../src/api/metricsContext.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAqBlC,sCAuCC;AA1DD,4CAAsC;AAGtC,yDAAoD;AAgBpD,SAAgB,aAAa,CAC3B,aAAqB,EACrB,UAA2B,EAC3B,UAAuC,EAAE;IAEzC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,sCAAsC,CAAC;IAC7D,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,GAAG,iBAAiB,IAAI,aAAa,EAAE;QACzC,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG;QAC3C,GAAG,OAAO;QACV,gBAAgB,EAAE,EAAE,eAAe,EAAE;QACrC,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,kBAAM,CAAC,IAAI,EAAE;QACzE,WAAW,EAAE;YACX,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,4CAA4C,CAAC;SACtF;KACF,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,uBAAS,EAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACzE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,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,6CAA6C;gBAC7C,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,EAAE,GAAG,aAAa,EAAE,UAAU,EAAoB,CAAC;AAC5D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"../logger.js\";\nimport { 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\nexport interface MetricsContext 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 MetricsClientOptionalParams 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\nexport function createMetrics(\n endpointParam: string,\n credential: TokenCredential,\n options: MetricsClientOptionalParams = {},\n): MetricsContext {\n const endpointUrl = options.endpoint ?? String(endpointParam);\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentInfo = `azsdk-js-monitor-query-metrics/1.0.0`;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} ${userAgentInfo}`\n : `${userAgentInfo}`;\n const { apiVersion: _, ...updatedOptions } = {\n ...options,\n userAgentOptions: { userAgentPrefix },\n loggingOptions: { logger: options.loggingOptions?.logger ?? logger.info },\n credentials: {\n scopes: options.credentials?.scopes ?? [\"https://metrics.monitor.azure.com/.default\"],\n },\n };\n const clientContext = getClient(endpointUrl, credential, updatedOptions);\n clientContext.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n const apiVersion = options.apiVersion ?? \"2024-02-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 // eslint-disable-next-line no-param-reassign\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 MetricsContext;\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MetricsContext as Client } from "./index.js";
|
|
2
|
+
import type { ResourceIdList, MetricResultsResponse } from "../models/models.js";
|
|
3
|
+
import type { QueryResourcesOptionalParams } from "./options.js";
|
|
4
|
+
import type { StreamableMethod, PathUncheckedResponse } from "@azure-rest/core-client";
|
|
5
|
+
export declare function _queryResourcesSend(context: Client, subscriptionId: string, metricNamespace: string, metricNames: string[], batchRequest: ResourceIdList, options?: QueryResourcesOptionalParams): StreamableMethod;
|
|
6
|
+
export declare function _queryResourcesDeserialize(result: PathUncheckedResponse): Promise<MetricResultsResponse>;
|
|
7
|
+
/** Lists the metric values for multiple resources. */
|
|
8
|
+
export declare function queryResources(context: Client, subscriptionId: string, metricNamespace: string, metricNames: string[], batchRequest: ResourceIdList, options?: QueryResourcesOptionalParams): Promise<MetricResultsResponse>;
|
|
9
|
+
//# 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,cAAc,IAAI,MAAM,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAOjF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGvF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,cAAc,EAC5B,OAAO,GAAE,4BAAqD,GAC7D,gBAAgB,CAgClB;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAShC;AAED,sDAAsD;AACtD,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,cAAc,EAC5B,OAAO,GAAE,4BAAqD,GAC7D,OAAO,CAAC,qBAAqB,CAAC,CAUhC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports._queryResourcesSend = _queryResourcesSend;
|
|
6
|
+
exports._queryResourcesDeserialize = _queryResourcesDeserialize;
|
|
7
|
+
exports.queryResources = queryResources;
|
|
8
|
+
const models_js_1 = require("../models/models.js");
|
|
9
|
+
const urlTemplate_js_1 = require("../static-helpers/urlTemplate.js");
|
|
10
|
+
const core_client_1 = require("@azure-rest/core-client");
|
|
11
|
+
function _queryResourcesSend(context, subscriptionId, metricNamespace, metricNames, batchRequest, options = { requestOptions: {} }) {
|
|
12
|
+
const path = (0, urlTemplate_js_1.expandUrlTemplate)("/subscriptions/{subscriptionId}/metrics:getBatch{?api%2Dversion,starttime,endtime,interval,metricnamespace,metricnames,aggregation,top,orderby,filter,rollupby}", {
|
|
13
|
+
subscriptionId: subscriptionId,
|
|
14
|
+
"api%2Dversion": context.apiVersion,
|
|
15
|
+
starttime: options?.startTime,
|
|
16
|
+
endtime: options?.endTime,
|
|
17
|
+
interval: options?.interval,
|
|
18
|
+
metricnamespace: metricNamespace,
|
|
19
|
+
metricnames: metricNames.map((p) => {
|
|
20
|
+
return p;
|
|
21
|
+
}),
|
|
22
|
+
aggregation: options?.aggregation,
|
|
23
|
+
top: options?.top,
|
|
24
|
+
orderby: options?.orderBy,
|
|
25
|
+
filter: options?.filter,
|
|
26
|
+
rollupby: options?.rollUpBy,
|
|
27
|
+
}, {
|
|
28
|
+
allowReserved: options?.requestOptions?.skipUrlEncoding,
|
|
29
|
+
});
|
|
30
|
+
return context.path(path).post({
|
|
31
|
+
...(0, core_client_1.operationOptionsToRequestParameters)(options),
|
|
32
|
+
contentType: "application/json",
|
|
33
|
+
headers: {
|
|
34
|
+
accept: "application/json",
|
|
35
|
+
...options.requestOptions?.headers,
|
|
36
|
+
},
|
|
37
|
+
body: (0, models_js_1.resourceIdListSerializer)(batchRequest),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async function _queryResourcesDeserialize(result) {
|
|
41
|
+
const expectedStatuses = ["200"];
|
|
42
|
+
if (!expectedStatuses.includes(result.status)) {
|
|
43
|
+
const error = (0, core_client_1.createRestError)(result);
|
|
44
|
+
error.details = (0, models_js_1.errorResponseDeserializer)(result.body);
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
return (0, models_js_1.metricResultsResponseDeserializer)(result.body);
|
|
48
|
+
}
|
|
49
|
+
/** Lists the metric values for multiple resources. */
|
|
50
|
+
async function queryResources(context, subscriptionId, metricNamespace, metricNames, batchRequest, options = { requestOptions: {} }) {
|
|
51
|
+
const result = await _queryResourcesSend(context, subscriptionId, metricNamespace, metricNames, batchRequest, options);
|
|
52
|
+
return _queryResourcesDeserialize(result);
|
|
53
|
+
}
|
|
54
|
+
//# 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;;AAclC,kDAuCC;AAED,gEAWC;AAGD,wCAiBC;AAlFD,mDAI6B;AAC7B,qEAAqE;AAGrE,yDAA+F;AAE/F,SAAgB,mBAAmB,CACjC,OAAe,EACf,cAAsB,EACtB,eAAuB,EACvB,WAAqB,EACrB,YAA4B,EAC5B,UAAwC,EAAE,cAAc,EAAE,EAAE,EAAE;IAE9D,MAAM,IAAI,GAAG,IAAA,kCAAiB,EAC5B,iKAAiK,EACjK;QACE,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,OAAO,CAAC,UAAU;QACnC,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,eAAe,EAAE,eAAe;QAChC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACtC,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QACF,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,QAAQ,EAAE,OAAO,EAAE,QAAQ;KAC5B,EACD;QACE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe;KACxD,CACF,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAC7B,GAAG,IAAA,iDAAmC,EAAC,OAAO,CAAC;QAC/C,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,GAAG,OAAO,CAAC,cAAc,EAAE,OAAO;SACnC;QACD,IAAI,EAAE,IAAA,oCAAwB,EAAC,YAAY,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,MAA6B;IAE7B,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAA,6BAAe,EAAC,MAAM,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,IAAA,qCAAyB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,IAAA,6CAAiC,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,sDAAsD;AAC/C,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,cAAsB,EACtB,eAAuB,EACvB,WAAqB,EACrB,YAA4B,EAC5B,UAAwC,EAAE,cAAc,EAAE,EAAE,EAAE;IAE9D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,OAAO,EACP,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,OAAO,CACR,CAAC;IACF,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { MetricsContext as Client } from \"./index.js\";\nimport type { ResourceIdList, MetricResultsResponse } from \"../models/models.js\";\nimport {\n resourceIdListSerializer,\n metricResultsResponseDeserializer,\n errorResponseDeserializer,\n} from \"../models/models.js\";\nimport { expandUrlTemplate } from \"../static-helpers/urlTemplate.js\";\nimport type { QueryResourcesOptionalParams } from \"./options.js\";\nimport type { StreamableMethod, PathUncheckedResponse } from \"@azure-rest/core-client\";\nimport { createRestError, operationOptionsToRequestParameters } from \"@azure-rest/core-client\";\n\nexport function _queryResourcesSend(\n context: Client,\n subscriptionId: string,\n metricNamespace: string,\n metricNames: string[],\n batchRequest: ResourceIdList,\n options: QueryResourcesOptionalParams = { requestOptions: {} },\n): StreamableMethod {\n const path = expandUrlTemplate(\n \"/subscriptions/{subscriptionId}/metrics:getBatch{?api%2Dversion,starttime,endtime,interval,metricnamespace,metricnames,aggregation,top,orderby,filter,rollupby}\",\n {\n subscriptionId: subscriptionId,\n \"api%2Dversion\": context.apiVersion,\n starttime: options?.startTime,\n endtime: options?.endTime,\n interval: options?.interval,\n metricnamespace: metricNamespace,\n metricnames: metricNames.map((p: any) => {\n return p;\n }),\n aggregation: options?.aggregation,\n top: options?.top,\n orderby: options?.orderBy,\n filter: options?.filter,\n rollupby: options?.rollUpBy,\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 accept: \"application/json\",\n ...options.requestOptions?.headers,\n },\n body: resourceIdListSerializer(batchRequest),\n });\n}\n\nexport async function _queryResourcesDeserialize(\n result: PathUncheckedResponse,\n): Promise<MetricResultsResponse> {\n const expectedStatuses = [\"200\"];\n if (!expectedStatuses.includes(result.status)) {\n const error = createRestError(result);\n error.details = errorResponseDeserializer(result.body);\n throw error;\n }\n\n return metricResultsResponseDeserializer(result.body);\n}\n\n/** Lists the metric values for multiple resources. */\nexport async function queryResources(\n context: Client,\n subscriptionId: string,\n metricNamespace: string,\n metricNames: string[],\n batchRequest: ResourceIdList,\n options: QueryResourcesOptionalParams = { requestOptions: {} },\n): Promise<MetricResultsResponse> {\n const result = await _queryResourcesSend(\n context,\n subscriptionId,\n metricNamespace,\n metricNames,\n batchRequest,\n options,\n );\n return _queryResourcesDeserialize(result);\n}\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { OperationOptions } from "@azure-rest/core-client";
|
|
2
|
+
/** Optional parameters. */
|
|
3
|
+
export interface QueryResourcesOptionalParams extends OperationOptions {
|
|
4
|
+
/**
|
|
5
|
+
* The start time of the query. It is a string in the format
|
|
6
|
+
* 'yyyy-MM-ddTHH:mm:ss.fffZ'. If you have specified the endtime parameter, then
|
|
7
|
+
* this parameter is required.
|
|
8
|
+
* If only starttime is specified, then endtime defaults to the current time.
|
|
9
|
+
* If no time interval is specified, the default is 1 hour.
|
|
10
|
+
*/
|
|
11
|
+
startTime?: string;
|
|
12
|
+
/** The end time of the query. It is a string in the format 'yyyy-MM-ddTHH:mm:ss.fffZ'. */
|
|
13
|
+
endTime?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The interval (i.e. timegrain) of the query in ISO 8601 duration format.
|
|
16
|
+
* Defaults to PT1M. Special case for 'FULL' value that returns single datapoint
|
|
17
|
+
* for entire time span requested.
|
|
18
|
+
* *Examples: PT15M, PT1H, P1D, FULL*
|
|
19
|
+
*
|
|
20
|
+
* {@link Durations}
|
|
21
|
+
*/
|
|
22
|
+
interval?: string;
|
|
23
|
+
/** The list of aggregation types (comma separated) to retrieve. *Examples: average, minimum, maximum* */
|
|
24
|
+
aggregation?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The maximum number of records to retrieve per resource ID in the request.
|
|
27
|
+
* Valid only if filter is specified.
|
|
28
|
+
* Defaults to 10.
|
|
29
|
+
*/
|
|
30
|
+
top?: number;
|
|
31
|
+
/**
|
|
32
|
+
* The aggregation to use for sorting results and the direction of the sort.
|
|
33
|
+
* Only one order can be specified.
|
|
34
|
+
* *Examples: sum asc*
|
|
35
|
+
*/
|
|
36
|
+
orderBy?: string;
|
|
37
|
+
/**
|
|
38
|
+
* The filter is used to reduce the set of metric data
|
|
39
|
+
* returned.<br>Example:<br>Metric contains metadata A, B and C.<br>- Return all
|
|
40
|
+
* time series of C where A = a1 and B = b1 or b2<br>**filter=A eq ‘a1’ and B eq
|
|
41
|
+
* ‘b1’ or B eq ‘b2’ and C eq ‘*’**<br>- Invalid variant:<br>**filter=A eq ‘a1’
|
|
42
|
+
* and B eq ‘b1’ and C eq ‘*’ or B = ‘b2’**<br>This is invalid because the logical
|
|
43
|
+
* or operator cannot separate two different metadata names.<br>- Return all time
|
|
44
|
+
* series where A = a1, B = b1 and C = c1:<br>**filter=A eq ‘a1’ and B eq ‘b1’ and
|
|
45
|
+
* C eq ‘c1’**<br>- Return all time series where A = a1<br>**filter=A eq ‘a1’ and
|
|
46
|
+
* B eq ‘*’ and C eq ‘*’**.
|
|
47
|
+
*/
|
|
48
|
+
filter?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Dimension name(s) to rollup results by. For example if you only want to see
|
|
51
|
+
* metric values with a filter like 'City eq Seattle or City eq Tacoma' but don't
|
|
52
|
+
* want to see separate values for each city, you can specify 'RollUpBy=City' to
|
|
53
|
+
* see the results for Seattle and Tacoma rolled up into one timeseries.
|
|
54
|
+
*/
|
|
55
|
+
rollUpBy?: string;
|
|
56
|
+
}
|
|
57
|
+
//# 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;AAEhE,2BAA2B;AAC3B,MAAM,WAAW,4BAA6B,SAAQ,gBAAgB;IACpE;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -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\";\n\n/** Optional parameters. */\nexport interface QueryResourcesOptionalParams extends OperationOptions {\n /**\n * The start time of the query. It is a string in the format\n * 'yyyy-MM-ddTHH:mm:ss.fffZ'. If you have specified the endtime parameter, then\n * this parameter is required.\n * If only starttime is specified, then endtime defaults to the current time.\n * If no time interval is specified, the default is 1 hour.\n */\n startTime?: string;\n /** The end time of the query. It is a string in the format 'yyyy-MM-ddTHH:mm:ss.fffZ'. */\n endTime?: string;\n /**\n * The interval (i.e. timegrain) of the query in ISO 8601 duration format.\n * Defaults to PT1M. Special case for 'FULL' value that returns single datapoint\n * for entire time span requested.\n * *Examples: PT15M, PT1H, P1D, FULL*\n *\n * {@link Durations}\n */\n interval?: string;\n /** The list of aggregation types (comma separated) to retrieve. *Examples: average, minimum, maximum* */\n aggregation?: string;\n /**\n * The maximum number of records to retrieve per resource ID in the request.\n * Valid only if filter is specified.\n * Defaults to 10.\n */\n top?: number;\n /**\n * The aggregation to use for sorting results and the direction of the sort.\n * Only one order can be specified.\n * *Examples: sum asc*\n */\n orderBy?: string;\n /**\n * The filter is used to reduce the set of metric data\n * returned.<br>Example:<br>Metric contains metadata A, B and C.<br>- Return all\n * time series of C where A = a1 and B = b1 or b2<br>**filter=A eq ‘a1’ and B eq\n * ‘b1’ or B eq ‘b2’ and C eq ‘*’**<br>- Invalid variant:<br>**filter=A eq ‘a1’\n * and B eq ‘b1’ and C eq ‘*’ or B = ‘b2’**<br>This is invalid because the logical\n * or operator cannot separate two different metadata names.<br>- Return all time\n * series where A = a1, B = b1 and C = c1:<br>**filter=A eq ‘a1’ and B eq ‘b1’ and\n * C eq ‘c1’**<br>- Return all time series where A = a1<br>**filter=A eq ‘a1’ and\n * B eq ‘*’ and C eq ‘*’**.\n */\n filter?: string;\n /**\n * Dimension name(s) to rollup results by. For example if you only want to see\n * metric values with a filter like 'City eq Seattle or City eq Tacoma' but don't\n * want to see separate values for each city, you can specify 'RollUpBy=City' to\n * see the results for Seattle and Tacoma rolled up into one timeseries.\n */\n rollUpBy?: string;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MetricsClient } from "./metricsClient.js";
|
|
2
|
+
export { MetricsQueryResourcesOptions, MetricsQueryResult, QueryTimeInterval, Durations, KnownMonitorMetricsQueryAudience, MetricsClientOptions, } from "./models.js";
|
|
3
|
+
export { ResourceIdList, MetricResultsResponse, MetricResultsResponseValuesItem, Metric, MetricUnit, TimeSeriesElement, MetadataValue, MetricValue, ErrorResponse, ErrorDetail, ErrorAdditionalInfo, KnownVersions, } from "./models/index.js";
|
|
4
|
+
export { MetricsClientOptionalParams } from "./api/index.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,gCAAgC,EAChC,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,+BAA+B,EAC/B,MAAM,EACN,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.KnownVersions = exports.KnownMonitorMetricsQueryAudience = exports.Durations = exports.MetricsClient = void 0;
|
|
6
|
+
var metricsClient_js_1 = require("./metricsClient.js");
|
|
7
|
+
Object.defineProperty(exports, "MetricsClient", { enumerable: true, get: function () { return metricsClient_js_1.MetricsClient; } });
|
|
8
|
+
var models_js_1 = require("./models.js");
|
|
9
|
+
Object.defineProperty(exports, "Durations", { enumerable: true, get: function () { return models_js_1.Durations; } });
|
|
10
|
+
Object.defineProperty(exports, "KnownMonitorMetricsQueryAudience", { enumerable: true, get: function () { return models_js_1.KnownMonitorMetricsQueryAudience; } });
|
|
11
|
+
var index_js_1 = require("./models/index.js");
|
|
12
|
+
Object.defineProperty(exports, "KnownVersions", { enumerable: true, get: function () { return index_js_1.KnownVersions; } });
|
|
13
|
+
//# sourceMappingURL=index.js.map
|