@dynatrace-sdk/client-query 1.17.1 → 1.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  @dynatrace-sdk/client-query
4
4
 
5
+ ## 1.18.1
6
+
7
+ ### Patch Changes
8
+
9
+ - Fix date-time format serialization. (APPDEV-11661)
10
+
11
+ ## 1.18.0
12
+
13
+ ### Minor Changes
14
+
15
+ - Add `scalar` parameter to `MetricMetadata`
16
+ - Add `SEARCH_OPERATOR`, `SEARCH_PATTERN`, `SAVED_TABLE_NAME` and `PARAMETER_MODIFIER` to the `TokenType` enum
17
+
5
18
  ## 1.17.1
6
19
 
7
20
  ### Patch Changes
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @dynatrace-sdk/client-query
2
2
 
3
- [![npm](https://img.shields.io/badge/npm-v1.17.1-blue)](https://www.npmjs.com/package/@dynatrace-sdk/client-query/v/1.17.1)
3
+ [![npm](https://img.shields.io/badge/npm-v1.18.1-blue)](https://www.npmjs.com/package/@dynatrace-sdk/client-query/v/1.18.1)
4
4
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5
5
 
6
6
  Exposes an API to fetch records stored in Grail
@@ -786,7 +786,7 @@ Part of the suggestion.
786
786
  |info|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|The type of the suggestion. |
787
787
  |suggestion<sup>*required</sup>|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|The suggested continuation of the query. |
788
788
  |synopsis|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|The synopsis of the suggestion. |
789
- |type<sup>*required</sup>|"SPACE" &#124; "LINEBREAK" &#124; "INDENT" &#124; "PIPE" &#124; "DOT" &#124; "COLON" &#124; "COMMA" &#124; "ASSIGNMENT" &#124; "BRACE_OPEN" &#124; "BRACE_CLOSE" &#124; "BRACKET_OPEN" &#124; "BRACKET_CLOSE" &#124; "PARENTHESIS_OPEN" &#124; "PARENTHESIS_CLOSE" &#124; "QUOTE" &#124; "SINGLE_QUOTE" &#124; "SLASH" &#124; "BOOLEAN_TRUE" &#124; "BOOLEAN_FALSE" &#124; "NULL" &#124; "COMMAND_NAME" &#124; "PARAMETER_KEY" &#124; "PARAMETER_VALUE_SCOPE" &#124; "FUNCTION_NAME" &#124; "TIMESERIES_AGGREGATION" &#124; "TIMESERIES_AGGREGATION_EXPRESSION" &#124; "OPERATOR" &#124; "TRAVERSAL_OPERATOR" &#124; "TRAVERSAL_RELATION_NAME" &#124; "TRAVERSAL_HOP_COUNT" &#124; "SIMPLE_IDENTIFIER" &#124; "DATA_OBJECT" &#124; "NUMBER" &#124; "STRING" &#124; "TIME_UNIT" &#124; "TIMESTAMP_VALUE" &#124; "METRIC_KEY" &#124; "VARIABLE" &#124; "END_COMMENT" &#124; "UID_VALUE" &#124; "PARSE_PATTERN" &#124; "FIELD_PATTERN" &#124; "ENTITY_SELECTOR_PART" &#124; "FIELD_MODIFIER" &#124; "ENTITY_TYPE" &#124; "ENTITY_ATTRIBUTE" &#124; "SMARTSCAPE_ID_VALUE"|The type of the autocomplete token. |
789
+ |type<sup>*required</sup>|"SPACE" &#124; "LINEBREAK" &#124; "INDENT" &#124; "PIPE" &#124; "DOT" &#124; "COLON" &#124; "COMMA" &#124; "ASSIGNMENT" &#124; "BRACE_OPEN" &#124; "BRACE_CLOSE" &#124; "BRACKET_OPEN" &#124; "BRACKET_CLOSE" &#124; "PARENTHESIS_OPEN" &#124; "PARENTHESIS_CLOSE" &#124; "QUOTE" &#124; "SINGLE_QUOTE" &#124; "SLASH" &#124; "BOOLEAN_TRUE" &#124; "BOOLEAN_FALSE" &#124; "NULL" &#124; "COMMAND_NAME" &#124; "PARAMETER_KEY" &#124; "PARAMETER_VALUE_SCOPE" &#124; "FUNCTION_NAME" &#124; "TIMESERIES_AGGREGATION" &#124; "TIMESERIES_AGGREGATION_EXPRESSION" &#124; "OPERATOR" &#124; "SEARCH_OPERATOR" &#124; "TRAVERSAL_OPERATOR" &#124; "TRAVERSAL_RELATION_NAME" &#124; "TRAVERSAL_HOP_COUNT" &#124; "SIMPLE_IDENTIFIER" &#124; "DATA_OBJECT" &#124; "NUMBER" &#124; "STRING" &#124; "TIME_UNIT" &#124; "TIMESTAMP_VALUE" &#124; "METRIC_KEY" &#124; "VARIABLE" &#124; "END_COMMENT" &#124; "UID_VALUE" &#124; "PARSE_PATTERN" &#124; "FIELD_PATTERN" &#124; "SEARCH_PATTERN" &#124; "ENTITY_SELECTOR_PART" &#124; "SAVED_TABLE_NAME" &#124; "PARAMETER_MODIFIER" &#124; "FIELD_MODIFIER" &#124; "ENTITY_TYPE" &#124; "ENTITY_ATTRIBUTE" &#124; "SMARTSCAPE_ID_VALUE"|The type of the autocomplete token. |
790
790
 
791
791
  ### DQLAlternativeNode
792
792
 
@@ -832,7 +832,7 @@ Node that represents single token.
832
832
  |isOptional<sup>*required</sup>|[boolean](https://developer.mozilla.org/en-US/docs/Glossary/Boolean)|True if the node is optional. |
833
833
  |nodeType<sup>*required</sup>|"TERMINAL" &#124; "CONTAINER" &#124; "ALTERNATIVE"|The type of the node. |
834
834
  |tokenPosition|<a href="#tokenposition" target="_blank" rel="noopener noreferrer">TokenPosition</a>|The position of a token in a query string used for errors and notification to map the message to a specific part of the query. |
835
- |type|"SPACE" &#124; "LINEBREAK" &#124; "INDENT" &#124; "PIPE" &#124; "DOT" &#124; "COLON" &#124; "COMMA" &#124; "ASSIGNMENT" &#124; "BRACE_OPEN" &#124; "BRACE_CLOSE" &#124; "BRACKET_OPEN" &#124; "BRACKET_CLOSE" &#124; "PARENTHESIS_OPEN" &#124; "PARENTHESIS_CLOSE" &#124; "QUOTE" &#124; "SINGLE_QUOTE" &#124; "SLASH" &#124; "BOOLEAN_TRUE" &#124; "BOOLEAN_FALSE" &#124; "NULL" &#124; "COMMAND_NAME" &#124; "PARAMETER_KEY" &#124; "PARAMETER_VALUE_SCOPE" &#124; "FUNCTION_NAME" &#124; "TIMESERIES_AGGREGATION" &#124; "TIMESERIES_AGGREGATION_EXPRESSION" &#124; "OPERATOR" &#124; "TRAVERSAL_OPERATOR" &#124; "TRAVERSAL_RELATION_NAME" &#124; "TRAVERSAL_HOP_COUNT" &#124; "SIMPLE_IDENTIFIER" &#124; "DATA_OBJECT" &#124; "NUMBER" &#124; "STRING" &#124; "TIME_UNIT" &#124; "TIMESTAMP_VALUE" &#124; "METRIC_KEY" &#124; "VARIABLE" &#124; "END_COMMENT" &#124; "UID_VALUE" &#124; "PARSE_PATTERN" &#124; "FIELD_PATTERN" &#124; "ENTITY_SELECTOR_PART" &#124; "FIELD_MODIFIER" &#124; "ENTITY_TYPE" &#124; "ENTITY_ATTRIBUTE" &#124; "SMARTSCAPE_ID_VALUE"|The type of the autocomplete token. |
835
+ |type|"SPACE" &#124; "LINEBREAK" &#124; "INDENT" &#124; "PIPE" &#124; "DOT" &#124; "COLON" &#124; "COMMA" &#124; "ASSIGNMENT" &#124; "BRACE_OPEN" &#124; "BRACE_CLOSE" &#124; "BRACKET_OPEN" &#124; "BRACKET_CLOSE" &#124; "PARENTHESIS_OPEN" &#124; "PARENTHESIS_CLOSE" &#124; "QUOTE" &#124; "SINGLE_QUOTE" &#124; "SLASH" &#124; "BOOLEAN_TRUE" &#124; "BOOLEAN_FALSE" &#124; "NULL" &#124; "COMMAND_NAME" &#124; "PARAMETER_KEY" &#124; "PARAMETER_VALUE_SCOPE" &#124; "FUNCTION_NAME" &#124; "TIMESERIES_AGGREGATION" &#124; "TIMESERIES_AGGREGATION_EXPRESSION" &#124; "OPERATOR" &#124; "SEARCH_OPERATOR" &#124; "TRAVERSAL_OPERATOR" &#124; "TRAVERSAL_RELATION_NAME" &#124; "TRAVERSAL_HOP_COUNT" &#124; "SIMPLE_IDENTIFIER" &#124; "DATA_OBJECT" &#124; "NUMBER" &#124; "STRING" &#124; "TIME_UNIT" &#124; "TIMESTAMP_VALUE" &#124; "METRIC_KEY" &#124; "VARIABLE" &#124; "END_COMMENT" &#124; "UID_VALUE" &#124; "PARSE_PATTERN" &#124; "FIELD_PATTERN" &#124; "SEARCH_PATTERN" &#124; "ENTITY_SELECTOR_PART" &#124; "SAVED_TABLE_NAME" &#124; "PARAMETER_MODIFIER" &#124; "FIELD_MODIFIER" &#124; "ENTITY_TYPE" &#124; "ENTITY_ATTRIBUTE" &#124; "SMARTSCAPE_ID_VALUE"|The type of the autocomplete token. |
836
836
 
837
837
  ### ErrorEnvelope
838
838
 
@@ -995,6 +995,7 @@ An object that defines additional metric metadata.
995
995
  |metric.key|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|The metric key. |
996
996
  |rate|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|The specified rate normalization parameter. |
997
997
  |rollup|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|Metadata about the rollup type. |
998
+ |scalar|[boolean](https://developer.mozilla.org/en-US/docs/Glossary/Boolean)|Indicates whether the scalar parameter was set to true in the timeseries aggregation function. |
998
999
  |shifted|[boolean](https://developer.mozilla.org/en-US/docs/Glossary/Boolean)|Indicates if the shifted parameter was used. |
999
1000
  |unit|[string](https://developer.mozilla.org/en-US/docs/Glossary/String)|The unit used. |
1000
1001
 
@@ -1182,7 +1183,7 @@ The type of the autocomplete token.
1182
1183
 
1183
1184
  <div class="padding-left--md">
1184
1185
 
1185
- `Assignment` | `BooleanFalse` | `BooleanTrue` | `BraceClose` | `BraceOpen` | `BracketClose` | `BracketOpen` | `Colon` | `Comma` | `CommandName` | `DataObject` | `Dot` | `EndComment` | `EntityAttribute` | `EntitySelectorPart` | `EntityType` | `FieldModifier` | `FieldPattern` | `FunctionName` | `Indent` | `Linebreak` | `MetricKey` | `Null` | `Number` | `Operator` | `ParameterKey` | `ParameterValueScope` | `ParenthesisClose` | `ParenthesisOpen` | `ParsePattern` | `Pipe` | `Quote` | `SimpleIdentifier` | `SingleQuote` | `Slash` | `SmartscapeIdValue` | `Space` | `String` | `TimeUnit` | `TimeseriesAggregation` | `TimeseriesAggregationExpression` | `TimestampValue` | `TraversalHopCount` | `TraversalOperator` | `TraversalRelationName` | `UidValue` | `Variable`
1186
+ `Assignment` | `BooleanFalse` | `BooleanTrue` | `BraceClose` | `BraceOpen` | `BracketClose` | `BracketOpen` | `Colon` | `Comma` | `CommandName` | `DataObject` | `Dot` | `EndComment` | `EntityAttribute` | `EntitySelectorPart` | `EntityType` | `FieldModifier` | `FieldPattern` | `FunctionName` | `Indent` | `Linebreak` | `MetricKey` | `Null` | `Number` | `Operator` | `ParameterKey` | `ParameterModifier` | `ParameterValueScope` | `ParenthesisClose` | `ParenthesisOpen` | `ParsePattern` | `Pipe` | `Quote` | `SavedTableName` | `SearchOperator` | `SearchPattern` | `SimpleIdentifier` | `SingleQuote` | `Slash` | `SmartscapeIdValue` | `Space` | `String` | `TimeUnit` | `TimeseriesAggregation` | `TimeseriesAggregationExpression` | `TimestampValue` | `TraversalHopCount` | `TraversalOperator` | `TraversalRelationName` | `UidValue` | `Variable`
1186
1187
 
1187
1188
  </div>
1188
1189
 
package/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2023-2024 Dynatrace LLC
3
+ * Copyright 2023-2025 Dynatrace LLC
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -113,7 +113,8 @@ function getErrorMessage(errorBody, defaultMessage) {
113
113
 
114
114
  // packages/client/query/src/lib/utils/transformations.ts
115
115
  var defaultRuleConfig = {
116
- force: false
116
+ force: false,
117
+ datetime: false
117
118
  };
118
119
  function mergeKeys(key1, key2) {
119
120
  if (!key1)
@@ -173,11 +174,15 @@ function isDateLike(value) {
173
174
  return false;
174
175
  }
175
176
  function transformValue(value, rules, direction) {
176
- const { force } = rules;
177
+ const { force, datetime } = rules;
177
178
  if (direction === "to") {
178
179
  return force || isDateLike(value) ? new Date(value) : value;
179
180
  }
180
- return value instanceof Date ? value.toISOString() : value;
181
+ if (value instanceof Date) {
182
+ const iso = value.toISOString();
183
+ return datetime ? iso : iso.split("T")[0];
184
+ }
185
+ return value;
181
186
  }
182
187
  function transform(direction, object, keys) {
183
188
  function walk(obj, currentKey = "") {
@@ -1049,12 +1054,14 @@ var QueryExecutionClient = class {
1049
1054
  const responseValue = await response.body("json");
1050
1055
  try {
1051
1056
  return transformResponse(responseValue, [
1052
- "result.records.*.start",
1053
- "result.records.*.end",
1054
- "result.records.**.start",
1055
- "result.records.**.end",
1056
- "result.metadata.grail.analysisTimeframe.start",
1057
- "result.metadata.grail.analysisTimeframe.end"
1057
+ ["result.records.*.start", { datetime: true }],
1058
+ ["result.records.*.end", { datetime: true }],
1059
+ ["result.records.**.start", { datetime: true }],
1060
+ ["result.records.**.end", { datetime: true }],
1061
+ ["result.records.*.start", { datetime: true }],
1062
+ ["result.records.*.end", { datetime: true }],
1063
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1064
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1058
1065
  ]);
1059
1066
  } catch (err) {
1060
1067
  throw new import_shared_errors4.InvalidResponseError(
@@ -1254,12 +1261,14 @@ var QueryExecutionClient = class {
1254
1261
  const responseValue = await response.body("json");
1255
1262
  try {
1256
1263
  return transformResponse(responseValue, [
1257
- "result.records.*.start",
1258
- "result.records.*.end",
1259
- "result.records.**.start",
1260
- "result.records.**.end",
1261
- "result.metadata.grail.analysisTimeframe.start",
1262
- "result.metadata.grail.analysisTimeframe.end"
1264
+ ["result.records.*.start", { datetime: true }],
1265
+ ["result.records.*.end", { datetime: true }],
1266
+ ["result.records.**.start", { datetime: true }],
1267
+ ["result.records.**.end", { datetime: true }],
1268
+ ["result.records.*.start", { datetime: true }],
1269
+ ["result.records.*.end", { datetime: true }],
1270
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1271
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1263
1272
  ]);
1264
1273
  } catch (err) {
1265
1274
  throw new import_shared_errors4.InvalidResponseError(
@@ -1276,12 +1285,14 @@ var QueryExecutionClient = class {
1276
1285
  const responseValue = await response.body("json");
1277
1286
  try {
1278
1287
  return transformResponse(responseValue, [
1279
- "result.records.*.start",
1280
- "result.records.*.end",
1281
- "result.records.**.start",
1282
- "result.records.**.end",
1283
- "result.metadata.grail.analysisTimeframe.start",
1284
- "result.metadata.grail.analysisTimeframe.end"
1288
+ ["result.records.*.start", { datetime: true }],
1289
+ ["result.records.*.end", { datetime: true }],
1290
+ ["result.records.**.start", { datetime: true }],
1291
+ ["result.records.**.end", { datetime: true }],
1292
+ ["result.records.*.start", { datetime: true }],
1293
+ ["result.records.*.end", { datetime: true }],
1294
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1295
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1285
1296
  ]);
1286
1297
  } catch (err) {
1287
1298
  throw new import_shared_errors4.InvalidResponseError(
@@ -1617,12 +1628,14 @@ var QueryExecutionClient = class {
1617
1628
  const responseValue = await response.body("json");
1618
1629
  try {
1619
1630
  return transformResponse(responseValue, [
1620
- "result.records.*.start",
1621
- "result.records.*.end",
1622
- "result.records.**.start",
1623
- "result.records.**.end",
1624
- "result.metadata.grail.analysisTimeframe.start",
1625
- "result.metadata.grail.analysisTimeframe.end"
1631
+ ["result.records.*.start", { datetime: true }],
1632
+ ["result.records.*.end", { datetime: true }],
1633
+ ["result.records.**.start", { datetime: true }],
1634
+ ["result.records.**.end", { datetime: true }],
1635
+ ["result.records.*.start", { datetime: true }],
1636
+ ["result.records.*.end", { datetime: true }],
1637
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1638
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1626
1639
  ]);
1627
1640
  } catch (err) {
1628
1641
  throw new import_shared_errors4.InvalidResponseError(
@@ -1845,6 +1858,7 @@ var TokenType = /* @__PURE__ */ ((TokenType2) => {
1845
1858
  TokenType2["TimeseriesAggregation"] = "TIMESERIES_AGGREGATION";
1846
1859
  TokenType2["TimeseriesAggregationExpression"] = "TIMESERIES_AGGREGATION_EXPRESSION";
1847
1860
  TokenType2["Operator"] = "OPERATOR";
1861
+ TokenType2["SearchOperator"] = "SEARCH_OPERATOR";
1848
1862
  TokenType2["TraversalOperator"] = "TRAVERSAL_OPERATOR";
1849
1863
  TokenType2["TraversalRelationName"] = "TRAVERSAL_RELATION_NAME";
1850
1864
  TokenType2["TraversalHopCount"] = "TRAVERSAL_HOP_COUNT";
@@ -1860,7 +1874,10 @@ var TokenType = /* @__PURE__ */ ((TokenType2) => {
1860
1874
  TokenType2["UidValue"] = "UID_VALUE";
1861
1875
  TokenType2["ParsePattern"] = "PARSE_PATTERN";
1862
1876
  TokenType2["FieldPattern"] = "FIELD_PATTERN";
1877
+ TokenType2["SearchPattern"] = "SEARCH_PATTERN";
1863
1878
  TokenType2["EntitySelectorPart"] = "ENTITY_SELECTOR_PART";
1879
+ TokenType2["SavedTableName"] = "SAVED_TABLE_NAME";
1880
+ TokenType2["ParameterModifier"] = "PARAMETER_MODIFIER";
1864
1881
  TokenType2["FieldModifier"] = "FIELD_MODIFIER";
1865
1882
  TokenType2["EntityType"] = "ENTITY_TYPE";
1866
1883
  TokenType2["EntityAttribute"] = "ENTITY_ATTRIBUTE";
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "dynagen": {
3
- "version": "0.16.3",
3
+ "version": "0.17.0",
4
4
  "generatedAt": "",
5
5
  "template": {
6
6
  "name": "@dynatrace-sdk/template-typescript-client",
7
- "version": "0.30.1"
7
+ "version": "0.31.1"
8
8
  },
9
9
  "featureFlags": {
10
10
  "typeguards": true
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "spec": {
14
14
  "title": "DQL Query",
15
- "version": "1.13.0",
15
+ "version": "1.14.0",
16
16
  "baseUrl": "/platform/storage/query/v1"
17
17
  }
18
18
  }
package/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2023-2024 Dynatrace LLC
3
+ * Copyright 2023-2025 Dynatrace LLC
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
6
6
  * You may obtain a copy of the License at
@@ -78,7 +78,8 @@ function getErrorMessage(errorBody, defaultMessage) {
78
78
 
79
79
  // packages/client/query/src/lib/utils/transformations.ts
80
80
  var defaultRuleConfig = {
81
- force: false
81
+ force: false,
82
+ datetime: false
82
83
  };
83
84
  function mergeKeys(key1, key2) {
84
85
  if (!key1)
@@ -138,11 +139,15 @@ function isDateLike(value) {
138
139
  return false;
139
140
  }
140
141
  function transformValue(value, rules, direction) {
141
- const { force } = rules;
142
+ const { force, datetime } = rules;
142
143
  if (direction === "to") {
143
144
  return force || isDateLike(value) ? new Date(value) : value;
144
145
  }
145
- return value instanceof Date ? value.toISOString() : value;
146
+ if (value instanceof Date) {
147
+ const iso = value.toISOString();
148
+ return datetime ? iso : iso.split("T")[0];
149
+ }
150
+ return value;
146
151
  }
147
152
  function transform(direction, object, keys) {
148
153
  function walk(obj, currentKey = "") {
@@ -1024,12 +1029,14 @@ var QueryExecutionClient = class {
1024
1029
  const responseValue = await response.body("json");
1025
1030
  try {
1026
1031
  return transformResponse(responseValue, [
1027
- "result.records.*.start",
1028
- "result.records.*.end",
1029
- "result.records.**.start",
1030
- "result.records.**.end",
1031
- "result.metadata.grail.analysisTimeframe.start",
1032
- "result.metadata.grail.analysisTimeframe.end"
1032
+ ["result.records.*.start", { datetime: true }],
1033
+ ["result.records.*.end", { datetime: true }],
1034
+ ["result.records.**.start", { datetime: true }],
1035
+ ["result.records.**.end", { datetime: true }],
1036
+ ["result.records.*.start", { datetime: true }],
1037
+ ["result.records.*.end", { datetime: true }],
1038
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1039
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1033
1040
  ]);
1034
1041
  } catch (err) {
1035
1042
  throw new InvalidResponseError2(
@@ -1229,12 +1236,14 @@ var QueryExecutionClient = class {
1229
1236
  const responseValue = await response.body("json");
1230
1237
  try {
1231
1238
  return transformResponse(responseValue, [
1232
- "result.records.*.start",
1233
- "result.records.*.end",
1234
- "result.records.**.start",
1235
- "result.records.**.end",
1236
- "result.metadata.grail.analysisTimeframe.start",
1237
- "result.metadata.grail.analysisTimeframe.end"
1239
+ ["result.records.*.start", { datetime: true }],
1240
+ ["result.records.*.end", { datetime: true }],
1241
+ ["result.records.**.start", { datetime: true }],
1242
+ ["result.records.**.end", { datetime: true }],
1243
+ ["result.records.*.start", { datetime: true }],
1244
+ ["result.records.*.end", { datetime: true }],
1245
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1246
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1238
1247
  ]);
1239
1248
  } catch (err) {
1240
1249
  throw new InvalidResponseError2(
@@ -1251,12 +1260,14 @@ var QueryExecutionClient = class {
1251
1260
  const responseValue = await response.body("json");
1252
1261
  try {
1253
1262
  return transformResponse(responseValue, [
1254
- "result.records.*.start",
1255
- "result.records.*.end",
1256
- "result.records.**.start",
1257
- "result.records.**.end",
1258
- "result.metadata.grail.analysisTimeframe.start",
1259
- "result.metadata.grail.analysisTimeframe.end"
1263
+ ["result.records.*.start", { datetime: true }],
1264
+ ["result.records.*.end", { datetime: true }],
1265
+ ["result.records.**.start", { datetime: true }],
1266
+ ["result.records.**.end", { datetime: true }],
1267
+ ["result.records.*.start", { datetime: true }],
1268
+ ["result.records.*.end", { datetime: true }],
1269
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1270
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1260
1271
  ]);
1261
1272
  } catch (err) {
1262
1273
  throw new InvalidResponseError2(
@@ -1592,12 +1603,14 @@ var QueryExecutionClient = class {
1592
1603
  const responseValue = await response.body("json");
1593
1604
  try {
1594
1605
  return transformResponse(responseValue, [
1595
- "result.records.*.start",
1596
- "result.records.*.end",
1597
- "result.records.**.start",
1598
- "result.records.**.end",
1599
- "result.metadata.grail.analysisTimeframe.start",
1600
- "result.metadata.grail.analysisTimeframe.end"
1606
+ ["result.records.*.start", { datetime: true }],
1607
+ ["result.records.*.end", { datetime: true }],
1608
+ ["result.records.**.start", { datetime: true }],
1609
+ ["result.records.**.end", { datetime: true }],
1610
+ ["result.records.*.start", { datetime: true }],
1611
+ ["result.records.*.end", { datetime: true }],
1612
+ ["result.metadata.grail.analysisTimeframe.start", { datetime: true }],
1613
+ ["result.metadata.grail.analysisTimeframe.end", { datetime: true }]
1601
1614
  ]);
1602
1615
  } catch (err) {
1603
1616
  throw new InvalidResponseError2(
@@ -1829,6 +1842,7 @@ var TokenType = /* @__PURE__ */ ((TokenType2) => {
1829
1842
  TokenType2["TimeseriesAggregation"] = "TIMESERIES_AGGREGATION";
1830
1843
  TokenType2["TimeseriesAggregationExpression"] = "TIMESERIES_AGGREGATION_EXPRESSION";
1831
1844
  TokenType2["Operator"] = "OPERATOR";
1845
+ TokenType2["SearchOperator"] = "SEARCH_OPERATOR";
1832
1846
  TokenType2["TraversalOperator"] = "TRAVERSAL_OPERATOR";
1833
1847
  TokenType2["TraversalRelationName"] = "TRAVERSAL_RELATION_NAME";
1834
1848
  TokenType2["TraversalHopCount"] = "TRAVERSAL_HOP_COUNT";
@@ -1844,7 +1858,10 @@ var TokenType = /* @__PURE__ */ ((TokenType2) => {
1844
1858
  TokenType2["UidValue"] = "UID_VALUE";
1845
1859
  TokenType2["ParsePattern"] = "PARSE_PATTERN";
1846
1860
  TokenType2["FieldPattern"] = "FIELD_PATTERN";
1861
+ TokenType2["SearchPattern"] = "SEARCH_PATTERN";
1847
1862
  TokenType2["EntitySelectorPart"] = "ENTITY_SELECTOR_PART";
1863
+ TokenType2["SavedTableName"] = "SAVED_TABLE_NAME";
1864
+ TokenType2["ParameterModifier"] = "PARAMETER_MODIFIER";
1848
1865
  TokenType2["FieldModifier"] = "FIELD_MODIFIER";
1849
1866
  TokenType2["EntityType"] = "ENTITY_TYPE";
1850
1867
  TokenType2["EntityAttribute"] = "ENTITY_ATTRIBUTE";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynatrace-sdk/client-query",
3
- "version": "1.17.1",
3
+ "version": "1.18.1",
4
4
  "description": "Exposes an API to fetch records stored in Grail.",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
@@ -5,7 +5,7 @@ export interface AutocompleteSuggestionPart {
5
5
  /**
6
6
  * The type of the autocomplete token.
7
7
  */
8
- type: 'SPACE' | 'LINEBREAK' | 'INDENT' | 'PIPE' | 'DOT' | 'COLON' | 'COMMA' | 'ASSIGNMENT' | 'BRACE_OPEN' | 'BRACE_CLOSE' | 'BRACKET_OPEN' | 'BRACKET_CLOSE' | 'PARENTHESIS_OPEN' | 'PARENTHESIS_CLOSE' | 'QUOTE' | 'SINGLE_QUOTE' | 'SLASH' | 'BOOLEAN_TRUE' | 'BOOLEAN_FALSE' | 'NULL' | 'COMMAND_NAME' | 'PARAMETER_KEY' | 'PARAMETER_VALUE_SCOPE' | 'FUNCTION_NAME' | 'TIMESERIES_AGGREGATION' | 'TIMESERIES_AGGREGATION_EXPRESSION' | 'OPERATOR' | 'TRAVERSAL_OPERATOR' | 'TRAVERSAL_RELATION_NAME' | 'TRAVERSAL_HOP_COUNT' | 'SIMPLE_IDENTIFIER' | 'DATA_OBJECT' | 'NUMBER' | 'STRING' | 'TIME_UNIT' | 'TIMESTAMP_VALUE' | 'METRIC_KEY' | 'VARIABLE' | 'END_COMMENT' | 'UID_VALUE' | 'PARSE_PATTERN' | 'FIELD_PATTERN' | 'ENTITY_SELECTOR_PART' | 'FIELD_MODIFIER' | 'ENTITY_TYPE' | 'ENTITY_ATTRIBUTE' | 'SMARTSCAPE_ID_VALUE';
8
+ type: 'SPACE' | 'LINEBREAK' | 'INDENT' | 'PIPE' | 'DOT' | 'COLON' | 'COMMA' | 'ASSIGNMENT' | 'BRACE_OPEN' | 'BRACE_CLOSE' | 'BRACKET_OPEN' | 'BRACKET_CLOSE' | 'PARENTHESIS_OPEN' | 'PARENTHESIS_CLOSE' | 'QUOTE' | 'SINGLE_QUOTE' | 'SLASH' | 'BOOLEAN_TRUE' | 'BOOLEAN_FALSE' | 'NULL' | 'COMMAND_NAME' | 'PARAMETER_KEY' | 'PARAMETER_VALUE_SCOPE' | 'FUNCTION_NAME' | 'TIMESERIES_AGGREGATION' | 'TIMESERIES_AGGREGATION_EXPRESSION' | 'OPERATOR' | 'SEARCH_OPERATOR' | 'TRAVERSAL_OPERATOR' | 'TRAVERSAL_RELATION_NAME' | 'TRAVERSAL_HOP_COUNT' | 'SIMPLE_IDENTIFIER' | 'DATA_OBJECT' | 'NUMBER' | 'STRING' | 'TIME_UNIT' | 'TIMESTAMP_VALUE' | 'METRIC_KEY' | 'VARIABLE' | 'END_COMMENT' | 'UID_VALUE' | 'PARSE_PATTERN' | 'FIELD_PATTERN' | 'SEARCH_PATTERN' | 'ENTITY_SELECTOR_PART' | 'SAVED_TABLE_NAME' | 'PARAMETER_MODIFIER' | 'FIELD_MODIFIER' | 'ENTITY_TYPE' | 'ENTITY_ATTRIBUTE' | 'SMARTSCAPE_ID_VALUE';
9
9
  /**
10
10
  * The type of the suggestion.
11
11
  */
@@ -6,7 +6,7 @@ export interface DQLTerminalNode extends DQLNode {
6
6
  /**
7
7
  * The type of the autocomplete token.
8
8
  */
9
- type?: 'SPACE' | 'LINEBREAK' | 'INDENT' | 'PIPE' | 'DOT' | 'COLON' | 'COMMA' | 'ASSIGNMENT' | 'BRACE_OPEN' | 'BRACE_CLOSE' | 'BRACKET_OPEN' | 'BRACKET_CLOSE' | 'PARENTHESIS_OPEN' | 'PARENTHESIS_CLOSE' | 'QUOTE' | 'SINGLE_QUOTE' | 'SLASH' | 'BOOLEAN_TRUE' | 'BOOLEAN_FALSE' | 'NULL' | 'COMMAND_NAME' | 'PARAMETER_KEY' | 'PARAMETER_VALUE_SCOPE' | 'FUNCTION_NAME' | 'TIMESERIES_AGGREGATION' | 'TIMESERIES_AGGREGATION_EXPRESSION' | 'OPERATOR' | 'TRAVERSAL_OPERATOR' | 'TRAVERSAL_RELATION_NAME' | 'TRAVERSAL_HOP_COUNT' | 'SIMPLE_IDENTIFIER' | 'DATA_OBJECT' | 'NUMBER' | 'STRING' | 'TIME_UNIT' | 'TIMESTAMP_VALUE' | 'METRIC_KEY' | 'VARIABLE' | 'END_COMMENT' | 'UID_VALUE' | 'PARSE_PATTERN' | 'FIELD_PATTERN' | 'ENTITY_SELECTOR_PART' | 'FIELD_MODIFIER' | 'ENTITY_TYPE' | 'ENTITY_ATTRIBUTE' | 'SMARTSCAPE_ID_VALUE';
9
+ type?: 'SPACE' | 'LINEBREAK' | 'INDENT' | 'PIPE' | 'DOT' | 'COLON' | 'COMMA' | 'ASSIGNMENT' | 'BRACE_OPEN' | 'BRACE_CLOSE' | 'BRACKET_OPEN' | 'BRACKET_CLOSE' | 'PARENTHESIS_OPEN' | 'PARENTHESIS_CLOSE' | 'QUOTE' | 'SINGLE_QUOTE' | 'SLASH' | 'BOOLEAN_TRUE' | 'BOOLEAN_FALSE' | 'NULL' | 'COMMAND_NAME' | 'PARAMETER_KEY' | 'PARAMETER_VALUE_SCOPE' | 'FUNCTION_NAME' | 'TIMESERIES_AGGREGATION' | 'TIMESERIES_AGGREGATION_EXPRESSION' | 'OPERATOR' | 'SEARCH_OPERATOR' | 'TRAVERSAL_OPERATOR' | 'TRAVERSAL_RELATION_NAME' | 'TRAVERSAL_HOP_COUNT' | 'SIMPLE_IDENTIFIER' | 'DATA_OBJECT' | 'NUMBER' | 'STRING' | 'TIME_UNIT' | 'TIMESTAMP_VALUE' | 'METRIC_KEY' | 'VARIABLE' | 'END_COMMENT' | 'UID_VALUE' | 'PARSE_PATTERN' | 'FIELD_PATTERN' | 'SEARCH_PATTERN' | 'ENTITY_SELECTOR_PART' | 'SAVED_TABLE_NAME' | 'PARAMETER_MODIFIER' | 'FIELD_MODIFIER' | 'ENTITY_TYPE' | 'ENTITY_ATTRIBUTE' | 'SMARTSCAPE_ID_VALUE';
10
10
  /**
11
11
  * For optional items only: whether this node becomes mandatory when user order is used. True only for some optional 'ghost braces'
12
12
  */
@@ -34,4 +34,8 @@ export interface MetricMetadata {
34
34
  * Indicates if the shifted parameter was used.
35
35
  */
36
36
  shifted?: boolean;
37
+ /**
38
+ * Indicates whether the scalar parameter was set to true in the timeseries aggregation function.
39
+ */
40
+ scalar?: boolean;
37
41
  }
@@ -31,6 +31,7 @@ export declare enum TokenType {
31
31
  TimeseriesAggregation = "TIMESERIES_AGGREGATION",
32
32
  TimeseriesAggregationExpression = "TIMESERIES_AGGREGATION_EXPRESSION",
33
33
  Operator = "OPERATOR",
34
+ SearchOperator = "SEARCH_OPERATOR",
34
35
  TraversalOperator = "TRAVERSAL_OPERATOR",
35
36
  TraversalRelationName = "TRAVERSAL_RELATION_NAME",
36
37
  TraversalHopCount = "TRAVERSAL_HOP_COUNT",
@@ -46,7 +47,10 @@ export declare enum TokenType {
46
47
  UidValue = "UID_VALUE",
47
48
  ParsePattern = "PARSE_PATTERN",
48
49
  FieldPattern = "FIELD_PATTERN",
50
+ SearchPattern = "SEARCH_PATTERN",
49
51
  EntitySelectorPart = "ENTITY_SELECTOR_PART",
52
+ SavedTableName = "SAVED_TABLE_NAME",
53
+ ParameterModifier = "PARAMETER_MODIFIER",
50
54
  FieldModifier = "FIELD_MODIFIER",
51
55
  EntityType = "ENTITY_TYPE",
52
56
  EntityAttribute = "ENTITY_ATTRIBUTE",
@@ -1,5 +1,6 @@
1
1
  type TransformRuleConfig = {
2
2
  force?: boolean;
3
+ datetime?: boolean;
3
4
  };
4
5
  export declare function transformRequest<T = any>(object: T, keys: Array<string | [string, TransformRuleConfig]>): T;
5
6
  export declare function transformResponse<T = any>(object: T, keys: Array<string | [string, TransformRuleConfig]>): T;