@dx-do/client 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/index.cjs.js +788 -458
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +752 -459
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/src/lib/model/datastore/audit/query.d.ts +5 -0
  6. package/dist/src/lib/model/datastore/audit/query.d.ts.map +1 -1
  7. package/dist/src/lib/model/datastore/audit/record.d.ts +5 -0
  8. package/dist/src/lib/model/datastore/audit/record.d.ts.map +1 -1
  9. package/dist/src/lib/model/datastore/audit/response.d.ts +6 -0
  10. package/dist/src/lib/model/datastore/audit/response.d.ts.map +1 -1
  11. package/dist/src/lib/model/datastore/blobstorage/file-envelope.d.ts +24 -0
  12. package/dist/src/lib/model/datastore/blobstorage/file-envelope.d.ts.map +1 -0
  13. package/dist/src/lib/model/datastore/blobstorage/filters.d.ts +3 -0
  14. package/dist/src/lib/model/datastore/blobstorage/filters.d.ts.map +1 -1
  15. package/dist/src/lib/model/datastore/blobstorage/index.d.ts +1 -0
  16. package/dist/src/lib/model/datastore/blobstorage/index.d.ts.map +1 -1
  17. package/dist/src/lib/model/datastore/blobstorage/query.d.ts +4 -0
  18. package/dist/src/lib/model/datastore/blobstorage/query.d.ts.map +1 -1
  19. package/dist/src/lib/model/datastore/blobstorage/response.d.ts +2 -0
  20. package/dist/src/lib/model/datastore/blobstorage/response.d.ts.map +1 -1
  21. package/dist/src/lib/model/datastore/features/feature.d.ts +2 -0
  22. package/dist/src/lib/model/datastore/features/feature.d.ts.map +1 -1
  23. package/dist/src/lib/model/datastore/features/query.d.ts +5 -0
  24. package/dist/src/lib/model/datastore/features/query.d.ts.map +1 -1
  25. package/dist/src/lib/model/datastore/features/response.d.ts +1 -0
  26. package/dist/src/lib/model/datastore/features/response.d.ts.map +1 -1
  27. package/dist/src/lib/model/datastore/index.d.ts +1 -0
  28. package/dist/src/lib/model/datastore/index.d.ts.map +1 -1
  29. package/dist/src/lib/model/datastore/nass/store.d.ts +30 -34
  30. package/dist/src/lib/model/datastore/nass/store.d.ts.map +1 -1
  31. package/dist/src/lib/model/datastore/states/filters.d.ts +12 -0
  32. package/dist/src/lib/model/datastore/states/filters.d.ts.map +1 -1
  33. package/dist/src/lib/model/datastore/states/query.d.ts +5 -0
  34. package/dist/src/lib/model/datastore/states/query.d.ts.map +1 -1
  35. package/dist/src/lib/model/datastore/states/response.d.ts +1 -0
  36. package/dist/src/lib/model/datastore/states/response.d.ts.map +1 -1
  37. package/dist/src/lib/model/datastore/tokens/query.d.ts +7 -0
  38. package/dist/src/lib/model/datastore/tokens/query.d.ts.map +1 -1
  39. package/dist/src/lib/model/datastore/tokens/response.d.ts +1 -0
  40. package/dist/src/lib/model/datastore/tokens/response.d.ts.map +1 -1
  41. package/dist/src/lib/model/datastore/views/filters.d.ts +7 -0
  42. package/dist/src/lib/model/datastore/views/filters.d.ts.map +1 -1
  43. package/dist/src/lib/model/datastore/views/query.d.ts +2 -0
  44. package/dist/src/lib/model/datastore/views/query.d.ts.map +1 -1
  45. package/dist/src/lib/model/datastore/views/response.d.ts.map +1 -1
  46. package/dist/src/lib/model/log/ingest.d.ts +15 -4
  47. package/dist/src/lib/model/log/ingest.d.ts.map +1 -1
  48. package/dist/src/lib/services/datastore/datastore-nass.service.d.ts +6 -0
  49. package/dist/src/lib/services/datastore/datastore-nass.service.d.ts.map +1 -1
  50. package/dist/src/lib/services/logs.service.d.ts +28 -7
  51. package/dist/src/lib/services/logs.service.d.ts.map +1 -1
  52. package/package.json +1 -1
package/dist/index.cjs.js CHANGED
@@ -27011,68 +27011,80 @@ exports.DashboardSearch = void 0;
27011
27011
  })(exports.DashboardSearch || (exports.DashboardSearch = {}));
27012
27012
 
27013
27013
  const VertexStateFilterLazy = v4.z.lazy(() => VertexStateFilterSchema);
27014
+ /** Matches every vertex state. */
27014
27015
  const VertexStateAllFilterSchema = v4.z.looseObject({
27015
- op: v4.z.literal('ALL'),
27016
+ op: v4.z.literal('ALL').describe('Match all vertex states'),
27016
27017
  });
27018
+ /** Logical AND of nested vertex-state filters. */
27017
27019
  const VertexStateAndFilterSchema = v4.z.looseObject({
27018
- op: v4.z.literal('AND'),
27019
- input: v4.z.array(VertexStateFilterLazy).optional(),
27020
+ op: v4.z.literal('AND').describe('Logical AND of nested filters'),
27021
+ input: v4.z.array(VertexStateFilterLazy).optional().describe('Child filters to AND together'),
27020
27022
  });
27023
+ /** Logical OR of nested vertex-state filters. */
27021
27024
  const VertexStateOrFilterSchema = v4.z.looseObject({
27022
- op: v4.z.literal('OR'),
27023
- input: v4.z.array(VertexStateFilterLazy).optional(),
27025
+ op: v4.z.literal('OR').describe('Logical OR of nested filters'),
27026
+ input: v4.z.array(VertexStateFilterLazy).optional().describe('Child filters to OR together'),
27024
27027
  });
27028
+ /** Restricts to states belonging to the given alerts. */
27025
27029
  const VertexStateAlertFilterSchema = v4.z.looseObject({
27026
- op: v4.z.literal('ALERT'),
27027
- input: VertexStateFilterLazy.optional(),
27028
- not: v4.z.boolean().optional(),
27029
- alertId: v4.z.array(v4.z.number()).optional(),
27030
- alertExternalId: v4.z.array(v4.z.string()).optional(),
27030
+ op: v4.z.literal('ALERT').describe('Match states by alert'),
27031
+ input: VertexStateFilterLazy.optional().describe('Nested filter to apply before this predicate'),
27032
+ not: v4.z.boolean().optional().describe('Negate the predicate when true'),
27033
+ alertId: v4.z.array(v4.z.number()).optional().describe('Internal alert IDs to match'),
27034
+ alertExternalId: v4.z.array(v4.z.string()).optional().describe('External alert IDs to match'),
27031
27035
  });
27036
+ /** Restricts to states belonging to the given metrics. */
27032
27037
  const VertexStateMetricFilterSchema = v4.z.looseObject({
27033
- op: v4.z.literal('METRIC'),
27034
- input: VertexStateFilterLazy.optional(),
27035
- not: v4.z.boolean().optional(),
27036
- metricId: v4.z.array(v4.z.number()).optional(),
27037
- metricExternalId: v4.z.array(v4.z.string()).optional(),
27038
+ op: v4.z.literal('METRIC').describe('Match states by metric'),
27039
+ input: VertexStateFilterLazy.optional().describe('Nested filter to apply before this predicate'),
27040
+ not: v4.z.boolean().optional().describe('Negate the predicate when true'),
27041
+ metricId: v4.z.array(v4.z.number()).optional().describe('Internal metric IDs to match'),
27042
+ metricExternalId: v4.z.array(v4.z.string()).optional().describe('External metric IDs to match'),
27038
27043
  });
27044
+ /** Restricts to the given state status values. */
27039
27045
  const VertexStateStateFilterSchema = v4.z.looseObject({
27040
- op: v4.z.literal('STATE'),
27041
- input: VertexStateFilterLazy.optional(),
27042
- not: v4.z.boolean().optional(),
27043
- state: v4.z.array(v4.z.number()).optional(),
27046
+ op: v4.z.literal('STATE').describe('Match by state status value'),
27047
+ input: VertexStateFilterLazy.optional().describe('Nested filter to apply before this predicate'),
27048
+ not: v4.z.boolean().optional().describe('Negate the predicate when true'),
27049
+ state: v4.z.array(v4.z.number()).optional().describe('State status codes to match'),
27044
27050
  });
27051
+ /** Restricts to states on the given vertices. */
27045
27052
  const VertexStateVertexIdFilterSchema = v4.z.looseObject({
27046
- op: v4.z.literal('VERTEX_ID'),
27047
- input: VertexStateFilterLazy.optional(),
27048
- not: v4.z.boolean().optional(),
27049
- vertexId: v4.z.array(v4.z.number()).optional(),
27053
+ op: v4.z.literal('VERTEX_ID').describe('Match states by owning vertex ID'),
27054
+ input: VertexStateFilterLazy.optional().describe('Nested filter to apply before this predicate'),
27055
+ not: v4.z.boolean().optional().describe('Negate the predicate when true'),
27056
+ vertexId: v4.z.array(v4.z.number()).optional().describe('Vertex IDs to match'),
27050
27057
  });
27058
+ /** Restricts to states in the given namespaces. */
27051
27059
  const VertexStateNamespaceFilterSchema = v4.z.looseObject({
27052
- op: v4.z.literal('NAMESPACE'),
27053
- input: VertexStateFilterLazy.optional(),
27054
- not: v4.z.boolean().optional(),
27055
- namespaces: v4.z.array(v4.z.string()).optional(),
27060
+ op: v4.z.literal('NAMESPACE').describe('Match states by namespace'),
27061
+ input: VertexStateFilterLazy.optional().describe('Nested filter to apply before this predicate'),
27062
+ not: v4.z.boolean().optional().describe('Negate the predicate when true'),
27063
+ namespaces: v4.z.array(v4.z.string()).optional().describe('Namespaces to match'),
27056
27064
  });
27065
+ /** Restricts to states produced by the given management modules. */
27057
27066
  const VertexStateManagementModuleFilterSchema = v4.z.looseObject({
27058
- op: v4.z.literal('MANAGEMENT_MODULE'),
27059
- input: VertexStateFilterLazy.optional(),
27060
- not: v4.z.boolean().optional(),
27061
- moduleNames: v4.z.array(v4.z.string()).optional(),
27067
+ op: v4.z.literal('MANAGEMENT_MODULE').describe('Match states by management module'),
27068
+ input: VertexStateFilterLazy.optional().describe('Nested filter to apply before this predicate'),
27069
+ not: v4.z.boolean().optional().describe('Negate the predicate when true'),
27070
+ moduleNames: v4.z.array(v4.z.string()).optional().describe('Management module names to match'),
27062
27071
  });
27072
+ /** Discards the matched set (keeps only side-effect analytics from the nested filter). */
27063
27073
  const VertexStateEmptyFilterSchema = v4.z.looseObject({
27064
- op: v4.z.literal('EMPTY'),
27065
- input: VertexStateFilterLazy.optional(),
27074
+ op: v4.z.literal('EMPTY').describe('Discard matched states, keeping only nested-filter analytics'),
27075
+ input: VertexStateFilterLazy.optional().describe('Nested filter whose analytics to retain'),
27066
27076
  });
27067
27077
  const VertexGroupSchema = v4.z.looseObject({
27068
- groupName: v4.z.string(),
27069
- vertexIds: v4.z.array(v4.z.number()).optional(),
27078
+ groupName: v4.z.string().describe('Name of the vertex group'),
27079
+ vertexIds: v4.z.array(v4.z.number()).optional().describe('Vertex IDs belonging to the group'),
27070
27080
  });
27081
+ /** Rolls matched states up into per-group status counts. */
27071
27082
  const VertexStateCollectVertexGroupStatusFilterSchema = v4.z.looseObject({
27072
- op: v4.z.literal('COLLECT_GROUPS'),
27073
- input: VertexStateFilterLazy.optional(),
27074
- groups: v4.z.array(VertexGroupSchema).optional(),
27083
+ op: v4.z.literal('COLLECT_GROUPS').describe('Aggregate matched states into per-group status counts'),
27084
+ input: VertexStateFilterLazy.optional().describe('Nested filter selecting the states to aggregate'),
27085
+ groups: v4.z.array(VertexGroupSchema).optional().describe('Vertex groups to tally status for'),
27075
27086
  });
27087
+ /** Discriminated union of all vertex-state filter operators, keyed by `op`. */
27076
27088
  const VertexStateFilterSchema = v4.z.discriminatedUnion('op', [
27077
27089
  VertexStateAllFilterSchema,
27078
27090
  VertexStateAndFilterSchema,
@@ -29130,6 +29142,67 @@ function decodeMetricTypeBits(n) {
29130
29142
  return { matched, residual: working >>> 0 };
29131
29143
  }
29132
29144
 
29145
+ /**
29146
+ * Wire format for `POST /nass/metricValue/store`.
29147
+ *
29148
+ * Each datapoint in `values` is a positional tuple. Two variants are supported,
29149
+ * discriminated by the type of the **second** element:
29150
+ *
29151
+ * Regular / String metric (7 elements, `interval` optional):
29152
+ * `[id, time, min|null, max|null, value, count, interval?]`
29153
+ * - String metrics: set `min` and `max` to `null`.
29154
+ * - `interval` defaults to 15 seconds when omitted.
29155
+ *
29156
+ * Extension metric (variable length):
29157
+ * `[id, extensionId, time, interval, ...values]`
29158
+ * - `interval` is required for extensions.
29159
+ * - trailing values may be any mix of number, string, or null.
29160
+ *
29161
+ * The two tuple shapes are unambiguous because index `1` is a `number` (`time`)
29162
+ * for regular datapoints and a `string` (`extensionId`) for extension ones.
29163
+ */
29164
+ const NassRegularDatapointSchema = v4.z
29165
+ .tuple([
29166
+ v4.z.string().describe('Registered metric ID (from the metadata registration response)'),
29167
+ v4.z.number().describe('Sample time in seconds since epoch'),
29168
+ v4.z.number().nullable().describe('Minimum over the interval; `null` for string metrics'),
29169
+ v4.z.number().nullable().describe('Maximum over the interval; `null` for string metrics'),
29170
+ v4.z.union([v4.z.number(), v4.z.string()]).describe('Sample value — numeric, or string for string metrics'),
29171
+ v4.z.number().describe('Number of raw samples aggregated into this datapoint'),
29172
+ v4.z.number().optional().describe('Aggregation interval in seconds; defaults to 15 when omitted'),
29173
+ ])
29174
+ .describe('Regular/string metric datapoint: [id, time, min, max, value, count, interval?]');
29175
+ const NassExtensionDatapointSchema = v4.z
29176
+ .tuple([
29177
+ v4.z.string().describe('Registered metric ID'),
29178
+ v4.z.string().describe('Extension ID identifying the extension metric variant'),
29179
+ v4.z.number().describe('Sample time in seconds since epoch'),
29180
+ v4.z.number().describe('Aggregation interval in seconds (required for extensions)'),
29181
+ ], v4.z
29182
+ .union([v4.z.number(), v4.z.string(), v4.z.null()])
29183
+ .describe('Extension value element — number, string, or null'))
29184
+ .describe('Extension metric datapoint: [id, extensionId, time, interval, ...values]');
29185
+ const NassDatapointSchema = v4.z
29186
+ .union([NassRegularDatapointSchema, NassExtensionDatapointSchema])
29187
+ .describe('A single metric datapoint — regular/string or extension variant');
29188
+ const NassStoreRequestSchema = v4.z.looseObject({
29189
+ values: v4.z.array(NassDatapointSchema).describe('Datapoints to store, one tuple per sample'),
29190
+ });
29191
+ const NassStoreResponseSchema = v4.z.looseObject({
29192
+ metricForwardFailures: v4.z
29193
+ .number()
29194
+ .optional()
29195
+ .describe('Count of datapoints that failed downstream forwarding (present only when > 0)'),
29196
+ metricStringsClamped: v4.z
29197
+ .number()
29198
+ .optional()
29199
+ .describe('Count of string metric values clamped to the server-side length limit'),
29200
+ metricExtensionsClamped: v4.z
29201
+ .number()
29202
+ .optional()
29203
+ .describe('Count of extension metric values clamped to the server-side limit'),
29204
+ });
29205
+
29133
29206
  /**
29134
29207
  * Numeric comparison operators for the `NUMERIC` predicate.
29135
29208
  * - `EQ` — equal
@@ -30093,6 +30166,178 @@ const QueryRequestSchema = v4.z.looseObject({
30093
30166
 
30094
30167
  const QueryResultSchema = v4.z.array(v4.z.unknown());
30095
30168
 
30169
+ /**
30170
+ * Self-describing envelope stored as the blob body by `dx-do blob store`.
30171
+ *
30172
+ * Because `fetchBlob` returns only a blob's content (not its attributes) and
30173
+ * blob queries cannot filter by id, the metadata required to restore a file
30174
+ * travels inside the body itself. `dx-do blob fetch` keys off the `dxdoFile`
30175
+ * marker to decide whether to write a file back to disk or print the content.
30176
+ * The same metadata (minus `data`) is also mirrored into queryable blob
30177
+ * attributes so `blob list-blobs` / `blob query` can find file-blobs.
30178
+ */
30179
+ const BlobFileEnvelopeSchema = v4.z.looseObject({
30180
+ dxdoFile: v4.z
30181
+ .literal(1)
30182
+ .describe('Envelope format marker identifying a blob stored from a local file'),
30183
+ name: v4.z
30184
+ .string()
30185
+ .describe('Original file basename, used to restore the file with its name'),
30186
+ md5: v4.z.string().describe('MD5 hex digest of the original file bytes'),
30187
+ size: v4.z.number().describe('Original file size in bytes'),
30188
+ mtime: v4.z.string().describe('Source file last-modified time, ISO 8601'),
30189
+ sourcePath: v4.z
30190
+ .string()
30191
+ .describe('Absolute local path the file was stored from'),
30192
+ mimeType: v4.z
30193
+ .string()
30194
+ .describe('MIME type guessed from the file extension (application/octet-stream fallback)'),
30195
+ encoding: v4.z.literal('base64').describe('Encoding of the `data` field'),
30196
+ data: v4.z.string().describe('Base64-encoded original file bytes'),
30197
+ });
30198
+
30199
+ const BlobAttributeExpressionSchema = v4.z.looseObject({
30200
+ name: v4.z.string().describe('Attribute name to match against'),
30201
+ values: v4.z.array(v4.z.string()).optional().describe('Accepted values (set membership)'),
30202
+ });
30203
+ /** Matches every blob in the schema. */
30204
+ const BlobAllFilterSchema = v4.z.looseObject({
30205
+ op: v4.z.literal('ALL').describe('Match all blobs in the schema'),
30206
+ });
30207
+ /** Matches blobs whose attributes satisfy the given expressions (AND-ed). */
30208
+ const BlobAttributeFilterSchema = v4.z.looseObject({
30209
+ op: v4.z.literal('ATTRIBUTE').describe('Match blobs by attribute expressions'),
30210
+ expressions: v4.z
30211
+ .array(BlobAttributeExpressionSchema)
30212
+ .optional()
30213
+ .describe('Attribute predicates; all must match'),
30214
+ });
30215
+ /** Discriminated union of blob filter operators, keyed by `op`. */
30216
+ const BlobFilterSchema = v4.z.discriminatedUnion('op', [
30217
+ BlobAllFilterSchema,
30218
+ BlobAttributeFilterSchema,
30219
+ ]);
30220
+
30221
+ /** Indexed attributes attached to a blob (string→scalar map). */
30222
+ const BlobAttributesSchema = v4.z
30223
+ .record(v4.z.string(), v4.z.union([v4.z.string(), v4.z.number(), v4.z.boolean()]))
30224
+ .describe('Indexed, queryable attributes attached to the blob (scalar values)');
30225
+ /** Query params used by `POST /blobstorage/blob` and `DELETE /blobstorage/blob`. */
30226
+ const BlobStoreParamsSchema = v4.z.looseObject({
30227
+ schema: v4.z.string().describe('Blob schema (collection) name'),
30228
+ id: v4.z.string().describe('Blob ID, unique within the schema'),
30229
+ ttl: v4.z
30230
+ .union([v4.z.string(), v4.z.number()])
30231
+ .optional()
30232
+ .describe('Time-to-live: a relative duration in milliseconds (number), or an absolute ISO-8601 expiry timestamp (string)'),
30233
+ });
30234
+ const BlobBulkItemSchema = v4.z.looseObject({
30235
+ schema: v4.z.string().describe('Blob schema (collection) name'),
30236
+ id: v4.z.string().describe('Blob ID, unique within the schema'),
30237
+ ttl: v4.z
30238
+ .union([v4.z.string(), v4.z.number()])
30239
+ .describe('Time-to-live: a relative duration in milliseconds (number), or an absolute ISO-8601 expiry timestamp (string)'),
30240
+ data: v4.z.string().describe('Blob payload (string-encoded)'),
30241
+ attributes: BlobAttributesSchema.optional().describe('Indexed attributes for querying'),
30242
+ });
30243
+ const BlobBulkStoreRequestSchema = v4.z.looseObject({
30244
+ blobs: v4.z.array(BlobBulkItemSchema).describe('Blobs to store in one batch'),
30245
+ });
30246
+ const BlobFetchParamsSchema = v4.z.looseObject({
30247
+ schema: v4.z.string().describe('Blob schema (collection) name'),
30248
+ id: v4.z.string().describe('Blob ID to fetch'),
30249
+ version: v4.z.number().optional().describe('Specific version to fetch; defaults to latest'),
30250
+ });
30251
+ const BlobQueryRequestSchema = v4.z.looseObject({
30252
+ schema: v4.z.string().describe('Blob schema (collection) to query'),
30253
+ filter: BlobFilterSchema.optional().describe('Attribute filter; omit to match all blobs'),
30254
+ includeData: v4.z.boolean().optional().describe('Include each blob’s payload in the response'),
30255
+ includeProfile: v4.z.boolean().optional().describe('Include profiling/diagnostic info in the response'),
30256
+ });
30257
+ const BlobDeleteParamsSchema = v4.z.looseObject({
30258
+ schema: v4.z.string().describe('Blob schema (collection) name'),
30259
+ id: v4.z.string().describe('Blob ID to delete'),
30260
+ });
30261
+ const BlobBulkDeleteEntrySchema = v4.z.looseObject({
30262
+ schema: v4.z.string().describe('Blob schema (collection) name'),
30263
+ id: v4.z.string().describe('Blob ID to delete'),
30264
+ });
30265
+ const BlobBulkDeleteRequestSchema = v4.z.looseObject({
30266
+ blobs: v4.z.array(BlobBulkDeleteEntrySchema).describe('Blobs to delete in one batch'),
30267
+ });
30268
+ /** Schema-list request takes no parameters. */
30269
+ const BlobSchemaListRequestSchema = v4.z.looseObject({});
30270
+ /** Async command to delete an entire blob schema and all its blobs. */
30271
+ const BlobAsyncDeleteSchemaCommandSchema = v4.z.looseObject({
30272
+ op: v4.z.literal('DELETE_SCHEMA').describe('Delete an entire blob schema'),
30273
+ schema: v4.z.string().describe('Blob schema (collection) to delete'),
30274
+ });
30275
+ /** Discriminated union of async blob commands, keyed by `op`. */
30276
+ const BlobAsyncCommandSchema = v4.z.discriminatedUnion('op', [
30277
+ BlobAsyncDeleteSchemaCommandSchema,
30278
+ ]);
30279
+ const BlobExecuteAsyncRequestSchema = v4.z.looseObject({
30280
+ commands: v4.z.array(BlobAsyncCommandSchema).describe('Async commands to enqueue'),
30281
+ });
30282
+ const BlobAsyncResultRequestSchema = v4.z.looseObject({
30283
+ correlationKey: v4.z.string().describe('Correlation key returned by the execute-async call'),
30284
+ });
30285
+
30286
+ const BlobMetadataSchema = v4.z.looseObject({
30287
+ schema: v4.z.string().optional().describe('Blob schema (collection) name'),
30288
+ id: v4.z.string().optional().describe('Blob ID'),
30289
+ ttl: v4.z.string().optional().describe('Remaining time-to-live'),
30290
+ attributes: BlobAttributesSchema.optional().describe('Indexed attributes attached to the blob'),
30291
+ version: v4.z.number().optional().describe('Stored version number'),
30292
+ data: v4.z.string().optional().describe('Blob payload (present only when data was requested)'),
30293
+ });
30294
+ /** Store response — metadata for the persisted blob. */
30295
+ const BlobStoreResponseSchema = BlobMetadataSchema;
30296
+ const BlobBulkStoreResponseSchema = v4.z.looseObject({
30297
+ blobs: v4.z.array(BlobMetadataSchema).optional().describe('Successfully stored blobs'),
30298
+ failed: v4.z.array(BlobMetadataSchema).optional().describe('Blobs that failed to store'),
30299
+ });
30300
+ const BlobQueryResponseSchema = v4.z.looseObject({
30301
+ blobs: v4.z.array(BlobMetadataSchema).optional().describe('Blobs matching the query'),
30302
+ });
30303
+ const BlobDeleteResponseSchema = v4.z.looseObject({
30304
+ blob: BlobMetadataSchema.optional().describe('Metadata of the deleted blob'),
30305
+ });
30306
+ const BlobBulkDeleteResponseSchema = v4.z.looseObject({
30307
+ deletedBlobs: v4.z.array(BlobMetadataSchema).optional().describe('Blobs that were deleted'),
30308
+ });
30309
+ const BlobSchemaItemSchema = v4.z.looseObject({
30310
+ name: v4.z.string().optional().describe('Blob schema (collection) name'),
30311
+ });
30312
+ const BlobSchemaListResponseSchema = v4.z.looseObject({
30313
+ schemas: v4.z.array(BlobSchemaItemSchema).optional().describe('Available blob schemas'),
30314
+ });
30315
+ const BlobExecuteAsyncResponseSchema = v4.z.looseObject({
30316
+ correlationKey: v4.z.string().optional().describe('Key to poll for the async operation result'),
30317
+ });
30318
+ /** Lifecycle state of an async blob operation. */
30319
+ const BlobAsyncResultStateSchema = v4.z
30320
+ .enum(['PENDING', 'RUNNING', 'FINISHED', 'FAILED'])
30321
+ .describe('Async operation state (PENDING, RUNNING, FINISHED, FAILED)');
30322
+ const BlobDeleteSchemaResultSchema = v4.z.looseObject({
30323
+ schema: v4.z.string().optional().describe('Schema that was deleted'),
30324
+ deletedBlobs: v4.z.number().optional().describe('Number of blobs removed with the schema'),
30325
+ });
30326
+ const BlobAsyncResultEntrySchema = v4.z.looseObject({
30327
+ op: v4.z.string().optional().describe('The async command this result corresponds to'),
30328
+ deletedSchema: BlobDeleteSchemaResultSchema.optional().describe('Result detail for a DELETE_SCHEMA command'),
30329
+ });
30330
+ const BlobAsyncResultResponseSchema = v4.z.looseObject({
30331
+ correlationKey: v4.z.string().optional().describe('Correlation key being polled'),
30332
+ state: v4.z.string().optional().describe('Overall operation state (see BlobAsyncResultState)'),
30333
+ numberOfDone: v4.z.number().optional().describe('Count of commands completed so far'),
30334
+ numberOfRemaining: v4.z.number().optional().describe('Count of commands still pending'),
30335
+ results: v4.z
30336
+ .record(v4.z.string(), BlobAsyncResultEntrySchema)
30337
+ .optional()
30338
+ .describe('Per-command results keyed by command identifier'),
30339
+ });
30340
+
30096
30341
  const DATASTORE_SCHEMA_TYPES = [
30097
30342
  'tas',
30098
30343
  'nassql',
@@ -45537,6 +45782,49 @@ const inventorySearchRequestBodyExample = {
45537
45782
  refreshView: false,
45538
45783
  };
45539
45784
 
45785
+ exports.LogIngest = void 0;
45786
+ (function (LogIngest) {
45787
+ LogIngest.LogIngestOptionsSchema = v4.z.looseObject({
45788
+ logtype: v4.z
45789
+ .string()
45790
+ .optional()
45791
+ .describe("Log type — matched against the tenant's configured log types (default: `\"generic\"`)"),
45792
+ host: v4.z
45793
+ .string()
45794
+ .optional()
45795
+ .describe('Host name (default: auto-detected via `os.hostname()`)'),
45796
+ message: v4.z.string().describe('Log message text'),
45797
+ timestamp: v4.z
45798
+ .string()
45799
+ .optional()
45800
+ .describe('ISO 8601 timestamp (default: now)'),
45801
+ agentName: v4.z
45802
+ .string()
45803
+ .optional()
45804
+ .describe('Agent name sent as `__agent_name` (default: `"Logs Collector"`)'),
45805
+ agentInstance: v4.z
45806
+ .string()
45807
+ .optional()
45808
+ .describe('Agent instance identifier sent as `__agent_instance` (default: `"dx-do"`)'),
45809
+ containerId: v4.z
45810
+ .string()
45811
+ .optional()
45812
+ .describe('Container ID for the log entry (default: same as host)'),
45813
+ containerName: v4.z
45814
+ .string()
45815
+ .optional()
45816
+ .describe('Container name for the log entry (default: same as agentInstance)'),
45817
+ file: v4.z
45818
+ .string()
45819
+ .optional()
45820
+ .describe('Source file label (default: `"dx-do.cli"`)'),
45821
+ ip: v4.z
45822
+ .string()
45823
+ .optional()
45824
+ .describe('Source IP address (default: first non-loopback IPv4, falls back to `"127.0.0.1"`)'),
45825
+ });
45826
+ })(exports.LogIngest || (exports.LogIngest = {}));
45827
+
45540
45828
  exports.LogQuery = void 0;
45541
45829
  (function (LogQuery) {
45542
45830
  LogQuery.ValidFieldConditions = [
@@ -73446,55 +73734,70 @@ class LogsService {
73446
73734
  queryLogs(logQueryBody) {
73447
73735
  return this.dxSaasService.oiPost('oi/loganalytics/v1/api/logs/filter', logQueryBody);
73448
73736
  }
73449
- /** Ingests a single log entry into the log gateway. */
73450
- ingestLog(entry) {
73451
- return this.ingestLogs([entry]);
73452
- }
73453
73737
  /**
73454
- * Builds the enriched payload array that will be sent to the uim_logs endpoint.
73455
- * Exposed so callers can inspect the payload without sending (e.g. dry-run).
73738
+ * Builds the enriched payload object for a single log entry.
73739
+ *
73740
+ * @remarks `options` is validated against
73741
+ * {@link LogIngest.LogIngestOptionsSchema} before the payload is assembled.
73742
+ * @param options - Known log entry fields (`message` required; the rest
73743
+ * optional with sensible defaults).
73744
+ * @param additionalFields - Arbitrary extra fields to include in the indexed document.
73745
+ * @returns The payload object ready to POST to the uim_logs ingestion endpoint.
73746
+ * @throws ZodError if `options` fails schema validation.
73456
73747
  */
73457
- buildLogPayload(entries) {
73748
+ buildLogPayload(options, additionalFields) {
73749
+ exports.LogIngest.LogIngestOptionsSchema.parse(options);
73458
73750
  const cohortId = this.dxSaasService.dxdoConfiguration.dxConfiguration.cohortId;
73459
73751
  const tenantIdUpper = cohortId.toUpperCase();
73460
- const now = new Date().toISOString();
73461
- return entries.map((e) => {
73462
- const host = e.host ?? require$$0$4.hostname();
73463
- const logtype = e.logtype;
73464
- const ip = e.ip ?? detectIPv4();
73465
- const agentInstance = e.agentInstance ?? 'dx-do';
73466
- const agentName = e.agentName ?? 'Logs Collector';
73467
- const containerId = e.containerId ?? host;
73468
- const containerName = e.containerName ?? agentInstance;
73469
- const file = e.file ?? 'dx-do.cli';
73470
- const tag = `${logtype} logs`;
73471
- // temp_fields must have exactly 9 space-separated components before the message
73472
- // is appended by the SaaS filter (agentbase_msg = temp_fields + " " + message).
73473
- // The Kafka consumer parses positionally: [0]=tenant [1]=logtype [2]=host
73474
- // [3]=container_id [4]=container_name [5]=ip [6-7]=tags [8]=source_file [9+]=message.
73475
- const temp_fields = `${tenantIdUpper} ${logtype} ${host} ${containerId} ${containerName} ${ip} ${tag} ${file}`;
73476
- return {
73477
- '@timestamp': now,
73478
- // logtype must be top-level: the SaaS filter does `update => ["type", "%{logtype}"]`
73479
- // which drives Kafka consumer index routing — without it type stays as "ingestionapi"
73480
- logtype,
73481
- message: e.message ?? '',
73482
- host: { name: host, hostname: host },
73483
- tenant_id: tenantIdUpper,
73484
- temp_fields,
73485
- tags: [tag],
73486
- __agent_name: agentName,
73487
- __agent_instance: agentInstance,
73488
- container_id: containerId,
73489
- container_name: containerName,
73490
- ...Object.fromEntries(Object.entries(e).filter(([k]) => !['logtype', 'message', 'host', 'timestamp', 'ip',
73491
- 'agentInstance', 'agentName', 'containerId', 'containerName', 'file'].includes(k))),
73492
- };
73493
- });
73752
+ const logtype = options.logtype ?? 'generic';
73753
+ const host = options.host ?? require$$0$4.hostname();
73754
+ const ip = options.ip ?? detectIPv4();
73755
+ const agentInstance = options.agentInstance ?? 'dx-do';
73756
+ const agentName = options.agentName ?? 'Logs Collector';
73757
+ const containerId = options.containerId ?? host;
73758
+ const containerName = options.containerName ?? agentInstance;
73759
+ const file = options.file ?? 'dx-do.cli';
73760
+ const tag = `${logtype} logs`;
73761
+ // temp_fields must have exactly 9 space-separated components before the message
73762
+ // is appended by the SaaS filter (agentbase_msg = temp_fields + " " + message).
73763
+ // The Kafka consumer parses positionally: [0]=tenant [1]=logtype [2]=host
73764
+ // [3]=container_id [4]=container_name [5]=ip [6-7]=tags [8]=source_file [9+]=message.
73765
+ const temp_fields = `${tenantIdUpper} ${logtype} ${host} ${containerId} ${containerName} ${ip} ${tag} ${file}`;
73766
+ return {
73767
+ '@timestamp': options.timestamp ?? new Date().toISOString(),
73768
+ // logtype must be top-level: the SaaS filter does `update => ["type", "%{logtype}"]`
73769
+ // which drives Kafka consumer index routing — without it type stays as "ingestionapi"
73770
+ logtype,
73771
+ message: options.message,
73772
+ host: { name: host, hostname: host },
73773
+ tenant_id: tenantIdUpper,
73774
+ temp_fields,
73775
+ tags: [tag],
73776
+ __agent_name: agentName,
73777
+ __agent_instance: agentInstance,
73778
+ container_id: containerId,
73779
+ container_name: containerName,
73780
+ ...additionalFields,
73781
+ };
73782
+ }
73783
+ /**
73784
+ * Ingests a single log entry into the log gateway.
73785
+ *
73786
+ * @remarks The gateway returns an opaque ingestion acknowledgement with no
73787
+ * stable schema, so the response is intentionally typed `unknown` and not
73788
+ * validated. `options` is validated by {@link buildLogPayload}.
73789
+ */
73790
+ ingestLog(options, additionalFields) {
73791
+ return this.dxSaasService.logPost('mdo/v2/aoanalytics/ingestion/uim_logs', [this.buildLogPayload(options, additionalFields)]);
73494
73792
  }
73495
- /** Ingests a batch of log entries into the log gateway. */
73793
+ /**
73794
+ * Ingests a batch of log entries into the log gateway.
73795
+ *
73796
+ * @remarks Each entry's `options` is validated by {@link buildLogPayload}.
73797
+ * The gateway response is an opaque ack (typed `unknown`, not validated).
73798
+ */
73496
73799
  ingestLogs(entries) {
73497
- return this.dxSaasService.logPost('mdo/v2/aoanalytics/ingestion/uim_logs', this.buildLogPayload(entries));
73800
+ return this.dxSaasService.logPost('mdo/v2/aoanalytics/ingestion/uim_logs', entries.map((e) => this.buildLogPayload(e.options, e.additionalFields)));
73498
73801
  }
73499
73802
  }
73500
73803
 
@@ -75421,70 +75724,107 @@ class SituationService {
75421
75724
  }
75422
75725
  }
75423
75726
 
75727
+ /**
75728
+ * A single audit event as submitted to the audit store (`POST /audit/store`).
75729
+ * `eventTime`, `serviceId`, `resource`, `action`, and `result` are the required
75730
+ * core of an event; the remaining fields enrich it with actor and origin context.
75731
+ */
75424
75732
  const AuditRecordSchema = v4.z.looseObject({
75425
- userName: v4.z.string().optional(),
75426
- userFirstName: v4.z.string().optional(),
75427
- userLastName: v4.z.string().optional(),
75428
- userEmailAddr: v4.z.string().optional(),
75429
- token: v4.z.string().optional(),
75430
- eventTime: v4.z.string(),
75431
- dsTenantId: v4.z.string().optional(),
75432
- dxiTenantId: v4.z.string().optional(),
75433
- cohortId: v4.z.string().optional(),
75434
- serviceId: v4.z.string(),
75435
- serviceInstanceId: v4.z.string().optional(),
75436
- componentName: v4.z.string().optional(),
75437
- clientIp: v4.z.string().optional(),
75438
- clientHostName: v4.z.string().optional(),
75439
- resource: v4.z.string(),
75440
- action: v4.z.string(),
75441
- result: v4.z.string(),
75442
- oldValue: v4.z.unknown().optional(),
75443
- newValue: v4.z.unknown().optional(),
75444
- eventId: v4.z.string().optional(),
75445
- additionalInfo: v4.z.unknown().optional(),
75733
+ userName: v4.z.string().optional().describe('Login/user name of the actor who performed the action'),
75734
+ userFirstName: v4.z.string().optional().describe('Actor first name'),
75735
+ userLastName: v4.z.string().optional().describe('Actor last name'),
75736
+ userEmailAddr: v4.z.string().optional().describe('Actor email address'),
75737
+ token: v4.z
75738
+ .string()
75739
+ .optional()
75740
+ .describe('Auth token associated with the actor, when the action was token-driven'),
75741
+ eventTime: v4.z.string().describe('Time the audited event occurred (ISO 8601 or epoch string)'),
75742
+ dsTenantId: v4.z.string().optional().describe('DataStore tenant ID the event belongs to'),
75743
+ dxiTenantId: v4.z.string().optional().describe('DXI tenant ID the event belongs to'),
75744
+ cohortId: v4.z.string().optional().describe('Cohort (tenant cohort) identifier'),
75745
+ serviceId: v4.z.string().describe('ID of the service that emitted the audit event'),
75746
+ serviceInstanceId: v4.z.string().optional().describe('Instance ID of the emitting service'),
75747
+ componentName: v4.z.string().optional().describe('Component within the service that produced the event'),
75748
+ clientIp: v4.z.string().optional().describe('Source IP address of the client that triggered the action'),
75749
+ clientHostName: v4.z
75750
+ .string()
75751
+ .optional()
75752
+ .describe('Source host name of the client that triggered the action'),
75753
+ resource: v4.z.string().describe('The resource that was acted upon (e.g. entity, config key, path)'),
75754
+ action: v4.z.string().describe('The action performed on the resource (e.g. CREATE, UPDATE, DELETE)'),
75755
+ result: v4.z.string().describe('Outcome of the action (e.g. SUCCESS, FAILURE)'),
75756
+ oldValue: v4.z.unknown().optional().describe('Prior value of the resource before the action (for changes)'),
75757
+ newValue: v4.z.unknown().optional().describe('New value of the resource after the action (for changes)'),
75758
+ eventId: v4.z.string().optional().describe('Unique identifier assigned to this audit event'),
75759
+ additionalInfo: v4.z.unknown().optional().describe('Free-form supplementary context attached to the event'),
75446
75760
  });
75447
75761
 
75448
75762
  const DateTimeSchema = v4.z.custom((val) => DateTime.isDateTime(val));
75763
+ /**
75764
+ * Request body for an audit-log query (`POST /audit/query`). The event-time
75765
+ * window is required; the remaining fields narrow the result set and page it.
75766
+ */
75449
75767
  const AuditQueryRequestSchema = v4.z.object({
75450
- fromEventTime: DateTimeSchema,
75451
- toEventTime: DateTimeSchema,
75452
- userName: v4.z.string().optional(),
75453
- serviceId: v4.z.string().optional(),
75454
- action: v4.z.string().optional(),
75455
- result: v4.z.string().optional(),
75456
- from: v4.z.number().int().optional(),
75457
- size: v4.z.number().int().optional(),
75768
+ fromEventTime: DateTimeSchema.describe('Inclusive start of the event-time window to search'),
75769
+ toEventTime: DateTimeSchema.describe('Inclusive end of the event-time window to search'),
75770
+ userName: v4.z.string().optional().describe('Filter to audit events performed by this user name'),
75771
+ serviceId: v4.z.string().optional().describe('Filter to audit events emitted by this service ID'),
75772
+ action: v4.z
75773
+ .string()
75774
+ .optional()
75775
+ .describe('Filter to a specific audited action (e.g. CREATE, UPDATE, DELETE)'),
75776
+ result: v4.z
75777
+ .string()
75778
+ .optional()
75779
+ .describe('Filter by outcome of the audited action (e.g. SUCCESS, FAILURE)'),
75780
+ from: v4.z
75781
+ .number()
75782
+ .int()
75783
+ .optional()
75784
+ .describe('Zero-based offset of the first result to return (pagination)'),
75785
+ size: v4.z.number().int().optional().describe('Maximum number of records to return (page size)'),
75458
75786
  });
75787
+ /** Cross-tenant variant of {@link AuditQueryRequestSchema} that adds a tenant filter. */
75459
75788
  AuditQueryRequestSchema.extend({
75460
- tenantId: v4.z.string().optional(),
75789
+ tenantId: v4.z
75790
+ .string()
75791
+ .optional()
75792
+ .describe('Restrict a cross-tenant (global) query to a single tenant ID'),
75461
75793
  });
75462
75794
 
75795
+ /** Store acknowledgement — the audit store returns an empty object on success. */
75463
75796
  const AuditStoreResponseSchema = v4.z.looseObject({}).optional();
75797
+ /**
75798
+ * An audit record as returned from the query endpoint (Elasticsearch-shaped).
75799
+ * Distinct from {@link AuditRecordSchema}: every field is optional and the
75800
+ * actor email is keyed `userEmailAddress` (vs `userEmailAddr` on store).
75801
+ */
75464
75802
  const AuditRecordEsSchema = v4.z.looseObject({
75465
- userName: v4.z.string().optional(),
75466
- eventTime: v4.z.string().optional(),
75467
- serverTime: v4.z.string().optional(),
75468
- dsTenantId: v4.z.string().optional(),
75469
- dxiTenantId: v4.z.string().optional(),
75470
- serviceId: v4.z.string().optional(),
75471
- serviceInstanceId: v4.z.string().optional(),
75472
- componentName: v4.z.string().optional(),
75473
- clientIp: v4.z.string().optional(),
75474
- clientHostName: v4.z.string().optional(),
75475
- resource: v4.z.string().optional(),
75476
- action: v4.z.string().optional(),
75477
- result: v4.z.string().optional(),
75478
- oldValue: v4.z.unknown().optional(),
75479
- newValue: v4.z.unknown().optional(),
75480
- additionalInfo: v4.z.unknown().optional(),
75481
- eventId: v4.z.string().optional(),
75482
- userFirstName: v4.z.string().optional(),
75483
- userMiddleName: v4.z.string().optional(),
75484
- userLastName: v4.z.string().optional(),
75485
- userEmailAddress: v4.z.string().optional(),
75803
+ userName: v4.z.string().optional().describe('Login/user name of the actor'),
75804
+ eventTime: v4.z.string().optional().describe('Time the event occurred'),
75805
+ serverTime: v4.z.string().optional().describe('Time the event was recorded server-side'),
75806
+ dsTenantId: v4.z.string().optional().describe('DataStore tenant ID'),
75807
+ dxiTenantId: v4.z.string().optional().describe('DXI tenant ID'),
75808
+ serviceId: v4.z.string().optional().describe('ID of the service that emitted the event'),
75809
+ serviceInstanceId: v4.z.string().optional().describe('Instance ID of the emitting service'),
75810
+ componentName: v4.z.string().optional().describe('Component within the service'),
75811
+ clientIp: v4.z.string().optional().describe('Source IP of the client'),
75812
+ clientHostName: v4.z.string().optional().describe('Source host name of the client'),
75813
+ resource: v4.z.string().optional().describe('Resource that was acted upon'),
75814
+ action: v4.z.string().optional().describe('Action performed on the resource'),
75815
+ result: v4.z.string().optional().describe('Outcome of the action'),
75816
+ oldValue: v4.z.unknown().optional().describe('Prior value before the action'),
75817
+ newValue: v4.z.unknown().optional().describe('New value after the action'),
75818
+ additionalInfo: v4.z.unknown().optional().describe('Free-form supplementary context'),
75819
+ eventId: v4.z.string().optional().describe('Unique identifier of the audit event'),
75820
+ userFirstName: v4.z.string().optional().describe('Actor first name'),
75821
+ userMiddleName: v4.z.string().optional().describe('Actor middle name'),
75822
+ userLastName: v4.z.string().optional().describe('Actor last name'),
75823
+ userEmailAddress: v4.z.string().optional().describe('Actor email address'),
75486
75824
  });
75487
- const AuditQueryResponseSchema = v4.z.array(AuditRecordEsSchema);
75825
+ const AuditQueryResponseSchema = v4.z
75826
+ .array(AuditRecordEsSchema)
75827
+ .describe('Audit records matching the query');
75488
75828
 
75489
75829
  /**
75490
75830
  * Service for the DX SaaS DataStore audit API (`/audit/...`).
@@ -75559,32 +75899,42 @@ class DataStoreAuditService {
75559
75899
  }
75560
75900
 
75561
75901
  const ViewFilterLazy = v4.z.lazy(() => ViewFilterSchema);
75902
+ /** Matches every view. */
75562
75903
  const ViewAllFilterSchema = v4.z.looseObject({
75563
- op: v4.z.literal('ALL'),
75904
+ op: v4.z.literal('ALL').describe('Match all views'),
75564
75905
  });
75906
+ /** Matches views by ID. */
75565
75907
  const ViewIdFilterSchema = v4.z.looseObject({
75566
- op: v4.z.literal('ID'),
75567
- ids: v4.z.array(v4.z.string()).optional(),
75908
+ op: v4.z.literal('ID').describe('Match views by ID'),
75909
+ ids: v4.z.array(v4.z.string()).optional().describe('View IDs to match'),
75568
75910
  });
75911
+ /** Matches only active views. */
75569
75912
  const ViewActiveFilterSchema = v4.z.looseObject({
75570
- op: v4.z.literal('ACTIVE'),
75913
+ op: v4.z.literal('ACTIVE').describe('Match only active views'),
75571
75914
  });
75572
75915
  const ViewAttributeExpressionSchema = v4.z.looseObject({
75573
- name: v4.z.string().optional(),
75574
- values: v4.z.array(v4.z.string()).optional(),
75916
+ name: v4.z.string().optional().describe('Attribute name to match against'),
75917
+ values: v4.z.array(v4.z.string()).optional().describe('Accepted values (set membership)'),
75575
75918
  });
75919
+ /** Matches views whose attributes satisfy the given expressions (AND-ed). */
75576
75920
  const ViewAttributeFilterSchema = v4.z.looseObject({
75577
- op: v4.z.literal('ATTRIBUTE'),
75578
- expressions: v4.z.array(ViewAttributeExpressionSchema).optional(),
75921
+ op: v4.z.literal('ATTRIBUTE').describe('Match views by attribute expressions'),
75922
+ expressions: v4.z
75923
+ .array(ViewAttributeExpressionSchema)
75924
+ .optional()
75925
+ .describe('Attribute predicates; all must match'),
75579
75926
  });
75927
+ /** Logical AND of nested view filters. */
75580
75928
  const ViewAndFilterSchema = v4.z.looseObject({
75581
- op: v4.z.literal('AND'),
75582
- input: v4.z.array(ViewFilterLazy).optional(),
75929
+ op: v4.z.literal('AND').describe('Logical AND of nested filters'),
75930
+ input: v4.z.array(ViewFilterLazy).optional().describe('Child filters to AND together'),
75583
75931
  });
75932
+ /** Logical OR of nested view filters. */
75584
75933
  const ViewOrFilterSchema = v4.z.looseObject({
75585
- op: v4.z.literal('OR'),
75586
- input: v4.z.array(ViewFilterLazy).optional(),
75934
+ op: v4.z.literal('OR').describe('Logical OR of nested filters'),
75935
+ input: v4.z.array(ViewFilterLazy).optional().describe('Child filters to OR together'),
75587
75936
  });
75937
+ /** Discriminated union of all view filter operators, keyed by `op`. */
75588
75938
  const ViewFilterSchema = v4.z.discriminatedUnion('op', [
75589
75939
  ViewAllFilterSchema,
75590
75940
  ViewIdFilterSchema,
@@ -75594,65 +75944,77 @@ const ViewFilterSchema = v4.z.discriminatedUnion('op', [
75594
75944
  ViewOrFilterSchema,
75595
75945
  ]);
75596
75946
 
75597
- const ViewAccessRoleSchema = v4.z.enum(['read-only', 'read-write']);
75947
+ /** Access role granted to a user or group on a view. */
75948
+ const ViewAccessRoleSchema = v4.z
75949
+ .enum(['read-only', 'read-write'])
75950
+ .describe('Access level granted on a view');
75598
75951
  const ViewAccessEntrySchema = v4.z.looseObject({
75599
- name: v4.z.string(),
75600
- role: ViewAccessRoleSchema.optional(),
75952
+ name: v4.z.string().describe('User or group name being granted access'),
75953
+ role: ViewAccessRoleSchema.optional().describe('Granted role; defaults to read-only'),
75601
75954
  });
75602
75955
  const ViewAccessSchema = v4.z.looseObject({
75603
- users: v4.z.array(ViewAccessEntrySchema).optional(),
75604
- groups: v4.z.array(ViewAccessEntrySchema).optional(),
75956
+ users: v4.z.array(ViewAccessEntrySchema).optional().describe('Per-user access grants'),
75957
+ groups: v4.z.array(ViewAccessEntrySchema).optional().describe('Per-group access grants'),
75605
75958
  });
75606
75959
  const ViewTasSpecSchema = v4.z.looseObject({
75607
- filter: TasFilterSchema.optional(),
75960
+ filter: TasFilterSchema.optional().describe('TAS filter scoping the topology this view exposes'),
75608
75961
  });
75609
75962
  const ViewNassSpecSchema = v4.z.looseObject({
75610
- filter: v4.z.unknown().optional(),
75963
+ filter: v4.z.unknown().optional().describe('NASS filter scoping the metrics this view exposes'),
75611
75964
  });
75612
75965
  const ViewSpecsSchema = v4.z.looseObject({
75613
- tas: ViewTasSpecSchema.optional(),
75614
- nass: ViewNassSpecSchema.optional(),
75966
+ tas: ViewTasSpecSchema.optional().describe('Topology (TAS) scoping for the view'),
75967
+ nass: ViewNassSpecSchema.optional().describe('Metrics (NASS) scoping for the view'),
75615
75968
  });
75616
- const ViewOwnerSchema = v4.z.enum(['APM', 'DP', 'OI']);
75969
+ /** Product that owns the view. */
75970
+ const ViewOwnerSchema = v4.z
75971
+ .enum(['APM', 'DP', 'OI'])
75972
+ .describe('Owning product (APM, DP, OI)');
75617
75973
  const ViewAttributesSchema = v4.z.looseObject({
75618
- label: v4.z.string().optional(),
75619
- description: v4.z.string().optional(),
75620
- owner: ViewOwnerSchema.optional(),
75974
+ label: v4.z.string().optional().describe('Human-readable view label'),
75975
+ description: v4.z.string().optional().describe('View description'),
75976
+ owner: ViewOwnerSchema.optional().describe('Owning product'),
75621
75977
  });
75622
75978
  const ViewBodySchema = v4.z.looseObject({
75623
- access: ViewAccessSchema.optional(),
75624
- views: ViewSpecsSchema.optional(),
75625
- attributes: ViewAttributesSchema.optional(),
75979
+ access: ViewAccessSchema.optional().describe('Access grants for the view'),
75980
+ views: ViewSpecsSchema.optional().describe('TAS/NASS scoping specs for the view'),
75981
+ attributes: ViewAttributesSchema.optional().describe('View metadata (label, description, owner)'),
75626
75982
  });
75627
75983
  const SetDefaultViewRequestSchema = v4.z.looseObject({
75628
- userName: v4.z.string(),
75629
- defaultViews: v4.z.union([v4.z.string(), v4.z.array(v4.z.string())]).optional(),
75984
+ userName: v4.z.string().describe('User whose default view(s) are being set'),
75985
+ defaultViews: v4.z
75986
+ .union([v4.z.string(), v4.z.array(v4.z.string())])
75987
+ .optional()
75988
+ .describe('View ID, or list of view IDs, to set as the user default'),
75630
75989
  });
75631
75990
  const ViewSearchRequestSchema = v4.z.looseObject({
75632
- user: v4.z.string(),
75633
- groups: v4.z.array(v4.z.string()).optional(),
75634
- minimalRules: v4.z.unknown().optional(),
75635
- viewId: v4.z.string().optional(),
75991
+ user: v4.z.string().describe('User to resolve accessible views for'),
75992
+ groups: v4.z.array(v4.z.string()).optional().describe('Groups the user belongs to (widen access resolution)'),
75993
+ minimalRules: v4.z.unknown().optional().describe('Optional minimal-rules payload for access resolution'),
75994
+ viewId: v4.z.string().optional().describe('Restrict the search to a single view ID'),
75636
75995
  });
75637
75996
  const ViewQueryRequestSchema = v4.z.looseObject({
75638
- filter: ViewFilterSchema.optional(),
75997
+ filter: ViewFilterSchema.optional().describe('Filter selecting which views to return; omit for all'),
75639
75998
  });
75640
75999
 
75641
76000
  const ViewResponseSchema = v4.z.looseObject({
75642
- viewId: v4.z.string().optional(),
75643
- access: ViewAccessSchema.optional(),
75644
- views: ViewSpecsSchema.optional(),
75645
- attributes: ViewAttributesSchema.optional(),
76001
+ viewId: v4.z.string().optional().describe('Server-assigned view identifier'),
76002
+ access: ViewAccessSchema.optional().describe('Access grants on the view'),
76003
+ views: ViewSpecsSchema.optional().describe('TAS/NASS scoping specs of the view'),
76004
+ attributes: ViewAttributesSchema.optional().describe('View metadata (label, description, owner)'),
75646
76005
  });
75647
- const ViewListResponseSchema = v4.z.array(ViewResponseSchema);
76006
+ const ViewListResponseSchema = v4.z
76007
+ .array(ViewResponseSchema)
76008
+ .describe('All views returned by a list call');
75648
76009
  const ViewQueryResponseSchema = v4.z.looseObject({
75649
- views: v4.z.array(ViewResponseSchema).optional(),
76010
+ views: v4.z.array(ViewResponseSchema).optional().describe('Views matching the query filter'),
75650
76011
  });
75651
76012
  const DefaultViewsResponseSchema = v4.z.looseObject({
75652
- userName: v4.z.string().optional(),
76013
+ userName: v4.z.string().optional().describe('User the defaults belong to'),
75653
76014
  defaultViews: v4.z
75654
76015
  .union([v4.z.string(), v4.z.array(v4.z.string())])
75655
- .optional(),
76016
+ .optional()
76017
+ .describe("The user's default view ID, or list of IDs"),
75656
76018
  });
75657
76019
 
75658
76020
  /**
@@ -75789,129 +76151,6 @@ class DataStoreAuthViewsService {
75789
76151
  }
75790
76152
  }
75791
76153
 
75792
- const BlobAttributeExpressionSchema = v4.z.looseObject({
75793
- name: v4.z.string(),
75794
- values: v4.z.array(v4.z.string()).optional(),
75795
- });
75796
- const BlobAllFilterSchema = v4.z.looseObject({
75797
- op: v4.z.literal('ALL'),
75798
- });
75799
- const BlobAttributeFilterSchema = v4.z.looseObject({
75800
- op: v4.z.literal('ATTRIBUTE'),
75801
- expressions: v4.z.array(BlobAttributeExpressionSchema).optional(),
75802
- });
75803
- const BlobFilterSchema = v4.z.discriminatedUnion('op', [
75804
- BlobAllFilterSchema,
75805
- BlobAttributeFilterSchema,
75806
- ]);
75807
-
75808
- const BlobAttributesSchema = v4.z.record(v4.z.string(), v4.z.union([v4.z.string(), v4.z.number(), v4.z.boolean()]));
75809
- /** Query params used by `POST /blobstorage/blob` and `DELETE /blobstorage/blob`. */
75810
- v4.z.looseObject({
75811
- schema: v4.z.string(),
75812
- id: v4.z.string(),
75813
- ttl: v4.z.union([v4.z.string(), v4.z.number()]).optional(),
75814
- });
75815
- const BlobBulkItemSchema = v4.z.looseObject({
75816
- schema: v4.z.string(),
75817
- id: v4.z.string(),
75818
- ttl: v4.z.union([v4.z.string(), v4.z.number()]),
75819
- data: v4.z.string(),
75820
- attributes: BlobAttributesSchema.optional(),
75821
- });
75822
- const BlobBulkStoreRequestSchema = v4.z.looseObject({
75823
- blobs: v4.z.array(BlobBulkItemSchema),
75824
- });
75825
- v4.z.looseObject({
75826
- schema: v4.z.string(),
75827
- id: v4.z.string(),
75828
- version: v4.z.number().optional(),
75829
- });
75830
- const BlobQueryRequestSchema = v4.z.looseObject({
75831
- schema: v4.z.string(),
75832
- filter: BlobFilterSchema.optional(),
75833
- includeData: v4.z.boolean().optional(),
75834
- includeProfile: v4.z.boolean().optional(),
75835
- });
75836
- v4.z.looseObject({
75837
- schema: v4.z.string(),
75838
- id: v4.z.string(),
75839
- });
75840
- const BlobBulkDeleteEntrySchema = v4.z.looseObject({
75841
- schema: v4.z.string(),
75842
- id: v4.z.string(),
75843
- });
75844
- const BlobBulkDeleteRequestSchema = v4.z.looseObject({
75845
- blobs: v4.z.array(BlobBulkDeleteEntrySchema),
75846
- });
75847
- v4.z.looseObject({});
75848
- const BlobAsyncDeleteSchemaCommandSchema = v4.z.looseObject({
75849
- op: v4.z.literal('DELETE_SCHEMA'),
75850
- schema: v4.z.string(),
75851
- });
75852
- const BlobAsyncCommandSchema = v4.z.discriminatedUnion('op', [
75853
- BlobAsyncDeleteSchemaCommandSchema,
75854
- ]);
75855
- const BlobExecuteAsyncRequestSchema = v4.z.looseObject({
75856
- commands: v4.z.array(BlobAsyncCommandSchema),
75857
- });
75858
- const BlobAsyncResultRequestSchema = v4.z.looseObject({
75859
- correlationKey: v4.z.string(),
75860
- });
75861
-
75862
- const BlobMetadataSchema = v4.z.looseObject({
75863
- schema: v4.z.string().optional(),
75864
- id: v4.z.string().optional(),
75865
- ttl: v4.z.string().optional(),
75866
- attributes: BlobAttributesSchema.optional(),
75867
- version: v4.z.number().optional(),
75868
- data: v4.z.string().optional(),
75869
- });
75870
- const BlobStoreResponseSchema = BlobMetadataSchema;
75871
- const BlobBulkStoreResponseSchema = v4.z.looseObject({
75872
- blobs: v4.z.array(BlobMetadataSchema).optional(),
75873
- failed: v4.z.array(BlobMetadataSchema).optional(),
75874
- });
75875
- const BlobQueryResponseSchema = v4.z.looseObject({
75876
- blobs: v4.z.array(BlobMetadataSchema).optional(),
75877
- });
75878
- const BlobDeleteResponseSchema = v4.z.looseObject({
75879
- blob: BlobMetadataSchema.optional(),
75880
- });
75881
- const BlobBulkDeleteResponseSchema = v4.z.looseObject({
75882
- deletedBlobs: v4.z.array(BlobMetadataSchema).optional(),
75883
- });
75884
- const BlobSchemaItemSchema = v4.z.looseObject({
75885
- name: v4.z.string().optional(),
75886
- });
75887
- const BlobSchemaListResponseSchema = v4.z.looseObject({
75888
- schemas: v4.z.array(BlobSchemaItemSchema).optional(),
75889
- });
75890
- const BlobExecuteAsyncResponseSchema = v4.z.looseObject({
75891
- correlationKey: v4.z.string().optional(),
75892
- });
75893
- v4.z.enum([
75894
- 'PENDING',
75895
- 'RUNNING',
75896
- 'FINISHED',
75897
- 'FAILED',
75898
- ]);
75899
- const BlobDeleteSchemaResultSchema = v4.z.looseObject({
75900
- schema: v4.z.string().optional(),
75901
- deletedBlobs: v4.z.number().optional(),
75902
- });
75903
- const BlobAsyncResultEntrySchema = v4.z.looseObject({
75904
- op: v4.z.string().optional(),
75905
- deletedSchema: BlobDeleteSchemaResultSchema.optional(),
75906
- });
75907
- const BlobAsyncResultResponseSchema = v4.z.looseObject({
75908
- correlationKey: v4.z.string().optional(),
75909
- state: v4.z.string().optional(),
75910
- numberOfDone: v4.z.number().optional(),
75911
- numberOfRemaining: v4.z.number().optional(),
75912
- results: v4.z.record(v4.z.string(), BlobAsyncResultEntrySchema).optional(),
75913
- });
75914
-
75915
76154
  /**
75916
76155
  * Service for the DX SaaS DataStore blob storage API
75917
76156
  * (`/blobstorage/...`).
@@ -76071,87 +76310,95 @@ class DataStoreBlobStorageService {
76071
76310
  }
76072
76311
  }
76073
76312
 
76074
- const FeatureFieldTypeSchema = v4.z.enum([
76075
- 'TEXT',
76076
- 'NUMBER',
76077
- 'LOOKUP',
76078
- 'DATETIME',
76079
- ]);
76313
+ /** Editor type for a feature field. */
76314
+ const FeatureFieldTypeSchema = v4.z
76315
+ .enum(['TEXT', 'NUMBER', 'LOOKUP', 'DATETIME'])
76316
+ .describe('Field value type / editor (TEXT, NUMBER, LOOKUP, DATETIME)');
76080
76317
  const FeatureFieldSchema = v4.z.looseObject({
76081
- id: v4.z.string(),
76082
- name: v4.z.string().optional(),
76083
- type: FeatureFieldTypeSchema.optional(),
76318
+ id: v4.z.string().describe('Stable field identifier'),
76319
+ name: v4.z.string().optional().describe('Human-readable field label'),
76320
+ type: FeatureFieldTypeSchema.optional().describe('Field value type; defaults to TEXT'),
76084
76321
  });
76085
- const FeatureFilterTemplateTypeSchema = v4.z.enum([
76086
- 'TAS',
76087
- 'NASS',
76088
- 'ES',
76089
- 'REST',
76090
- ]);
76322
+ /** Backing datasource type a feature filter template targets. */
76323
+ const FeatureFilterTemplateTypeSchema = v4.z
76324
+ .enum(['TAS', 'NASS', 'ES', 'REST'])
76325
+ .describe('Datasource the template queries (TAS, NASS, ES, REST)');
76091
76326
  const FeatureFilterTemplateSchema = v4.z.looseObject({
76092
- type: FeatureFilterTemplateTypeSchema.optional(),
76093
- filter: v4.z.unknown().optional(),
76094
- indexPattern: v4.z.string().optional(),
76095
- query: v4.z.unknown().optional(),
76327
+ type: FeatureFilterTemplateTypeSchema.optional().describe('Datasource type this template targets'),
76328
+ filter: v4.z.unknown().optional().describe('Datasource-specific filter payload'),
76329
+ indexPattern: v4.z.string().optional().describe('ES index pattern, when type is ES'),
76330
+ query: v4.z.unknown().optional().describe('Raw query payload passed through to the datasource'),
76096
76331
  });
76097
76332
  const FeatureDatascopeLazy = v4.z.lazy(() => FeatureDatascopeSchema);
76098
76333
  const FeatureDatascopeSchema = v4.z.looseObject({
76099
- id: v4.z.string(),
76100
- datascopeItemName: v4.z.string().optional(),
76101
- datasourceType: FeatureFilterTemplateTypeSchema.optional(),
76102
- url: v4.z.string().optional(),
76103
- fields: v4.z.array(FeatureFieldSchema).optional(),
76104
- filterTemplate: FeatureFilterTemplateSchema.optional(),
76105
- children: v4.z.array(FeatureDatascopeLazy).optional(),
76334
+ id: v4.z.string().describe('Stable datascope identifier'),
76335
+ datascopeItemName: v4.z.string().optional().describe('Human-readable datascope name'),
76336
+ datasourceType: FeatureFilterTemplateTypeSchema.optional().describe('Datasource backing this datascope'),
76337
+ url: v4.z.string().optional().describe('Endpoint URL for REST-backed datascopes'),
76338
+ fields: v4.z.array(FeatureFieldSchema).optional().describe('Fields exposed by this datascope'),
76339
+ filterTemplate: FeatureFilterTemplateSchema.optional().describe('Default filter template for this datascope'),
76340
+ children: v4.z.array(FeatureDatascopeLazy).optional().describe('Nested child datascopes (recursive tree)'),
76106
76341
  });
76107
76342
  const FeatureAttributesSchema = v4.z
76108
76343
  .looseObject({
76109
- name: v4.z.string().optional(),
76110
- description: v4.z.string().optional(),
76111
- sort: v4.z.number().optional(),
76112
- global: v4.z.boolean().optional(),
76113
- path: v4.z.string().optional(),
76114
- _UPDATED_AT: v4.z.number().optional(),
76115
- _UPDATED_BY: v4.z.string().optional(),
76344
+ name: v4.z.string().optional().describe('Feature display name'),
76345
+ description: v4.z.string().optional().describe('Feature description'),
76346
+ sort: v4.z.number().optional().describe('Sort order among sibling features'),
76347
+ global: v4.z.boolean().optional().describe('Whether the feature is global (visible across the tenant)'),
76348
+ path: v4.z.string().optional().describe('Materialized tree path of the feature node'),
76349
+ _UPDATED_AT: v4.z.number().optional().describe('Last-modified timestamp (epoch ms)'),
76350
+ _UPDATED_BY: v4.z.string().optional().describe('User who last modified the feature'),
76116
76351
  })
76117
76352
  .catchall(v4.z.unknown());
76118
76353
  const FeatureNodeLazy = v4.z.lazy(() => FeatureNodeSchema);
76119
76354
  const FeatureNodeSchema = v4.z.looseObject({
76120
- id: v4.z.string(),
76121
- disabled: v4.z.boolean().optional(),
76122
- lastModificationTimestamp: v4.z.number().optional(),
76123
- attributes: FeatureAttributesSchema.optional(),
76124
- apis: v4.z.array(v4.z.string()).optional(),
76125
- children: v4.z.array(FeatureNodeLazy).optional(),
76126
- datascopes: v4.z.array(FeatureDatascopeSchema).optional(),
76355
+ id: v4.z.string().describe('Stable feature node identifier'),
76356
+ disabled: v4.z.boolean().optional().describe('Whether the feature node is disabled'),
76357
+ lastModificationTimestamp: v4.z.number().optional().describe('Last modification time (epoch ms)'),
76358
+ attributes: FeatureAttributesSchema.optional().describe('Feature metadata attributes'),
76359
+ apis: v4.z.array(v4.z.string()).optional().describe('API identifiers this feature exposes'),
76360
+ children: v4.z.array(FeatureNodeLazy).optional().describe('Nested child feature nodes (recursive tree)'),
76361
+ datascopes: v4.z.array(FeatureDatascopeSchema).optional().describe('Datascopes attached to this feature node'),
76127
76362
  });
76128
76363
 
76364
+ /** Store request — a full {@link FeatureNodeSchema} tree to upsert. */
76129
76365
  const FeatureStoreRequestSchema = FeatureNodeSchema;
76130
76366
  const FeatureDeleteRequestSchema = v4.z.looseObject({
76131
- ids: v4.z.array(v4.z.string()),
76367
+ ids: v4.z.array(v4.z.string()).describe('Feature node IDs to delete'),
76132
76368
  });
76133
76369
  v4.z.looseObject({
76134
- op: v4.z.literal('ID'),
76135
- ids: v4.z.array(v4.z.string()).optional(),
76370
+ op: v4.z.literal('ID').describe('Filter operator — selects feature nodes by ID'),
76371
+ ids: v4.z.array(v4.z.string()).optional().describe('Feature node IDs to match'),
76136
76372
  });
76373
+ /**
76374
+ * Feature query filter. `op` names the operator; the AND-ed second half carries
76375
+ * the operands (`ids` for an ID filter, `input` for composite operators).
76376
+ */
76137
76377
  const FeatureFilterSchema = v4.z
76138
76378
  .looseObject({
76139
- op: v4.z.string(),
76379
+ op: v4.z.string().describe('Filter operator (e.g. ID, AND, OR)'),
76140
76380
  })
76141
76381
  .and(v4.z
76142
76382
  .looseObject({
76143
- ids: v4.z.array(v4.z.string()).optional(),
76144
- input: v4.z.array(v4.z.unknown()).optional(),
76383
+ ids: v4.z.array(v4.z.string()).optional().describe('Feature node IDs (for ID filters)'),
76384
+ input: v4.z.array(v4.z.unknown()).optional().describe('Nested operand filters (for composite operators)'),
76145
76385
  })
76146
76386
  .partial());
76147
76387
  const FeatureQueryRequestSchema = v4.z.looseObject({
76148
- filter: FeatureFilterSchema.optional(),
76388
+ filter: FeatureFilterSchema.optional().describe('Filter selecting which feature nodes to return; omit for all'),
76149
76389
  });
76150
- const FeatureToggleListSchema = v4.z.array(v4.z.string());
76390
+ const FeatureToggleListSchema = v4.z
76391
+ .array(v4.z.string())
76392
+ .describe('List of feature toggle identifiers');
76151
76393
 
76394
+ /** Store response — the persisted {@link FeatureNodeSchema} tree. */
76152
76395
  const FeatureStoreResponseSchema = FeatureNodeSchema;
76153
- const FeatureListResponseSchema = v4.z.array(FeatureNodeSchema);
76154
- const FeatureToggleListResponseSchema = v4.z.array(v4.z.string());
76396
+ const FeatureListResponseSchema = v4.z
76397
+ .array(FeatureNodeSchema)
76398
+ .describe('Feature nodes matching the query');
76399
+ const FeatureToggleListResponseSchema = v4.z
76400
+ .array(v4.z.string())
76401
+ .describe('Enabled feature toggle identifiers');
76155
76402
 
76156
76403
  /**
76157
76404
  * Service for the DX SaaS DataStore features API (`/features/...`).
@@ -76456,98 +76703,105 @@ class DataStoreNASSQLService {
76456
76703
  }
76457
76704
  }
76458
76705
 
76459
- const VertexStateProjectionSchema = v4.z.enum([
76460
- 'DETAILED',
76461
- 'BRIEF',
76462
- 'EXTRA_IDS',
76463
- ]);
76706
+ /** Projection level controlling how much detail each returned state carries. */
76707
+ const VertexStateProjectionSchema = v4.z
76708
+ .enum(['DETAILED', 'BRIEF', 'EXTRA_IDS'])
76709
+ .describe('Response detail level (DETAILED, BRIEF, EXTRA_IDS)');
76710
+ /** External-ID coordinates identifying a state by vertex/alert/metric. */
76464
76711
  const VertexStateExternalIdInputSchema = v4.z.looseObject({
76465
- vertexId: v4.z.number().optional(),
76466
- vertexExternalId: v4.z.string().optional(),
76467
- alert: v4.z.string().optional(),
76468
- alertExternalId: v4.z.string().optional(),
76469
- metric: v4.z.string().optional(),
76470
- metricExternalId: v4.z.string().optional(),
76712
+ vertexId: v4.z.number().optional().describe('Internal vertex ID'),
76713
+ vertexExternalId: v4.z.string().optional().describe('External vertex ID'),
76714
+ alert: v4.z.string().optional().describe('Alert identifier'),
76715
+ alertExternalId: v4.z.string().optional().describe('External alert identifier'),
76716
+ metric: v4.z.string().optional().describe('Metric identifier'),
76717
+ metricExternalId: v4.z.string().optional().describe('External metric identifier'),
76471
76718
  });
76719
+ /** A single state to store. Identify the target by internal IDs or external coordinates. */
76472
76720
  const VertexStateInputSchema = v4.z.looseObject({
76473
- stateExternalId: VertexStateExternalIdInputSchema.optional(),
76474
- vertexId: v4.z.number().optional(),
76475
- alertId: v4.z.number().optional(),
76476
- metricId: v4.z.number().optional(),
76477
- startTime: v4.z.number().optional(),
76478
- endTime: v4.z.number().optional(),
76479
- status: v4.z.number().optional(),
76480
- data: v4.z.unknown().optional(),
76721
+ stateExternalId: VertexStateExternalIdInputSchema.optional().describe('External coordinates of the state'),
76722
+ vertexId: v4.z.number().optional().describe('Internal vertex ID the state belongs to'),
76723
+ alertId: v4.z.number().optional().describe('Internal alert ID the state belongs to'),
76724
+ metricId: v4.z.number().optional().describe('Internal metric ID the state belongs to'),
76725
+ startTime: v4.z.number().optional().describe('State start time (epoch ms)'),
76726
+ endTime: v4.z.number().optional().describe('State end time (epoch ms)'),
76727
+ status: v4.z.number().optional().describe('State status code'),
76728
+ data: v4.z.unknown().optional().describe('Opaque state payload'),
76481
76729
  });
76482
76730
  const VertexStateStoreRequestSchema = v4.z.looseObject({
76483
- states: v4.z.array(VertexStateInputSchema),
76731
+ states: v4.z.array(VertexStateInputSchema).describe('States to store'),
76484
76732
  });
76485
76733
  const VertexStateFetchRequestSchema = v4.z.looseObject({
76486
- filter: VertexStateFilterSchema.optional(),
76487
- time: v4.z.number().optional(),
76488
- projection: VertexStateProjectionSchema.optional(),
76489
- flushCacheBeforeQuery: v4.z.boolean().optional(),
76490
- version: v4.z.string().nullable().optional(),
76491
- includeAllTouchedVertexStates: v4.z.boolean().optional(),
76734
+ filter: VertexStateFilterSchema.optional().describe('Filter selecting which states to fetch'),
76735
+ time: v4.z.number().optional().describe('Point in time to evaluate state at (epoch ms); default now'),
76736
+ projection: VertexStateProjectionSchema.optional().describe('Response detail level'),
76737
+ flushCacheBeforeQuery: v4.z.boolean().optional().describe('Force a cache flush before evaluating (slower, freshest)'),
76738
+ version: v4.z.string().nullable().optional().describe('Client-held version for delta fetches; null for a full fetch'),
76739
+ includeAllTouchedVertexStates: v4.z
76740
+ .boolean()
76741
+ .optional()
76742
+ .describe('Include states for every vertex touched, not just those matching the filter'),
76492
76743
  });
76744
+ /** Down-sampling settings for range queries that would otherwise return too many points. */
76493
76745
  const VertexStateClampSettingSchema = v4.z.looseObject({
76494
- clampThreshold: v4.z.number().optional(),
76495
- bucketCount: v4.z.number().optional(),
76496
- bucketSize: v4.z.number().optional(),
76746
+ clampThreshold: v4.z.number().optional().describe('Point count above which clamping/bucketing kicks in'),
76747
+ bucketCount: v4.z.number().optional().describe('Number of buckets to down-sample into'),
76748
+ bucketSize: v4.z.number().optional().describe('Bucket width in ms (alternative to bucketCount)'),
76497
76749
  });
76498
76750
  const VertexStateRangeRequestSchema = v4.z.looseObject({
76499
- filter: VertexStateFilterSchema.optional(),
76500
- startTime: v4.z.number().optional(),
76501
- endTime: v4.z.number().optional(),
76502
- projection: VertexStateProjectionSchema.optional(),
76503
- viewPortStart: v4.z.number().optional(),
76504
- viewPortEnd: v4.z.number().optional(),
76505
- clampSetting: VertexStateClampSettingSchema.optional(),
76506
- flushCacheBeforeQuery: v4.z.boolean().optional(),
76751
+ filter: VertexStateFilterSchema.optional().describe('Filter selecting which states to fetch'),
76752
+ startTime: v4.z.number().optional().describe('Inclusive start of the time range (epoch ms)'),
76753
+ endTime: v4.z.number().optional().describe('Inclusive end of the time range (epoch ms)'),
76754
+ projection: VertexStateProjectionSchema.optional().describe('Response detail level'),
76755
+ viewPortStart: v4.z.number().optional().describe('Visible viewport start (epoch ms), for clamp bucketing'),
76756
+ viewPortEnd: v4.z.number().optional().describe('Visible viewport end (epoch ms), for clamp bucketing'),
76757
+ clampSetting: VertexStateClampSettingSchema.optional().describe('Down-sampling settings for large ranges'),
76758
+ flushCacheBeforeQuery: v4.z.boolean().optional().describe('Force a cache flush before evaluating'),
76507
76759
  });
76760
+ /** Republish reuses the fetch request shape — same filter/projection options. */
76508
76761
  const VertexStateRepublishRequestSchema = VertexStateFetchRequestSchema;
76509
76762
 
76510
76763
  const VertexStateExternalIdResponseSchema = v4.z.looseObject({
76511
- vertexId: v4.z.number().optional(),
76512
- vertexExternalId: v4.z.string().optional(),
76513
- alert: v4.z.string().optional(),
76514
- alertExternalId: v4.z.string().optional(),
76515
- metric: v4.z.string().optional(),
76516
- metricExternalId: v4.z.string().optional(),
76764
+ vertexId: v4.z.number().optional().describe('Internal vertex ID'),
76765
+ vertexExternalId: v4.z.string().optional().describe('External vertex ID'),
76766
+ alert: v4.z.string().optional().describe('Alert identifier'),
76767
+ alertExternalId: v4.z.string().optional().describe('External alert identifier'),
76768
+ metric: v4.z.string().optional().describe('Metric identifier'),
76769
+ metricExternalId: v4.z.string().optional().describe('External metric identifier'),
76517
76770
  });
76518
76771
  const VertexStateResponseItemSchema = v4.z.looseObject({
76519
- vertexId: v4.z.number().optional(),
76520
- alertId: v4.z.number().optional(),
76521
- metricId: v4.z.number().optional(),
76522
- stateExternalId: VertexStateExternalIdResponseSchema.optional(),
76523
- status: v4.z.number().optional(),
76524
- data: v4.z.unknown().optional(),
76525
- startTime: v4.z.number().optional(),
76526
- endTime: v4.z.number().optional(),
76772
+ vertexId: v4.z.number().optional().describe('Internal vertex ID the state belongs to'),
76773
+ alertId: v4.z.number().optional().describe('Internal alert ID the state belongs to'),
76774
+ metricId: v4.z.number().optional().describe('Internal metric ID the state belongs to'),
76775
+ stateExternalId: VertexStateExternalIdResponseSchema.optional().describe('External coordinates of the state'),
76776
+ status: v4.z.number().optional().describe('State status code'),
76777
+ data: v4.z.unknown().optional().describe('Opaque state payload'),
76778
+ startTime: v4.z.number().optional().describe('State start time (epoch ms)'),
76779
+ endTime: v4.z.number().optional().describe('State end time (epoch ms)'),
76527
76780
  });
76781
+ /** Per-group alert rollup produced by a COLLECT_GROUPS filter. */
76528
76782
  const VertexStateGroupResultSchema = v4.z.looseObject({
76529
- groupName: v4.z.string().optional(),
76530
- alerts: v4.z.number().optional(),
76531
- cautionAlerts: v4.z.number().optional(),
76532
- dangerAlert: v4.z.number().optional(),
76783
+ groupName: v4.z.string().optional().describe('Name of the vertex group'),
76784
+ alerts: v4.z.number().optional().describe('Total alerting states in the group'),
76785
+ cautionAlerts: v4.z.number().optional().describe('States at caution severity'),
76786
+ dangerAlert: v4.z.number().optional().describe('States at danger severity'),
76533
76787
  });
76534
76788
  const VertexStateAnalyticResultSchema = v4.z.looseObject({
76535
- t: v4.z.string().optional(),
76536
- groups: v4.z.array(VertexStateGroupResultSchema).optional(),
76789
+ t: v4.z.string().optional().describe('Analytic type/tag identifier'),
76790
+ groups: v4.z.array(VertexStateGroupResultSchema).optional().describe('Per-group status rollups'),
76537
76791
  });
76538
76792
  const VertexStateStoreResponseSchema = v4.z.looseObject({
76539
- updated: v4.z.number().optional(),
76540
- errors: v4.z.number().optional(),
76541
- mappingErrors: v4.z.number().optional(),
76793
+ updated: v4.z.number().optional().describe('Number of states successfully stored/updated'),
76794
+ errors: v4.z.number().optional().describe('Number of states that failed to store'),
76795
+ mappingErrors: v4.z.number().optional().describe('Number of states whose external IDs could not be resolved'),
76542
76796
  });
76543
76797
  const VertexStateFetchResponseSchema = v4.z.looseObject({
76544
- states: v4.z.array(VertexStateResponseItemSchema).optional(),
76545
- analyticResult: v4.z.array(VertexStateAnalyticResultSchema).optional(),
76546
- version: v4.z.string().optional(),
76798
+ states: v4.z.array(VertexStateResponseItemSchema).optional().describe('Matched states'),
76799
+ analyticResult: v4.z.array(VertexStateAnalyticResultSchema).optional().describe('Group/status analytics, if requested'),
76800
+ version: v4.z.string().optional().describe('Server version token to pass back for the next delta fetch'),
76547
76801
  });
76548
76802
  const VertexStateRangeResponseSchema = v4.z.looseObject({
76549
- states: v4.z.array(VertexStateResponseItemSchema).optional(),
76550
- analyticResult: v4.z.array(VertexStateAnalyticResultSchema).optional(),
76803
+ states: v4.z.array(VertexStateResponseItemSchema).optional().describe('Matched states across the time range'),
76804
+ analyticResult: v4.z.array(VertexStateAnalyticResultSchema).optional().describe('Group/status analytics, if requested'),
76551
76805
  });
76552
76806
 
76553
76807
  /**
@@ -76851,33 +77105,51 @@ class DataStoreTASService {
76851
77105
  }
76852
77106
  }
76853
77107
 
77108
+ /** Free-form string→string metadata attached to a token (values may be null). */
76854
77109
  const TokenMetadataSchema = v4.z
76855
77110
  .record(v4.z.string(), v4.z.union([v4.z.string(), v4.z.null()]))
76856
- .optional();
77111
+ .optional()
77112
+ .describe('Arbitrary string metadata stored with the token (values may be null)');
77113
+ /** Session validation takes no body — the session cookie/header carries identity. */
76857
77114
  const SessionValidateRequestSchema = v4.z.looseObject({});
77115
+ /** Token verification takes no body — the token is supplied via header. */
76858
77116
  const TokenVerifyRequestSchema = v4.z.looseObject({});
76859
77117
  const TokenGetAndVerifyRequestSchema = v4.z.looseObject({
76860
- tokenId: v4.z.string(),
77118
+ tokenId: v4.z.string().describe('ID of the token to fetch and verify'),
76861
77119
  });
77120
+ /**
77121
+ * Paged token listing. `query` (free-text) and `filter` (structured) are
77122
+ * mutually exclusive — supplying both is rejected by the refinement.
77123
+ */
76862
77124
  const TokenQueryRequestSchema = v4.z
76863
77125
  .looseObject({
76864
- pageSize: v4.z.number().optional(),
76865
- seekTokenId: v4.z.string().optional(),
76866
- query: v4.z.string().optional(),
76867
- filter: v4.z.unknown().optional(),
77126
+ pageSize: v4.z.number().optional().describe('Maximum number of tokens per page'),
77127
+ seekTokenId: v4.z.string().optional().describe('Cursor — return tokens after this token ID'),
77128
+ query: v4.z.string().optional().describe('Free-text search (mutually exclusive with `filter`)'),
77129
+ filter: v4.z.unknown().optional().describe('Structured filter (mutually exclusive with `query`)'),
76868
77130
  })
76869
77131
  .refine((value) => !(value.query !== undefined && value.filter !== undefined), {
76870
77132
  message: '`query` and `filter` are mutually exclusive on /tenants/token/query',
76871
77133
  });
76872
- const ttlField = v4.z.number().optional();
77134
+ const ttlField = v4.z
77135
+ .number()
77136
+ .optional()
77137
+ .describe('Token lifetime in seconds; omit for the server default');
76873
77138
  const CreateUserTokenRequestSchema = v4.z.looseObject({
76874
77139
  ttl: ttlField,
76875
- dynamicExpire: v4.z.boolean().optional(),
77140
+ dynamicExpire: v4.z
77141
+ .boolean()
77142
+ .optional()
77143
+ .describe('When true, sliding expiry — each use extends the token lifetime'),
76876
77144
  metadata: TokenMetadataSchema,
76877
77145
  });
76878
77146
  const UpdateUserTokenRequestSchema = v4.z.looseObject({
76879
- tokenId: v4.z.string(),
76880
- dynamicExpireTime: v4.z.number().nullable().optional(),
77147
+ tokenId: v4.z.string().describe('ID of the token to update'),
77148
+ dynamicExpireTime: v4.z
77149
+ .number()
77150
+ .nullable()
77151
+ .optional()
77152
+ .describe('New sliding-expiry window in seconds; null clears it'),
76881
77153
  metadata: TokenMetadataSchema,
76882
77154
  });
76883
77155
  const CreateAgentTokenRequestSchema = v4.z.looseObject({
@@ -76885,73 +77157,82 @@ const CreateAgentTokenRequestSchema = v4.z.looseObject({
76885
77157
  metadata: TokenMetadataSchema,
76886
77158
  });
76887
77159
  const UpdateAgentTokenRequestSchema = v4.z.looseObject({
76888
- tokenId: v4.z.string(),
77160
+ tokenId: v4.z.string().describe('ID of the agent token to update'),
76889
77161
  metadata: TokenMetadataSchema,
76890
77162
  });
76891
77163
  const CreateTenantTokenRequestSchema = v4.z.looseObject({
76892
- tenantId: v4.z.number().optional(),
77164
+ tenantId: v4.z.number().optional().describe('Numeric tenant ID the token is scoped to'),
76893
77165
  ttl: ttlField,
76894
77166
  metadata: TokenMetadataSchema,
76895
77167
  });
76896
77168
  const UpdateTenantTokenRequestSchema = v4.z.looseObject({
76897
- tokenId: v4.z.string(),
76898
- dynamicExpireTime: v4.z.number().nullable().optional(),
77169
+ tokenId: v4.z.string().describe('ID of the tenant token to update'),
77170
+ dynamicExpireTime: v4.z
77171
+ .number()
77172
+ .nullable()
77173
+ .optional()
77174
+ .describe('New sliding-expiry window in seconds; null clears it'),
76899
77175
  metadata: TokenMetadataSchema,
76900
77176
  });
76901
77177
  const CreateInternalTokenRequestSchema = v4.z.looseObject({
76902
- product: v4.z.string(),
77178
+ product: v4.z.string().describe('Product the internal token is issued for'),
76903
77179
  ttl: ttlField,
76904
77180
  metadata: TokenMetadataSchema,
76905
77181
  });
76906
77182
  const RevokeTokenRequestSchema = v4.z.looseObject({
76907
- revokeToken: v4.z.string(),
76908
- delete: v4.z.boolean().optional(),
77183
+ revokeToken: v4.z.string().describe('The token (or token ID) to revoke'),
77184
+ delete: v4.z.boolean().optional().describe('When true, also delete the token rather than only revoking it'),
76909
77185
  });
76910
77186
  const CancelRevokeRequestSchema = v4.z.looseObject({
76911
- revokeToken: v4.z.string(),
77187
+ revokeToken: v4.z.string().describe('The token (or token ID) whose pending revocation to cancel'),
76912
77188
  });
76913
77189
  const DeleteTokenRequestSchema = v4.z.looseObject({
76914
- tokenId: v4.z.string(),
77190
+ tokenId: v4.z.string().describe('ID of the token to delete'),
76915
77191
  });
76916
77192
  const ImportTokenRequestSchema = v4.z.looseObject({
76917
- token: v4.z.string(),
77193
+ token: v4.z.string().describe('Raw token string to import into the store'),
76918
77194
  });
76919
77195
 
76920
77196
  const SessionValidateResponseSchema = v4.z.looseObject({
76921
- tenantId: v4.z.number().optional(),
76922
- userId: v4.z.string().optional(),
76923
- externalTenantId: v4.z.string().optional(),
76924
- cohort: v4.z.string().optional(),
76925
- role: v4.z.string().optional(),
76926
- authToken: v4.z.string().optional(),
76927
- groups: v4.z.array(v4.z.string()).nullable().optional(),
77197
+ tenantId: v4.z.number().optional().describe('Numeric tenant ID resolved from the session'),
77198
+ userId: v4.z.string().optional().describe('User ID resolved from the session'),
77199
+ externalTenantId: v4.z.string().optional().describe('External (customer-facing) tenant identifier'),
77200
+ cohort: v4.z.string().optional().describe('Cohort the tenant belongs to'),
77201
+ role: v4.z.string().optional().describe("User's role within the tenant"),
77202
+ authToken: v4.z.string().optional().describe('Auth token minted for the validated session'),
77203
+ groups: v4.z.array(v4.z.string()).nullable().optional().describe('Groups the user belongs to'),
76928
77204
  });
76929
77205
  const TokenDetailsSchema = v4.z.looseObject({
76930
- id: v4.z.string().optional(),
76931
- prefix: v4.z.string().optional(),
76932
- revoked: v4.z.boolean().optional(),
76933
- internal: v4.z.boolean().optional(),
76934
- agent: v4.z.boolean().optional(),
76935
- createdAt: v4.z.number().optional(),
76936
- expireAt: v4.z.number().optional(),
76937
- tenantId: v4.z.number().optional(),
76938
- user: v4.z.string().nullable().optional(),
76939
- dynamicExpire: v4.z.boolean().optional(),
76940
- metadata: v4.z.record(v4.z.string(), v4.z.unknown()).nullable().optional(),
77206
+ id: v4.z.string().optional().describe('Token ID'),
77207
+ prefix: v4.z.string().optional().describe('Non-secret token prefix (safe to display)'),
77208
+ revoked: v4.z.boolean().optional().describe('Whether the token has been revoked'),
77209
+ internal: v4.z.boolean().optional().describe('Whether this is an internal (product) token'),
77210
+ agent: v4.z.boolean().optional().describe('Whether this is an agent token'),
77211
+ createdAt: v4.z.number().optional().describe('Creation time (epoch ms)'),
77212
+ expireAt: v4.z.number().optional().describe('Expiry time (epoch ms)'),
77213
+ tenantId: v4.z.number().optional().describe('Numeric tenant ID the token is scoped to'),
77214
+ user: v4.z.string().nullable().optional().describe('User the token belongs to, if any'),
77215
+ dynamicExpire: v4.z.boolean().optional().describe('Whether the token uses sliding expiry'),
77216
+ metadata: v4.z
77217
+ .record(v4.z.string(), v4.z.unknown())
77218
+ .nullable()
77219
+ .optional()
77220
+ .describe('Arbitrary metadata stored with the token'),
76941
77221
  });
76942
77222
  const TokenQueryResponseSchema = v4.z.looseObject({
76943
- items: v4.z.array(TokenDetailsSchema).optional(),
76944
- nextPage: v4.z.boolean().optional(),
77223
+ items: v4.z.array(TokenDetailsSchema).optional().describe('Tokens on this page'),
77224
+ nextPage: v4.z.boolean().optional().describe('Whether more pages remain (seek with the last token ID)'),
76945
77225
  });
76946
77226
  const TokenCreateResponseSchema = v4.z.looseObject({
76947
- token: v4.z.string().optional(),
77227
+ token: v4.z.string().optional().describe('The newly minted token string'),
76948
77228
  });
77229
+ /** Public-key response — an opaque JWK-style object; fields vary by key type. */
76949
77230
  const PublicKeyJsonResponseSchema = v4.z.looseObject({});
76950
77231
  const RevokeTokensResponseSchema = v4.z.looseObject({
76951
- revokedTokens: v4.z.array(v4.z.string()).optional(),
77232
+ revokedTokens: v4.z.array(v4.z.string()).optional().describe('IDs of the tokens that were revoked'),
76952
77233
  });
76953
77234
  const DeleteTokensResponseSchema = v4.z.looseObject({
76954
- deletedTokens: v4.z.array(v4.z.string()).optional(),
77235
+ deletedTokens: v4.z.array(v4.z.string()).optional().describe('IDs of the tokens that were deleted'),
76955
77236
  });
76956
77237
 
76957
77238
  /**
@@ -77211,10 +77492,22 @@ class DataStoreNASSService {
77211
77492
  * @param values - Array of {@link NassDatapoint} tuples. Each tuple must
77212
77493
  * begin with a registered metric ID obtained from
77213
77494
  * {@link DataStoreMetricsMetadataService.registerMetric}.
77495
+ *
77496
+ * @remarks The request is validated against {@link NassStoreRequestSchema}.
77497
+ * If the response fails schema validation, a warning is logged but the raw
77498
+ * API response is still returned.
77499
+ *
77500
+ * @throws ZodError if any datapoint fails schema validation.
77214
77501
  */
77215
77502
  async storeMetricValues(values) {
77216
77503
  const body = { values };
77217
- return this.dxSaasService.tenantPost('nass/metricValue/store', body);
77504
+ NassStoreRequestSchema.parse(body);
77505
+ const raw = await this.dxSaasService.tenantPost('nass/metricValue/store', body);
77506
+ const result = NassStoreResponseSchema.safeParse(raw);
77507
+ if (!result.success) {
77508
+ this.log.warn('NassStoreResponse validation warning:', result.error.message);
77509
+ }
77510
+ return raw;
77218
77511
  }
77219
77512
  }
77220
77513
 
@@ -77311,7 +77604,39 @@ exports.AttributeService = AttributeService;
77311
77604
  exports.AttributeValueAsFieldSchema = AttributeValueAsFieldSchema;
77312
77605
  exports.AuthorizationService = AuthorizationService;
77313
77606
  exports.AxaService = AxaService;
77607
+ exports.BlobAllFilterSchema = BlobAllFilterSchema;
77608
+ exports.BlobAsyncCommandSchema = BlobAsyncCommandSchema;
77609
+ exports.BlobAsyncDeleteSchemaCommandSchema = BlobAsyncDeleteSchemaCommandSchema;
77610
+ exports.BlobAsyncResultEntrySchema = BlobAsyncResultEntrySchema;
77611
+ exports.BlobAsyncResultRequestSchema = BlobAsyncResultRequestSchema;
77612
+ exports.BlobAsyncResultResponseSchema = BlobAsyncResultResponseSchema;
77613
+ exports.BlobAsyncResultStateSchema = BlobAsyncResultStateSchema;
77614
+ exports.BlobAttributeExpressionSchema = BlobAttributeExpressionSchema;
77615
+ exports.BlobAttributeFilterSchema = BlobAttributeFilterSchema;
77616
+ exports.BlobAttributesSchema = BlobAttributesSchema;
77617
+ exports.BlobBulkDeleteEntrySchema = BlobBulkDeleteEntrySchema;
77618
+ exports.BlobBulkDeleteRequestSchema = BlobBulkDeleteRequestSchema;
77619
+ exports.BlobBulkDeleteResponseSchema = BlobBulkDeleteResponseSchema;
77620
+ exports.BlobBulkItemSchema = BlobBulkItemSchema;
77621
+ exports.BlobBulkStoreRequestSchema = BlobBulkStoreRequestSchema;
77622
+ exports.BlobBulkStoreResponseSchema = BlobBulkStoreResponseSchema;
77623
+ exports.BlobDeleteParamsSchema = BlobDeleteParamsSchema;
77624
+ exports.BlobDeleteResponseSchema = BlobDeleteResponseSchema;
77625
+ exports.BlobDeleteSchemaResultSchema = BlobDeleteSchemaResultSchema;
77626
+ exports.BlobExecuteAsyncRequestSchema = BlobExecuteAsyncRequestSchema;
77627
+ exports.BlobExecuteAsyncResponseSchema = BlobExecuteAsyncResponseSchema;
77628
+ exports.BlobFetchParamsSchema = BlobFetchParamsSchema;
77629
+ exports.BlobFileEnvelopeSchema = BlobFileEnvelopeSchema;
77630
+ exports.BlobFilterSchema = BlobFilterSchema;
77631
+ exports.BlobMetadataSchema = BlobMetadataSchema;
77632
+ exports.BlobQueryRequestSchema = BlobQueryRequestSchema;
77633
+ exports.BlobQueryResponseSchema = BlobQueryResponseSchema;
77634
+ exports.BlobSchemaItemSchema = BlobSchemaItemSchema;
77635
+ exports.BlobSchemaListRequestSchema = BlobSchemaListRequestSchema;
77636
+ exports.BlobSchemaListResponseSchema = BlobSchemaListResponseSchema;
77314
77637
  exports.BlobService = BlobService;
77638
+ exports.BlobStoreParamsSchema = BlobStoreParamsSchema;
77639
+ exports.BlobStoreResponseSchema = BlobStoreResponseSchema;
77315
77640
  exports.CalendarIntervalSchema = CalendarIntervalSchema;
77316
77641
  exports.ChannelService = ChannelService;
77317
77642
  exports.DEFAULT_EXPERIENCE_REQUEST_BODY = DEFAULT_EXPERIENCE_REQUEST_BODY;
@@ -77363,6 +77688,11 @@ exports.MetricRegisterSchema = MetricRegisterSchema;
77363
77688
  exports.MetricRegisterSourceSchema = MetricRegisterSourceSchema;
77364
77689
  exports.MetricTypeEnumNameSchema = MetricTypeEnumNameSchema;
77365
77690
  exports.NASSService = NASSService;
77691
+ exports.NassDatapointSchema = NassDatapointSchema;
77692
+ exports.NassExtensionDatapointSchema = NassExtensionDatapointSchema;
77693
+ exports.NassRegularDatapointSchema = NassRegularDatapointSchema;
77694
+ exports.NassStoreRequestSchema = NassStoreRequestSchema;
77695
+ exports.NassStoreResponseSchema = NassStoreResponseSchema;
77366
77696
  exports.NassValueTypeSchema = NassValueTypeSchema;
77367
77697
  exports.NotificationService = NotificationService;
77368
77698
  exports.NumericOperatorSchema = NumericOperatorSchema;