@dx-do/client 6.1.1 → 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 +749 -418
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +713 -419
  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 +14 -22
  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 +18 -3
  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 = [
@@ -73449,11 +73737,16 @@ class LogsService {
73449
73737
  /**
73450
73738
  * Builds the enriched payload object for a single log entry.
73451
73739
  *
73452
- * @param options - Known log entry fields (all optional with sensible defaults).
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).
73453
73744
  * @param additionalFields - Arbitrary extra fields to include in the indexed document.
73454
73745
  * @returns The payload object ready to POST to the uim_logs ingestion endpoint.
73746
+ * @throws ZodError if `options` fails schema validation.
73455
73747
  */
73456
73748
  buildLogPayload(options, additionalFields) {
73749
+ exports.LogIngest.LogIngestOptionsSchema.parse(options);
73457
73750
  const cohortId = this.dxSaasService.dxdoConfiguration.dxConfiguration.cohortId;
73458
73751
  const tenantIdUpper = cohortId.toUpperCase();
73459
73752
  const logtype = options.logtype ?? 'generic';
@@ -73487,11 +73780,22 @@ class LogsService {
73487
73780
  ...additionalFields,
73488
73781
  };
73489
73782
  }
73490
- /** Ingests a single log entry into the log gateway. */
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
+ */
73491
73790
  ingestLog(options, additionalFields) {
73492
73791
  return this.dxSaasService.logPost('mdo/v2/aoanalytics/ingestion/uim_logs', [this.buildLogPayload(options, additionalFields)]);
73493
73792
  }
73494
- /** 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
+ */
73495
73799
  ingestLogs(entries) {
73496
73800
  return this.dxSaasService.logPost('mdo/v2/aoanalytics/ingestion/uim_logs', entries.map((e) => this.buildLogPayload(e.options, e.additionalFields)));
73497
73801
  }
@@ -75420,70 +75724,107 @@ class SituationService {
75420
75724
  }
75421
75725
  }
75422
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
+ */
75423
75732
  const AuditRecordSchema = v4.z.looseObject({
75424
- userName: v4.z.string().optional(),
75425
- userFirstName: v4.z.string().optional(),
75426
- userLastName: v4.z.string().optional(),
75427
- userEmailAddr: v4.z.string().optional(),
75428
- token: v4.z.string().optional(),
75429
- eventTime: v4.z.string(),
75430
- dsTenantId: v4.z.string().optional(),
75431
- dxiTenantId: v4.z.string().optional(),
75432
- cohortId: v4.z.string().optional(),
75433
- serviceId: v4.z.string(),
75434
- serviceInstanceId: v4.z.string().optional(),
75435
- componentName: v4.z.string().optional(),
75436
- clientIp: v4.z.string().optional(),
75437
- clientHostName: v4.z.string().optional(),
75438
- resource: v4.z.string(),
75439
- action: v4.z.string(),
75440
- result: v4.z.string(),
75441
- oldValue: v4.z.unknown().optional(),
75442
- newValue: v4.z.unknown().optional(),
75443
- eventId: v4.z.string().optional(),
75444
- 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'),
75445
75760
  });
75446
75761
 
75447
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
+ */
75448
75767
  const AuditQueryRequestSchema = v4.z.object({
75449
- fromEventTime: DateTimeSchema,
75450
- toEventTime: DateTimeSchema,
75451
- userName: v4.z.string().optional(),
75452
- serviceId: v4.z.string().optional(),
75453
- action: v4.z.string().optional(),
75454
- result: v4.z.string().optional(),
75455
- from: v4.z.number().int().optional(),
75456
- 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)'),
75457
75786
  });
75787
+ /** Cross-tenant variant of {@link AuditQueryRequestSchema} that adds a tenant filter. */
75458
75788
  AuditQueryRequestSchema.extend({
75459
- 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'),
75460
75793
  });
75461
75794
 
75795
+ /** Store acknowledgement — the audit store returns an empty object on success. */
75462
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
+ */
75463
75802
  const AuditRecordEsSchema = v4.z.looseObject({
75464
- userName: v4.z.string().optional(),
75465
- eventTime: v4.z.string().optional(),
75466
- serverTime: v4.z.string().optional(),
75467
- dsTenantId: v4.z.string().optional(),
75468
- dxiTenantId: v4.z.string().optional(),
75469
- serviceId: v4.z.string().optional(),
75470
- serviceInstanceId: v4.z.string().optional(),
75471
- componentName: v4.z.string().optional(),
75472
- clientIp: v4.z.string().optional(),
75473
- clientHostName: v4.z.string().optional(),
75474
- resource: v4.z.string().optional(),
75475
- action: v4.z.string().optional(),
75476
- result: v4.z.string().optional(),
75477
- oldValue: v4.z.unknown().optional(),
75478
- newValue: v4.z.unknown().optional(),
75479
- additionalInfo: v4.z.unknown().optional(),
75480
- eventId: v4.z.string().optional(),
75481
- userFirstName: v4.z.string().optional(),
75482
- userMiddleName: v4.z.string().optional(),
75483
- userLastName: v4.z.string().optional(),
75484
- 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'),
75485
75824
  });
75486
- const AuditQueryResponseSchema = v4.z.array(AuditRecordEsSchema);
75825
+ const AuditQueryResponseSchema = v4.z
75826
+ .array(AuditRecordEsSchema)
75827
+ .describe('Audit records matching the query');
75487
75828
 
75488
75829
  /**
75489
75830
  * Service for the DX SaaS DataStore audit API (`/audit/...`).
@@ -75558,32 +75899,42 @@ class DataStoreAuditService {
75558
75899
  }
75559
75900
 
75560
75901
  const ViewFilterLazy = v4.z.lazy(() => ViewFilterSchema);
75902
+ /** Matches every view. */
75561
75903
  const ViewAllFilterSchema = v4.z.looseObject({
75562
- op: v4.z.literal('ALL'),
75904
+ op: v4.z.literal('ALL').describe('Match all views'),
75563
75905
  });
75906
+ /** Matches views by ID. */
75564
75907
  const ViewIdFilterSchema = v4.z.looseObject({
75565
- op: v4.z.literal('ID'),
75566
- 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'),
75567
75910
  });
75911
+ /** Matches only active views. */
75568
75912
  const ViewActiveFilterSchema = v4.z.looseObject({
75569
- op: v4.z.literal('ACTIVE'),
75913
+ op: v4.z.literal('ACTIVE').describe('Match only active views'),
75570
75914
  });
75571
75915
  const ViewAttributeExpressionSchema = v4.z.looseObject({
75572
- name: v4.z.string().optional(),
75573
- 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)'),
75574
75918
  });
75919
+ /** Matches views whose attributes satisfy the given expressions (AND-ed). */
75575
75920
  const ViewAttributeFilterSchema = v4.z.looseObject({
75576
- op: v4.z.literal('ATTRIBUTE'),
75577
- 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'),
75578
75926
  });
75927
+ /** Logical AND of nested view filters. */
75579
75928
  const ViewAndFilterSchema = v4.z.looseObject({
75580
- op: v4.z.literal('AND'),
75581
- 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'),
75582
75931
  });
75932
+ /** Logical OR of nested view filters. */
75583
75933
  const ViewOrFilterSchema = v4.z.looseObject({
75584
- op: v4.z.literal('OR'),
75585
- 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'),
75586
75936
  });
75937
+ /** Discriminated union of all view filter operators, keyed by `op`. */
75587
75938
  const ViewFilterSchema = v4.z.discriminatedUnion('op', [
75588
75939
  ViewAllFilterSchema,
75589
75940
  ViewIdFilterSchema,
@@ -75593,65 +75944,77 @@ const ViewFilterSchema = v4.z.discriminatedUnion('op', [
75593
75944
  ViewOrFilterSchema,
75594
75945
  ]);
75595
75946
 
75596
- 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');
75597
75951
  const ViewAccessEntrySchema = v4.z.looseObject({
75598
- name: v4.z.string(),
75599
- 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'),
75600
75954
  });
75601
75955
  const ViewAccessSchema = v4.z.looseObject({
75602
- users: v4.z.array(ViewAccessEntrySchema).optional(),
75603
- 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'),
75604
75958
  });
75605
75959
  const ViewTasSpecSchema = v4.z.looseObject({
75606
- filter: TasFilterSchema.optional(),
75960
+ filter: TasFilterSchema.optional().describe('TAS filter scoping the topology this view exposes'),
75607
75961
  });
75608
75962
  const ViewNassSpecSchema = v4.z.looseObject({
75609
- filter: v4.z.unknown().optional(),
75963
+ filter: v4.z.unknown().optional().describe('NASS filter scoping the metrics this view exposes'),
75610
75964
  });
75611
75965
  const ViewSpecsSchema = v4.z.looseObject({
75612
- tas: ViewTasSpecSchema.optional(),
75613
- 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'),
75614
75968
  });
75615
- 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)');
75616
75973
  const ViewAttributesSchema = v4.z.looseObject({
75617
- label: v4.z.string().optional(),
75618
- description: v4.z.string().optional(),
75619
- 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'),
75620
75977
  });
75621
75978
  const ViewBodySchema = v4.z.looseObject({
75622
- access: ViewAccessSchema.optional(),
75623
- views: ViewSpecsSchema.optional(),
75624
- 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)'),
75625
75982
  });
75626
75983
  const SetDefaultViewRequestSchema = v4.z.looseObject({
75627
- userName: v4.z.string(),
75628
- 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'),
75629
75989
  });
75630
75990
  const ViewSearchRequestSchema = v4.z.looseObject({
75631
- user: v4.z.string(),
75632
- groups: v4.z.array(v4.z.string()).optional(),
75633
- minimalRules: v4.z.unknown().optional(),
75634
- 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'),
75635
75995
  });
75636
75996
  const ViewQueryRequestSchema = v4.z.looseObject({
75637
- filter: ViewFilterSchema.optional(),
75997
+ filter: ViewFilterSchema.optional().describe('Filter selecting which views to return; omit for all'),
75638
75998
  });
75639
75999
 
75640
76000
  const ViewResponseSchema = v4.z.looseObject({
75641
- viewId: v4.z.string().optional(),
75642
- access: ViewAccessSchema.optional(),
75643
- views: ViewSpecsSchema.optional(),
75644
- 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)'),
75645
76005
  });
75646
- const ViewListResponseSchema = v4.z.array(ViewResponseSchema);
76006
+ const ViewListResponseSchema = v4.z
76007
+ .array(ViewResponseSchema)
76008
+ .describe('All views returned by a list call');
75647
76009
  const ViewQueryResponseSchema = v4.z.looseObject({
75648
- views: v4.z.array(ViewResponseSchema).optional(),
76010
+ views: v4.z.array(ViewResponseSchema).optional().describe('Views matching the query filter'),
75649
76011
  });
75650
76012
  const DefaultViewsResponseSchema = v4.z.looseObject({
75651
- userName: v4.z.string().optional(),
76013
+ userName: v4.z.string().optional().describe('User the defaults belong to'),
75652
76014
  defaultViews: v4.z
75653
76015
  .union([v4.z.string(), v4.z.array(v4.z.string())])
75654
- .optional(),
76016
+ .optional()
76017
+ .describe("The user's default view ID, or list of IDs"),
75655
76018
  });
75656
76019
 
75657
76020
  /**
@@ -75788,129 +76151,6 @@ class DataStoreAuthViewsService {
75788
76151
  }
75789
76152
  }
75790
76153
 
75791
- const BlobAttributeExpressionSchema = v4.z.looseObject({
75792
- name: v4.z.string(),
75793
- values: v4.z.array(v4.z.string()).optional(),
75794
- });
75795
- const BlobAllFilterSchema = v4.z.looseObject({
75796
- op: v4.z.literal('ALL'),
75797
- });
75798
- const BlobAttributeFilterSchema = v4.z.looseObject({
75799
- op: v4.z.literal('ATTRIBUTE'),
75800
- expressions: v4.z.array(BlobAttributeExpressionSchema).optional(),
75801
- });
75802
- const BlobFilterSchema = v4.z.discriminatedUnion('op', [
75803
- BlobAllFilterSchema,
75804
- BlobAttributeFilterSchema,
75805
- ]);
75806
-
75807
- const BlobAttributesSchema = v4.z.record(v4.z.string(), v4.z.union([v4.z.string(), v4.z.number(), v4.z.boolean()]));
75808
- /** Query params used by `POST /blobstorage/blob` and `DELETE /blobstorage/blob`. */
75809
- v4.z.looseObject({
75810
- schema: v4.z.string(),
75811
- id: v4.z.string(),
75812
- ttl: v4.z.union([v4.z.string(), v4.z.number()]).optional(),
75813
- });
75814
- const BlobBulkItemSchema = v4.z.looseObject({
75815
- schema: v4.z.string(),
75816
- id: v4.z.string(),
75817
- ttl: v4.z.union([v4.z.string(), v4.z.number()]),
75818
- data: v4.z.string(),
75819
- attributes: BlobAttributesSchema.optional(),
75820
- });
75821
- const BlobBulkStoreRequestSchema = v4.z.looseObject({
75822
- blobs: v4.z.array(BlobBulkItemSchema),
75823
- });
75824
- v4.z.looseObject({
75825
- schema: v4.z.string(),
75826
- id: v4.z.string(),
75827
- version: v4.z.number().optional(),
75828
- });
75829
- const BlobQueryRequestSchema = v4.z.looseObject({
75830
- schema: v4.z.string(),
75831
- filter: BlobFilterSchema.optional(),
75832
- includeData: v4.z.boolean().optional(),
75833
- includeProfile: v4.z.boolean().optional(),
75834
- });
75835
- v4.z.looseObject({
75836
- schema: v4.z.string(),
75837
- id: v4.z.string(),
75838
- });
75839
- const BlobBulkDeleteEntrySchema = v4.z.looseObject({
75840
- schema: v4.z.string(),
75841
- id: v4.z.string(),
75842
- });
75843
- const BlobBulkDeleteRequestSchema = v4.z.looseObject({
75844
- blobs: v4.z.array(BlobBulkDeleteEntrySchema),
75845
- });
75846
- v4.z.looseObject({});
75847
- const BlobAsyncDeleteSchemaCommandSchema = v4.z.looseObject({
75848
- op: v4.z.literal('DELETE_SCHEMA'),
75849
- schema: v4.z.string(),
75850
- });
75851
- const BlobAsyncCommandSchema = v4.z.discriminatedUnion('op', [
75852
- BlobAsyncDeleteSchemaCommandSchema,
75853
- ]);
75854
- const BlobExecuteAsyncRequestSchema = v4.z.looseObject({
75855
- commands: v4.z.array(BlobAsyncCommandSchema),
75856
- });
75857
- const BlobAsyncResultRequestSchema = v4.z.looseObject({
75858
- correlationKey: v4.z.string(),
75859
- });
75860
-
75861
- const BlobMetadataSchema = v4.z.looseObject({
75862
- schema: v4.z.string().optional(),
75863
- id: v4.z.string().optional(),
75864
- ttl: v4.z.string().optional(),
75865
- attributes: BlobAttributesSchema.optional(),
75866
- version: v4.z.number().optional(),
75867
- data: v4.z.string().optional(),
75868
- });
75869
- const BlobStoreResponseSchema = BlobMetadataSchema;
75870
- const BlobBulkStoreResponseSchema = v4.z.looseObject({
75871
- blobs: v4.z.array(BlobMetadataSchema).optional(),
75872
- failed: v4.z.array(BlobMetadataSchema).optional(),
75873
- });
75874
- const BlobQueryResponseSchema = v4.z.looseObject({
75875
- blobs: v4.z.array(BlobMetadataSchema).optional(),
75876
- });
75877
- const BlobDeleteResponseSchema = v4.z.looseObject({
75878
- blob: BlobMetadataSchema.optional(),
75879
- });
75880
- const BlobBulkDeleteResponseSchema = v4.z.looseObject({
75881
- deletedBlobs: v4.z.array(BlobMetadataSchema).optional(),
75882
- });
75883
- const BlobSchemaItemSchema = v4.z.looseObject({
75884
- name: v4.z.string().optional(),
75885
- });
75886
- const BlobSchemaListResponseSchema = v4.z.looseObject({
75887
- schemas: v4.z.array(BlobSchemaItemSchema).optional(),
75888
- });
75889
- const BlobExecuteAsyncResponseSchema = v4.z.looseObject({
75890
- correlationKey: v4.z.string().optional(),
75891
- });
75892
- v4.z.enum([
75893
- 'PENDING',
75894
- 'RUNNING',
75895
- 'FINISHED',
75896
- 'FAILED',
75897
- ]);
75898
- const BlobDeleteSchemaResultSchema = v4.z.looseObject({
75899
- schema: v4.z.string().optional(),
75900
- deletedBlobs: v4.z.number().optional(),
75901
- });
75902
- const BlobAsyncResultEntrySchema = v4.z.looseObject({
75903
- op: v4.z.string().optional(),
75904
- deletedSchema: BlobDeleteSchemaResultSchema.optional(),
75905
- });
75906
- const BlobAsyncResultResponseSchema = v4.z.looseObject({
75907
- correlationKey: v4.z.string().optional(),
75908
- state: v4.z.string().optional(),
75909
- numberOfDone: v4.z.number().optional(),
75910
- numberOfRemaining: v4.z.number().optional(),
75911
- results: v4.z.record(v4.z.string(), BlobAsyncResultEntrySchema).optional(),
75912
- });
75913
-
75914
76154
  /**
75915
76155
  * Service for the DX SaaS DataStore blob storage API
75916
76156
  * (`/blobstorage/...`).
@@ -76070,87 +76310,95 @@ class DataStoreBlobStorageService {
76070
76310
  }
76071
76311
  }
76072
76312
 
76073
- const FeatureFieldTypeSchema = v4.z.enum([
76074
- 'TEXT',
76075
- 'NUMBER',
76076
- 'LOOKUP',
76077
- 'DATETIME',
76078
- ]);
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)');
76079
76317
  const FeatureFieldSchema = v4.z.looseObject({
76080
- id: v4.z.string(),
76081
- name: v4.z.string().optional(),
76082
- 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'),
76083
76321
  });
76084
- const FeatureFilterTemplateTypeSchema = v4.z.enum([
76085
- 'TAS',
76086
- 'NASS',
76087
- 'ES',
76088
- 'REST',
76089
- ]);
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)');
76090
76326
  const FeatureFilterTemplateSchema = v4.z.looseObject({
76091
- type: FeatureFilterTemplateTypeSchema.optional(),
76092
- filter: v4.z.unknown().optional(),
76093
- indexPattern: v4.z.string().optional(),
76094
- 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'),
76095
76331
  });
76096
76332
  const FeatureDatascopeLazy = v4.z.lazy(() => FeatureDatascopeSchema);
76097
76333
  const FeatureDatascopeSchema = v4.z.looseObject({
76098
- id: v4.z.string(),
76099
- datascopeItemName: v4.z.string().optional(),
76100
- datasourceType: FeatureFilterTemplateTypeSchema.optional(),
76101
- url: v4.z.string().optional(),
76102
- fields: v4.z.array(FeatureFieldSchema).optional(),
76103
- filterTemplate: FeatureFilterTemplateSchema.optional(),
76104
- 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)'),
76105
76341
  });
76106
76342
  const FeatureAttributesSchema = v4.z
76107
76343
  .looseObject({
76108
- name: v4.z.string().optional(),
76109
- description: v4.z.string().optional(),
76110
- sort: v4.z.number().optional(),
76111
- global: v4.z.boolean().optional(),
76112
- path: v4.z.string().optional(),
76113
- _UPDATED_AT: v4.z.number().optional(),
76114
- _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'),
76115
76351
  })
76116
76352
  .catchall(v4.z.unknown());
76117
76353
  const FeatureNodeLazy = v4.z.lazy(() => FeatureNodeSchema);
76118
76354
  const FeatureNodeSchema = v4.z.looseObject({
76119
- id: v4.z.string(),
76120
- disabled: v4.z.boolean().optional(),
76121
- lastModificationTimestamp: v4.z.number().optional(),
76122
- attributes: FeatureAttributesSchema.optional(),
76123
- apis: v4.z.array(v4.z.string()).optional(),
76124
- children: v4.z.array(FeatureNodeLazy).optional(),
76125
- 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'),
76126
76362
  });
76127
76363
 
76364
+ /** Store request — a full {@link FeatureNodeSchema} tree to upsert. */
76128
76365
  const FeatureStoreRequestSchema = FeatureNodeSchema;
76129
76366
  const FeatureDeleteRequestSchema = v4.z.looseObject({
76130
- ids: v4.z.array(v4.z.string()),
76367
+ ids: v4.z.array(v4.z.string()).describe('Feature node IDs to delete'),
76131
76368
  });
76132
76369
  v4.z.looseObject({
76133
- op: v4.z.literal('ID'),
76134
- 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'),
76135
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
+ */
76136
76377
  const FeatureFilterSchema = v4.z
76137
76378
  .looseObject({
76138
- op: v4.z.string(),
76379
+ op: v4.z.string().describe('Filter operator (e.g. ID, AND, OR)'),
76139
76380
  })
76140
76381
  .and(v4.z
76141
76382
  .looseObject({
76142
- ids: v4.z.array(v4.z.string()).optional(),
76143
- 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)'),
76144
76385
  })
76145
76386
  .partial());
76146
76387
  const FeatureQueryRequestSchema = v4.z.looseObject({
76147
- filter: FeatureFilterSchema.optional(),
76388
+ filter: FeatureFilterSchema.optional().describe('Filter selecting which feature nodes to return; omit for all'),
76148
76389
  });
76149
- 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');
76150
76393
 
76394
+ /** Store response — the persisted {@link FeatureNodeSchema} tree. */
76151
76395
  const FeatureStoreResponseSchema = FeatureNodeSchema;
76152
- const FeatureListResponseSchema = v4.z.array(FeatureNodeSchema);
76153
- 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');
76154
76402
 
76155
76403
  /**
76156
76404
  * Service for the DX SaaS DataStore features API (`/features/...`).
@@ -76455,98 +76703,105 @@ class DataStoreNASSQLService {
76455
76703
  }
76456
76704
  }
76457
76705
 
76458
- const VertexStateProjectionSchema = v4.z.enum([
76459
- 'DETAILED',
76460
- 'BRIEF',
76461
- 'EXTRA_IDS',
76462
- ]);
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. */
76463
76711
  const VertexStateExternalIdInputSchema = v4.z.looseObject({
76464
- vertexId: v4.z.number().optional(),
76465
- vertexExternalId: v4.z.string().optional(),
76466
- alert: v4.z.string().optional(),
76467
- alertExternalId: v4.z.string().optional(),
76468
- metric: v4.z.string().optional(),
76469
- 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'),
76470
76718
  });
76719
+ /** A single state to store. Identify the target by internal IDs or external coordinates. */
76471
76720
  const VertexStateInputSchema = v4.z.looseObject({
76472
- stateExternalId: VertexStateExternalIdInputSchema.optional(),
76473
- vertexId: v4.z.number().optional(),
76474
- alertId: v4.z.number().optional(),
76475
- metricId: v4.z.number().optional(),
76476
- startTime: v4.z.number().optional(),
76477
- endTime: v4.z.number().optional(),
76478
- status: v4.z.number().optional(),
76479
- 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'),
76480
76729
  });
76481
76730
  const VertexStateStoreRequestSchema = v4.z.looseObject({
76482
- states: v4.z.array(VertexStateInputSchema),
76731
+ states: v4.z.array(VertexStateInputSchema).describe('States to store'),
76483
76732
  });
76484
76733
  const VertexStateFetchRequestSchema = v4.z.looseObject({
76485
- filter: VertexStateFilterSchema.optional(),
76486
- time: v4.z.number().optional(),
76487
- projection: VertexStateProjectionSchema.optional(),
76488
- flushCacheBeforeQuery: v4.z.boolean().optional(),
76489
- version: v4.z.string().nullable().optional(),
76490
- 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'),
76491
76743
  });
76744
+ /** Down-sampling settings for range queries that would otherwise return too many points. */
76492
76745
  const VertexStateClampSettingSchema = v4.z.looseObject({
76493
- clampThreshold: v4.z.number().optional(),
76494
- bucketCount: v4.z.number().optional(),
76495
- 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)'),
76496
76749
  });
76497
76750
  const VertexStateRangeRequestSchema = v4.z.looseObject({
76498
- filter: VertexStateFilterSchema.optional(),
76499
- startTime: v4.z.number().optional(),
76500
- endTime: v4.z.number().optional(),
76501
- projection: VertexStateProjectionSchema.optional(),
76502
- viewPortStart: v4.z.number().optional(),
76503
- viewPortEnd: v4.z.number().optional(),
76504
- clampSetting: VertexStateClampSettingSchema.optional(),
76505
- 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'),
76506
76759
  });
76760
+ /** Republish reuses the fetch request shape — same filter/projection options. */
76507
76761
  const VertexStateRepublishRequestSchema = VertexStateFetchRequestSchema;
76508
76762
 
76509
76763
  const VertexStateExternalIdResponseSchema = v4.z.looseObject({
76510
- vertexId: v4.z.number().optional(),
76511
- vertexExternalId: v4.z.string().optional(),
76512
- alert: v4.z.string().optional(),
76513
- alertExternalId: v4.z.string().optional(),
76514
- metric: v4.z.string().optional(),
76515
- 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'),
76516
76770
  });
76517
76771
  const VertexStateResponseItemSchema = v4.z.looseObject({
76518
- vertexId: v4.z.number().optional(),
76519
- alertId: v4.z.number().optional(),
76520
- metricId: v4.z.number().optional(),
76521
- stateExternalId: VertexStateExternalIdResponseSchema.optional(),
76522
- status: v4.z.number().optional(),
76523
- data: v4.z.unknown().optional(),
76524
- startTime: v4.z.number().optional(),
76525
- 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)'),
76526
76780
  });
76781
+ /** Per-group alert rollup produced by a COLLECT_GROUPS filter. */
76527
76782
  const VertexStateGroupResultSchema = v4.z.looseObject({
76528
- groupName: v4.z.string().optional(),
76529
- alerts: v4.z.number().optional(),
76530
- cautionAlerts: v4.z.number().optional(),
76531
- 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'),
76532
76787
  });
76533
76788
  const VertexStateAnalyticResultSchema = v4.z.looseObject({
76534
- t: v4.z.string().optional(),
76535
- 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'),
76536
76791
  });
76537
76792
  const VertexStateStoreResponseSchema = v4.z.looseObject({
76538
- updated: v4.z.number().optional(),
76539
- errors: v4.z.number().optional(),
76540
- 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'),
76541
76796
  });
76542
76797
  const VertexStateFetchResponseSchema = v4.z.looseObject({
76543
- states: v4.z.array(VertexStateResponseItemSchema).optional(),
76544
- analyticResult: v4.z.array(VertexStateAnalyticResultSchema).optional(),
76545
- 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'),
76546
76801
  });
76547
76802
  const VertexStateRangeResponseSchema = v4.z.looseObject({
76548
- states: v4.z.array(VertexStateResponseItemSchema).optional(),
76549
- 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'),
76550
76805
  });
76551
76806
 
76552
76807
  /**
@@ -76850,33 +77105,51 @@ class DataStoreTASService {
76850
77105
  }
76851
77106
  }
76852
77107
 
77108
+ /** Free-form string→string metadata attached to a token (values may be null). */
76853
77109
  const TokenMetadataSchema = v4.z
76854
77110
  .record(v4.z.string(), v4.z.union([v4.z.string(), v4.z.null()]))
76855
- .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. */
76856
77114
  const SessionValidateRequestSchema = v4.z.looseObject({});
77115
+ /** Token verification takes no body — the token is supplied via header. */
76857
77116
  const TokenVerifyRequestSchema = v4.z.looseObject({});
76858
77117
  const TokenGetAndVerifyRequestSchema = v4.z.looseObject({
76859
- tokenId: v4.z.string(),
77118
+ tokenId: v4.z.string().describe('ID of the token to fetch and verify'),
76860
77119
  });
77120
+ /**
77121
+ * Paged token listing. `query` (free-text) and `filter` (structured) are
77122
+ * mutually exclusive — supplying both is rejected by the refinement.
77123
+ */
76861
77124
  const TokenQueryRequestSchema = v4.z
76862
77125
  .looseObject({
76863
- pageSize: v4.z.number().optional(),
76864
- seekTokenId: v4.z.string().optional(),
76865
- query: v4.z.string().optional(),
76866
- 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`)'),
76867
77130
  })
76868
77131
  .refine((value) => !(value.query !== undefined && value.filter !== undefined), {
76869
77132
  message: '`query` and `filter` are mutually exclusive on /tenants/token/query',
76870
77133
  });
76871
- 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');
76872
77138
  const CreateUserTokenRequestSchema = v4.z.looseObject({
76873
77139
  ttl: ttlField,
76874
- 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'),
76875
77144
  metadata: TokenMetadataSchema,
76876
77145
  });
76877
77146
  const UpdateUserTokenRequestSchema = v4.z.looseObject({
76878
- tokenId: v4.z.string(),
76879
- 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'),
76880
77153
  metadata: TokenMetadataSchema,
76881
77154
  });
76882
77155
  const CreateAgentTokenRequestSchema = v4.z.looseObject({
@@ -76884,73 +77157,82 @@ const CreateAgentTokenRequestSchema = v4.z.looseObject({
76884
77157
  metadata: TokenMetadataSchema,
76885
77158
  });
76886
77159
  const UpdateAgentTokenRequestSchema = v4.z.looseObject({
76887
- tokenId: v4.z.string(),
77160
+ tokenId: v4.z.string().describe('ID of the agent token to update'),
76888
77161
  metadata: TokenMetadataSchema,
76889
77162
  });
76890
77163
  const CreateTenantTokenRequestSchema = v4.z.looseObject({
76891
- tenantId: v4.z.number().optional(),
77164
+ tenantId: v4.z.number().optional().describe('Numeric tenant ID the token is scoped to'),
76892
77165
  ttl: ttlField,
76893
77166
  metadata: TokenMetadataSchema,
76894
77167
  });
76895
77168
  const UpdateTenantTokenRequestSchema = v4.z.looseObject({
76896
- tokenId: v4.z.string(),
76897
- 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'),
76898
77175
  metadata: TokenMetadataSchema,
76899
77176
  });
76900
77177
  const CreateInternalTokenRequestSchema = v4.z.looseObject({
76901
- product: v4.z.string(),
77178
+ product: v4.z.string().describe('Product the internal token is issued for'),
76902
77179
  ttl: ttlField,
76903
77180
  metadata: TokenMetadataSchema,
76904
77181
  });
76905
77182
  const RevokeTokenRequestSchema = v4.z.looseObject({
76906
- revokeToken: v4.z.string(),
76907
- 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'),
76908
77185
  });
76909
77186
  const CancelRevokeRequestSchema = v4.z.looseObject({
76910
- revokeToken: v4.z.string(),
77187
+ revokeToken: v4.z.string().describe('The token (or token ID) whose pending revocation to cancel'),
76911
77188
  });
76912
77189
  const DeleteTokenRequestSchema = v4.z.looseObject({
76913
- tokenId: v4.z.string(),
77190
+ tokenId: v4.z.string().describe('ID of the token to delete'),
76914
77191
  });
76915
77192
  const ImportTokenRequestSchema = v4.z.looseObject({
76916
- token: v4.z.string(),
77193
+ token: v4.z.string().describe('Raw token string to import into the store'),
76917
77194
  });
76918
77195
 
76919
77196
  const SessionValidateResponseSchema = v4.z.looseObject({
76920
- tenantId: v4.z.number().optional(),
76921
- userId: v4.z.string().optional(),
76922
- externalTenantId: v4.z.string().optional(),
76923
- cohort: v4.z.string().optional(),
76924
- role: v4.z.string().optional(),
76925
- authToken: v4.z.string().optional(),
76926
- 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'),
76927
77204
  });
76928
77205
  const TokenDetailsSchema = v4.z.looseObject({
76929
- id: v4.z.string().optional(),
76930
- prefix: v4.z.string().optional(),
76931
- revoked: v4.z.boolean().optional(),
76932
- internal: v4.z.boolean().optional(),
76933
- agent: v4.z.boolean().optional(),
76934
- createdAt: v4.z.number().optional(),
76935
- expireAt: v4.z.number().optional(),
76936
- tenantId: v4.z.number().optional(),
76937
- user: v4.z.string().nullable().optional(),
76938
- dynamicExpire: v4.z.boolean().optional(),
76939
- 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'),
76940
77221
  });
76941
77222
  const TokenQueryResponseSchema = v4.z.looseObject({
76942
- items: v4.z.array(TokenDetailsSchema).optional(),
76943
- 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)'),
76944
77225
  });
76945
77226
  const TokenCreateResponseSchema = v4.z.looseObject({
76946
- token: v4.z.string().optional(),
77227
+ token: v4.z.string().optional().describe('The newly minted token string'),
76947
77228
  });
77229
+ /** Public-key response — an opaque JWK-style object; fields vary by key type. */
76948
77230
  const PublicKeyJsonResponseSchema = v4.z.looseObject({});
76949
77231
  const RevokeTokensResponseSchema = v4.z.looseObject({
76950
- 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'),
76951
77233
  });
76952
77234
  const DeleteTokensResponseSchema = v4.z.looseObject({
76953
- 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'),
76954
77236
  });
76955
77237
 
76956
77238
  /**
@@ -77210,10 +77492,22 @@ class DataStoreNASSService {
77210
77492
  * @param values - Array of {@link NassDatapoint} tuples. Each tuple must
77211
77493
  * begin with a registered metric ID obtained from
77212
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.
77213
77501
  */
77214
77502
  async storeMetricValues(values) {
77215
77503
  const body = { values };
77216
- 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;
77217
77511
  }
77218
77512
  }
77219
77513
 
@@ -77310,7 +77604,39 @@ exports.AttributeService = AttributeService;
77310
77604
  exports.AttributeValueAsFieldSchema = AttributeValueAsFieldSchema;
77311
77605
  exports.AuthorizationService = AuthorizationService;
77312
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;
77313
77637
  exports.BlobService = BlobService;
77638
+ exports.BlobStoreParamsSchema = BlobStoreParamsSchema;
77639
+ exports.BlobStoreResponseSchema = BlobStoreResponseSchema;
77314
77640
  exports.CalendarIntervalSchema = CalendarIntervalSchema;
77315
77641
  exports.ChannelService = ChannelService;
77316
77642
  exports.DEFAULT_EXPERIENCE_REQUEST_BODY = DEFAULT_EXPERIENCE_REQUEST_BODY;
@@ -77362,6 +77688,11 @@ exports.MetricRegisterSchema = MetricRegisterSchema;
77362
77688
  exports.MetricRegisterSourceSchema = MetricRegisterSourceSchema;
77363
77689
  exports.MetricTypeEnumNameSchema = MetricTypeEnumNameSchema;
77364
77690
  exports.NASSService = NASSService;
77691
+ exports.NassDatapointSchema = NassDatapointSchema;
77692
+ exports.NassExtensionDatapointSchema = NassExtensionDatapointSchema;
77693
+ exports.NassRegularDatapointSchema = NassRegularDatapointSchema;
77694
+ exports.NassStoreRequestSchema = NassStoreRequestSchema;
77695
+ exports.NassStoreResponseSchema = NassStoreResponseSchema;
77365
77696
  exports.NassValueTypeSchema = NassValueTypeSchema;
77366
77697
  exports.NotificationService = NotificationService;
77367
77698
  exports.NumericOperatorSchema = NumericOperatorSchema;