@alvera-ai/platform-sdk 0.2.3 → 0.2.5

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 (39) hide show
  1. package/dist/cli.js +359 -7
  2. package/dist/cli.js.map +1 -1
  3. package/dist/client.d.ts +194 -3
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +170 -6
  6. package/dist/client.js.map +1 -1
  7. package/dist/generated/client/client.gen.d.ts.map +1 -1
  8. package/dist/generated/client/client.gen.js +3 -3
  9. package/dist/generated/client/client.gen.js.map +1 -1
  10. package/dist/generated/client/types.gen.d.ts +1 -1
  11. package/dist/generated/client/utils.gen.js +1 -1
  12. package/dist/generated/client/utils.gen.js.map +1 -1
  13. package/dist/generated/core/pathSerializer.gen.d.ts +1 -1
  14. package/dist/generated/core/pathSerializer.gen.d.ts.map +1 -1
  15. package/dist/generated/core/serverSentEvents.gen.d.ts +1 -1
  16. package/dist/generated/core/serverSentEvents.gen.d.ts.map +1 -1
  17. package/dist/generated/core/serverSentEvents.gen.js +3 -4
  18. package/dist/generated/core/serverSentEvents.gen.js.map +1 -1
  19. package/dist/generated/core/types.gen.d.ts +1 -1
  20. package/dist/generated/core/utils.gen.js +1 -1
  21. package/dist/generated/core/utils.gen.js.map +1 -1
  22. package/dist/generated/index.d.ts +2 -2
  23. package/dist/generated/index.d.ts.map +1 -1
  24. package/dist/generated/index.js +1 -1
  25. package/dist/generated/index.js.map +1 -1
  26. package/dist/generated/sdk.gen.d.ts +337 -123
  27. package/dist/generated/sdk.gen.d.ts.map +1 -1
  28. package/dist/generated/sdk.gen.js +1067 -260
  29. package/dist/generated/sdk.gen.js.map +1 -1
  30. package/dist/generated/types.gen.d.ts +6265 -610
  31. package/dist/generated/types.gen.d.ts.map +1 -1
  32. package/dist/generated/valibot.gen.d.ts +27047 -8186
  33. package/dist/generated/valibot.gen.d.ts.map +1 -1
  34. package/dist/generated/valibot.gen.js +3847 -445
  35. package/dist/generated/valibot.gen.js.map +1 -1
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js.map +1 -1
  39. package/package.json +3 -3
@@ -102,6 +102,14 @@ export const vCloudWatchQueryResponse = v.pipe(v.object({
102
102
  export const vToolS3Request = v.intersect([vS3Request, v.object({
103
103
  tool_body_type: v.picklist(['s3'])
104
104
  })]);
105
+ /**
106
+ * RunManuallyResponse
107
+ *
108
+ * Acknowledgement of an enqueued manual run. The `batch_id` can be used to poll per-dataset processing logs (via upcoming runs list/show endpoints).
109
+ */
110
+ export const vRunManuallyResponse = v.object({
111
+ batch_id: v.pipe(v.string(), v.uuid())
112
+ });
105
113
  /**
106
114
  * ConnectedAppResponse
107
115
  *
@@ -130,13 +138,13 @@ export const vConnectedAppResponse = v.pipe(v.object({
130
138
  path: v.string()
131
139
  })), v.readonly())),
132
140
  slug: v.optional(v.pipe(v.string(), v.readonly())),
133
- status: v.optional(v.picklist([
141
+ status: v.optional(v.pipe(v.picklist([
134
142
  'pending',
135
143
  'deploying',
136
144
  'deployed',
137
145
  'synced',
138
146
  'error'
139
- ])),
147
+ ]), v.readonly())),
140
148
  updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
141
149
  urls: v.optional(v.array(v.object({
142
150
  is_primary: v.optional(v.boolean()),
@@ -176,15 +184,15 @@ export const vGenericTableResponse = v.pipe(v.object({
176
184
  id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
177
185
  inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
178
186
  name: v.optional(v.pipe(v.string(), v.readonly())),
179
- status: v.optional(v.picklist([
187
+ status: v.optional(v.pipe(v.picklist([
180
188
  'new',
181
189
  'stale',
182
190
  'processing',
183
191
  'deployed'
184
- ])),
192
+ ]), v.readonly())),
185
193
  tenant_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
186
194
  title: v.optional(v.string()),
187
- type: v.optional(v.picklist(['custom', 'system'])),
195
+ type: v.optional(v.pipe(v.picklist(['custom', 'system']), v.readonly())),
188
196
  updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly()))
189
197
  }), v.readonly());
190
198
  /**
@@ -220,6 +228,16 @@ export const vExecuteActionResponse = v.object({
220
228
  ])),
221
229
  workflow_execution_log_id: v.nullish(v.pipe(v.string(), v.uuid()))
222
230
  });
231
+ /**
232
+ * RunWorkflowResponse
233
+ *
234
+ * Response from bulk workflow execution
235
+ */
236
+ export const vRunWorkflowResponse = v.object({
237
+ batch_id: v.string(),
238
+ enqueued_count: v.pipe(v.number(), v.integer()),
239
+ workflow_run_log_id: v.pipe(v.string(), v.uuid())
240
+ });
223
241
  /**
224
242
  * SFTPRequest
225
243
  *
@@ -256,6 +274,40 @@ export const vCloudStorageAwsRequest = v.object({
256
274
  endpoint: v.nullish(v.string()),
257
275
  region: v.string()
258
276
  });
277
+ /**
278
+ * WorkflowLogResponse
279
+ *
280
+ * Workflow execution log — per-event execution detail
281
+ */
282
+ export const vWorkflowLogResponse = v.pipe(v.object({
283
+ actions_completed: v.optional(v.pipe(v.number(), v.integer())),
284
+ actions_failed: v.optional(v.pipe(v.number(), v.integer())),
285
+ actions_pending: v.optional(v.pipe(v.number(), v.integer())),
286
+ actions_total: v.optional(v.pipe(v.number(), v.integer())),
287
+ batch_id: v.nullish(v.string()),
288
+ completed_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
289
+ context_r2_key: v.nullish(v.string()),
290
+ datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
291
+ error_message: v.nullish(v.string()),
292
+ filter_result: v.nullish(v.boolean()),
293
+ id: v.optional(v.pipe(v.string(), v.uuid())),
294
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
295
+ mode: v.picklist(['live', 'dry_run']),
296
+ sampled_event_id: v.nullish(v.pipe(v.string(), v.uuid())),
297
+ started_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
298
+ status: v.picklist([
299
+ 'filtered',
300
+ 'pending',
301
+ 'executing',
302
+ 'completed',
303
+ 'failed',
304
+ 'partial'
305
+ ]),
306
+ subject_id: v.nullish(v.pipe(v.string(), v.uuid())),
307
+ subject_type: v.nullish(v.string()),
308
+ tenant_id: v.optional(v.pipe(v.string(), v.uuid())),
309
+ workflow_id: v.optional(v.pipe(v.string(), v.uuid()))
310
+ }), v.readonly());
259
311
  /**
260
312
  * EmailResponse
261
313
  *
@@ -339,6 +391,52 @@ export const vRestapiRequest = v.object({
339
391
  timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
340
392
  username: v.nullish(v.string())
341
393
  });
394
+ /**
395
+ * TemplateConfigRequest
396
+ *
397
+ * Inline Liquid template configuration Request
398
+ */
399
+ export const vTemplateConfigRequest = v.object({
400
+ body: v.nullish(v.string()),
401
+ path: v.nullish(v.string()),
402
+ type: v.picklist([
403
+ 'system',
404
+ 'custom',
405
+ 'identity',
406
+ 'null'
407
+ ])
408
+ });
409
+ /**
410
+ * SMSCallRequest
411
+ *
412
+ * SMS tool-call config — Liquid-templated recipient and body plus transactional/promotional category. Request
413
+ */
414
+ export const vSmsCallRequest = v.object({
415
+ body: vTemplateConfigRequest,
416
+ sms_type: v.optional(v.picklist(['transactional', 'promotional']), 'transactional'),
417
+ to: vTemplateConfigRequest
418
+ });
419
+ /**
420
+ * DataActivationClientRequest
421
+ *
422
+ * Data Activation Client — binds a (datalake, data_source, tool) triple with a polymorphic `tool_call` config describing how to fetch data from the external system, plus optional cron schedule, row-level filter, downstream triggers, and interop contracts for row-level transformation. Request
423
+ */
424
+ export const vDataActivationClientRequest = v.object({
425
+ cron_expressions: v.optional(v.array(v.string()), []),
426
+ data_source_id: v.pipe(v.string(), v.uuid()),
427
+ description: v.nullish(v.string()),
428
+ downstream_connection_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
429
+ filter_config: v.optional(vTemplateConfigRequest),
430
+ interoperability_contract_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
431
+ loop_over: v.optional(v.array(v.picklist([
432
+ 'services',
433
+ 'locations',
434
+ 'providers'
435
+ ])), []),
436
+ name: v.string(),
437
+ row_filter: v.nullish(v.string()),
438
+ tool_id: v.pipe(v.string(), v.uuid())
439
+ });
342
440
  /**
343
441
  * SQSResponse
344
442
  *
@@ -364,6 +462,18 @@ export const vToolSqsResponse = v.intersect([vSqsResponse, v.object({
364
462
  export const vToolEmailResponse = v.intersect([vEmailResponse, v.object({
365
463
  tool_body_type: v.picklist(['email'])
366
464
  })]);
465
+ /**
466
+ * ContextDatasetRequest
467
+ *
468
+ * Context dataset for a workflow — declares which records the context builder should load (and under what filter) before the enrichment and decision stages. Request
469
+ */
470
+ export const vContextDatasetRequest = v.object({
471
+ dataset_type: v.string(),
472
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
473
+ limit: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
474
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
475
+ where_clause: v.nullish(v.string())
476
+ });
367
477
  /**
368
478
  * S3CloudStorageR2Response
369
479
  */
@@ -409,9 +519,10 @@ export const vSqlDatabaseResponse = v.pipe(v.object({
409
519
  /**
410
520
  * RESTCallRequest
411
521
  *
412
- * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion. Title is RESTCall (not RESTAPIRequest) to avoid double-`Request` stacking in the library-generated parent-contextual sibling module names (e.g. ActionStatusUpdaterRESTCallRequest). Request
522
+ * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion. Request
413
523
  */
414
524
  export const vRestCallRequest = v.object({
525
+ body: v.optional(vTemplateConfigRequest),
415
526
  method: v.picklist([
416
527
  'head',
417
528
  'get',
@@ -419,8 +530,41 @@ export const vRestCallRequest = v.object({
419
530
  'post',
420
531
  'delete',
421
532
  'patch'
422
- ])
533
+ ]),
534
+ pagination_context_template: vTemplateConfigRequest,
535
+ params: v.optional(vTemplateConfigRequest),
536
+ path: vTemplateConfigRequest
537
+ });
538
+ /**
539
+ * InteroperabilityContractRequest
540
+ *
541
+ * Declarative execution spec binding a `(datalake, resource_type)` pair to the ingestion pipeline: filter → transform → mdm_input → resolve → upsert. Request
542
+ */
543
+ export const vInteroperabilityContractRequest = v.object({
544
+ data_activation_client_filter: v.nullish(v.string()),
545
+ description: v.nullish(v.string()),
546
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
547
+ id: v.optional(v.pipe(v.string(), v.uuid())),
548
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
549
+ mdm_input_config: v.optional(vTemplateConfigRequest),
550
+ name: v.string(),
551
+ resource_type: v.string(),
552
+ slug: v.optional(v.string()),
553
+ template_config: vTemplateConfigRequest,
554
+ type: v.optional(v.picklist([
555
+ 'system',
556
+ 'custom',
557
+ 'identity',
558
+ 'null'
559
+ ])),
560
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
423
561
  });
562
+ /**
563
+ * InteroperabilityRunRequest
564
+ *
565
+ * Raw source-row payload to run through a contract's filter → transform → mdm_input pipeline. Stateless: no DB writes. Accepts arbitrary keys by design — validation is deferred to the contract.
566
+ */
567
+ export const vInteroperabilityRunRequest = v.record(v.string(), v.unknown());
424
568
  /**
425
569
  * SNSResponse
426
570
  *
@@ -439,6 +583,23 @@ export const vSnsResponse = v.pipe(v.object({
439
583
  phone_number: v.string(),
440
584
  region: v.string()
441
585
  }), v.readonly());
586
+ /**
587
+ * SharePointExcelCallResponse
588
+ *
589
+ * Microsoft SharePoint request descriptor — drive URL + Excel sheet + search params.
590
+ */
591
+ export const vSharePointExcelCallResponse = v.pipe(v.object({
592
+ azure_tenant_id: v.pipe(v.string(), v.uuid()),
593
+ drive_url: v.string(),
594
+ search_params: v.string(),
595
+ sheet_number: v.pipe(v.number(), v.integer())
596
+ }), v.readonly());
597
+ /**
598
+ * DataActivationClientSharePointExcelCallResponse
599
+ */
600
+ export const vDataActivationClientSharePointExcelCallResponse = v.intersect([vSharePointExcelCallResponse, v.object({
601
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
602
+ })]);
442
603
  /**
443
604
  * IngestFileResponse
444
605
  *
@@ -513,6 +674,21 @@ export const vSessionResponse = v.object({
513
674
  last_name: v.nullish(v.string())
514
675
  }))
515
676
  });
677
+ /**
678
+ * SFTPCallRequest
679
+ *
680
+ * SFTP file descriptor — remote path + expected MIME content type. Request
681
+ */
682
+ export const vSftpCallRequest = v.object({
683
+ content_type: v.string(),
684
+ path: v.string()
685
+ });
686
+ /**
687
+ * DataActivationClientSFTPCallRequest
688
+ */
689
+ export const vDataActivationClientSftpCallRequest = v.intersect([vSftpCallRequest, v.object({
690
+ tool_call_type: v.picklist(['sftp_request'])
691
+ })]);
516
692
  /**
517
693
  * ConnectedAppRouteResponse
518
694
  *
@@ -523,6 +699,16 @@ export const vConnectedAppRouteResponse = v.pipe(v.object({
523
699
  name: v.string(),
524
700
  path: v.string()
525
701
  }), v.readonly());
702
+ /**
703
+ * RunWorkflowRequest
704
+ *
705
+ * Request body for bulk workflow execution via SQL WHERE clause
706
+ */
707
+ export const vRunWorkflowRequest = v.object({
708
+ manual_override: v.optional(v.boolean(), false),
709
+ mode: v.optional(v.picklist(['live', 'dry_run']), 'live'),
710
+ sql_where_clause: v.string()
711
+ });
526
712
  /**
527
713
  * UploadLinkResponse
528
714
  *
@@ -591,6 +777,12 @@ export const vCloudWatchLogGroupRequest = v.object({
591
777
  * Manual upload marker tool — no configuration fields, just an identity marker for manual ingestion workflows.
592
778
  */
593
779
  export const vManualUploadResponse = v.pipe(v.record(v.string(), v.unknown()), v.readonly());
780
+ /**
781
+ * SQLQueryCallResponse
782
+ *
783
+ * SQL query descriptor — Liquid-templated query body.
784
+ */
785
+ export const vSqlQueryCallResponse = v.pipe(v.record(v.string(), v.unknown()), v.readonly());
594
786
  /**
595
787
  * ToolSNSResponse
596
788
  */
@@ -646,6 +838,18 @@ export const vS3Response = v.pipe(v.object({
646
838
  storage_config_type: v.literal('r2')
647
839
  }), vS3CloudStorageR2Response])])
648
840
  }), v.readonly());
841
+ /**
842
+ * SQLQueryCallRequest
843
+ *
844
+ * SQL query descriptor — Liquid-templated query body. Request
845
+ */
846
+ export const vSqlQueryCallRequest = v.record(v.string(), v.unknown());
847
+ /**
848
+ * DataActivationClientSQLQueryCallRequest
849
+ */
850
+ export const vDataActivationClientSqlQueryCallRequest = v.intersect([vSqlQueryCallRequest, v.object({
851
+ tool_call_type: v.picklist(['sql_query'])
852
+ })]);
649
853
  /**
650
854
  * SharePointRequest
651
855
  *
@@ -653,6 +857,7 @@ export const vS3Response = v.pipe(v.object({
653
857
  */
654
858
  export const vSharePointRequest = v.object({
655
859
  auth_method: v.picklist(['client_credentials', 'managed_identity']),
860
+ azure_tenant_id: v.string(),
656
861
  client_id: v.nullish(v.string()),
657
862
  drive_id: v.nullish(v.string()),
658
863
  drive_path: v.nullish(v.string()),
@@ -661,8 +866,7 @@ export const vSharePointRequest = v.object({
661
866
  'library',
662
867
  'list'
663
868
  ]),
664
- site_url: v.nullish(v.string()),
665
- tenant_id: v.string()
869
+ site_url: v.nullish(v.string())
666
870
  });
667
871
  /**
668
872
  * DataSourceRequest
@@ -727,12 +931,91 @@ export const vConnectedAppUrlResponse = v.pipe(v.object({
727
931
  label: v.nullish(v.string()),
728
932
  url: v.string()
729
933
  }), v.readonly());
934
+ /**
935
+ * ManualUploadCallResponse
936
+ *
937
+ * Identity manual-upload marker. No fields — the discriminator alone indicates the tool call is a manual upload.
938
+ */
939
+ export const vManualUploadCallResponse = v.pipe(v.record(v.string(), v.unknown()), v.readonly());
940
+ /**
941
+ * ActionManualUploadCallResponse
942
+ */
943
+ export const vActionManualUploadCallResponse = v.intersect([vManualUploadCallResponse, v.object({
944
+ tool_call_type: v.picklist(['manual_upload'])
945
+ })]);
730
946
  /**
731
947
  * ToolCloudWatchLogGroupRequest
732
948
  */
733
949
  export const vToolCloudWatchLogGroupRequest = v.intersect([vCloudWatchLogGroupRequest, v.object({
734
950
  tool_body_type: v.picklist(['cloud_watch_log_group'])
735
951
  })]);
952
+ /**
953
+ * AWSLambdaCallRequest
954
+ *
955
+ * AWS Lambda invocation descriptor — Liquid-templated payload + timeout. Request
956
+ */
957
+ export const vAwsLambdaCallRequest = v.object({
958
+ timeout_ms: v.optional(v.pipe(v.number(), v.integer()))
959
+ });
960
+ /**
961
+ * ActionAWSLambdaCallRequest
962
+ */
963
+ export const vActionAwsLambdaCallRequest = v.intersect([vAwsLambdaCallRequest, v.object({
964
+ tool_call_type: v.picklist(['aws_lambda_request'])
965
+ })]);
966
+ /**
967
+ * DataActivationClientAWSLambdaCallRequest
968
+ */
969
+ export const vDataActivationClientAwsLambdaCallRequest = v.intersect([vAwsLambdaCallRequest, v.object({
970
+ tool_call_type: v.picklist(['aws_lambda_request'])
971
+ })]);
972
+ /**
973
+ * BatchLogResponse
974
+ *
975
+ * Batch-level workflow run log — aggregation of per-event execution logs
976
+ */
977
+ export const vBatchLogResponse = v.pipe(v.object({
978
+ batch_id: v.string(),
979
+ completed_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
980
+ completed_wels: v.optional(v.pipe(v.number(), v.integer())),
981
+ datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
982
+ expected_events: v.optional(v.pipe(v.number(), v.integer())),
983
+ failed_wels: v.optional(v.pipe(v.number(), v.integer())),
984
+ id: v.optional(v.pipe(v.string(), v.uuid())),
985
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
986
+ last_refreshed_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
987
+ started_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
988
+ status: v.picklist([
989
+ 'pending',
990
+ 'completed',
991
+ 'partial',
992
+ 'failed'
993
+ ]),
994
+ tenant_id: v.optional(v.pipe(v.string(), v.uuid())),
995
+ total_wels: v.optional(v.pipe(v.number(), v.integer())),
996
+ workflow_id: v.optional(v.pipe(v.string(), v.uuid()))
997
+ }), v.readonly());
998
+ /**
999
+ * BatchLogListResponse
1000
+ *
1001
+ * Paginated list of batch run logs
1002
+ */
1003
+ export const vBatchLogListResponse = v.object({
1004
+ data: v.array(vBatchLogResponse),
1005
+ meta: vPaginationMeta
1006
+ });
1007
+ /**
1008
+ * ActionSFTPCallRequest
1009
+ */
1010
+ export const vActionSftpCallRequest = v.intersect([vSftpCallRequest, v.object({
1011
+ tool_call_type: v.picklist(['sftp_request'])
1012
+ })]);
1013
+ /**
1014
+ * ActionSQLQueryCallRequest
1015
+ */
1016
+ export const vActionSqlQueryCallRequest = v.intersect([vSqlQueryCallRequest, v.object({
1017
+ tool_call_type: v.picklist(['sql_query'])
1018
+ })]);
736
1019
  /**
737
1020
  * ToolSQLDatabaseResponse
738
1021
  */
@@ -745,12 +1028,35 @@ export const vToolSqlDatabaseResponse = v.intersect([vSqlDatabaseResponse, v.obj
745
1028
  export const vActionStatusUpdaterCloudWatchQueryResponse = v.intersect([vCloudWatchQueryResponse, v.object({
746
1029
  updater_body_type: v.picklist(['cloud_watch_request'])
747
1030
  })]);
1031
+ /**
1032
+ * DataActivationClientManualUploadCallResponse
1033
+ */
1034
+ export const vDataActivationClientManualUploadCallResponse = v.intersect([vManualUploadCallResponse, v.object({
1035
+ tool_call_type: v.picklist(['manual_upload'])
1036
+ })]);
748
1037
  /**
749
1038
  * ToolSFTPRequest
750
1039
  */
751
1040
  export const vToolSftpRequest = v.intersect([vSftpRequest, v.object({
752
1041
  tool_body_type: v.picklist(['sftp'])
753
1042
  })]);
1043
+ /**
1044
+ * SharePointExcelCallRequest
1045
+ *
1046
+ * Microsoft SharePoint request descriptor — drive URL + Excel sheet + search params. Request
1047
+ */
1048
+ export const vSharePointExcelCallRequest = v.object({
1049
+ azure_tenant_id: v.pipe(v.string(), v.uuid()),
1050
+ drive_url: v.string(),
1051
+ search_params: v.string(),
1052
+ sheet_number: v.pipe(v.number(), v.integer())
1053
+ });
1054
+ /**
1055
+ * ActionSharePointExcelCallRequest
1056
+ */
1057
+ export const vActionSharePointExcelCallRequest = v.intersect([vSharePointExcelCallRequest, v.object({
1058
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
1059
+ })]);
754
1060
  /**
755
1061
  * UpdatePageResponse
756
1062
  *
@@ -781,6 +1087,12 @@ export const vGenericTableRequest = v.object({
781
1087
  description: v.optional(v.string()),
782
1088
  title: v.optional(v.string())
783
1089
  });
1090
+ /**
1091
+ * ActionRESTCallRequest
1092
+ */
1093
+ export const vActionRestCallRequest = v.intersect([vRestCallRequest, v.object({
1094
+ tool_call_type: v.picklist(['restapi_request'])
1095
+ })]);
784
1096
  /**
785
1097
  * SessionRequest
786
1098
  *
@@ -809,12 +1121,48 @@ export const vGenericTableListResponse = v.object({
809
1121
  export const vToolSqlDatabaseRequest = v.intersect([vSqlDatabaseRequest, v.object({
810
1122
  tool_body_type: v.picklist(['sql_database'])
811
1123
  })]);
1124
+ /**
1125
+ * WorkflowLogListResponse
1126
+ *
1127
+ * Paginated list of workflow execution logs
1128
+ */
1129
+ export const vWorkflowLogListResponse = v.object({
1130
+ data: v.array(vWorkflowLogResponse),
1131
+ meta: vPaginationMeta
1132
+ });
812
1133
  /**
813
1134
  * S3CloudStorageR2Request
814
1135
  */
815
1136
  export const vS3CloudStorageR2Request = v.intersect([vCloudStorageR2Request, v.object({
816
1137
  storage_config_type: v.picklist(['r2'])
817
1138
  })]);
1139
+ /**
1140
+ * SFTPCallResponse
1141
+ *
1142
+ * SFTP file descriptor — remote path + expected MIME content type.
1143
+ */
1144
+ export const vSftpCallResponse = v.pipe(v.object({
1145
+ content_type: v.string(),
1146
+ path: v.string()
1147
+ }), v.readonly());
1148
+ /**
1149
+ * ActionSFTPCallResponse
1150
+ */
1151
+ export const vActionSftpCallResponse = v.intersect([vSftpCallResponse, v.object({
1152
+ tool_call_type: v.picklist(['sftp_request'])
1153
+ })]);
1154
+ /**
1155
+ * DataActivationClientSFTPCallResponse
1156
+ */
1157
+ export const vDataActivationClientSftpCallResponse = v.intersect([vSftpCallResponse, v.object({
1158
+ tool_call_type: v.picklist(['sftp_request'])
1159
+ })]);
1160
+ /**
1161
+ * ActionSQLQueryCallResponse
1162
+ */
1163
+ export const vActionSqlQueryCallResponse = v.intersect([vSqlQueryCallResponse, v.object({
1164
+ tool_call_type: v.picklist(['sql_query'])
1165
+ })]);
818
1166
  /**
819
1167
  * ConnectedAppListResponse
820
1168
  *
@@ -905,6 +1253,7 @@ export const vToolRestapiResponse = v.intersect([vRestapiResponse, v.object({
905
1253
  */
906
1254
  export const vSharePointResponse = v.pipe(v.object({
907
1255
  auth_method: v.picklist(['client_credentials', 'managed_identity']),
1256
+ azure_tenant_id: v.string(),
908
1257
  client_id: v.nullish(v.string()),
909
1258
  drive_id: v.nullish(v.string()),
910
1259
  drive_path: v.nullish(v.string()),
@@ -913,8 +1262,7 @@ export const vSharePointResponse = v.pipe(v.object({
913
1262
  'library',
914
1263
  'list'
915
1264
  ]),
916
- site_url: v.nullish(v.string()),
917
- tenant_id: v.string()
1265
+ site_url: v.nullish(v.string())
918
1266
  }), v.readonly());
919
1267
  /**
920
1268
  * ToolSharePointResponse
@@ -951,26 +1299,55 @@ export const vAiAgentRequest = v.object({
951
1299
  updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
952
1300
  });
953
1301
  /**
954
- * RESTCallResponse
1302
+ * DataActivationClientRESTCallRequest
1303
+ */
1304
+ export const vDataActivationClientRestCallRequest = v.intersect([vRestCallRequest, v.object({
1305
+ tool_call_type: v.picklist(['restapi_request'])
1306
+ })]);
1307
+ /**
1308
+ * AWSLambdaCallResponse
955
1309
  *
956
- * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion. Title is RESTCall (not RESTAPIRequest) to avoid double-`Request` stacking in the library-generated parent-contextual sibling module names (e.g. ActionStatusUpdaterRESTCallRequest).
1310
+ * AWS Lambda invocation descriptor — Liquid-templated payload + timeout.
957
1311
  */
958
- export const vRestCallResponse = v.pipe(v.object({
959
- method: v.picklist([
960
- 'head',
961
- 'get',
962
- 'put',
963
- 'post',
964
- 'delete',
965
- 'patch'
966
- ])
1312
+ export const vAwsLambdaCallResponse = v.pipe(v.object({
1313
+ timeout_ms: v.optional(v.pipe(v.number(), v.integer()))
967
1314
  }), v.readonly());
968
1315
  /**
969
- * ActionStatusUpdaterRESTCallResponse
1316
+ * DataActivationClientAWSLambdaCallResponse
970
1317
  */
971
- export const vActionStatusUpdaterRestCallResponse = v.intersect([vRestCallResponse, v.object({
972
- updater_body_type: v.picklist(['restapi_request'])
1318
+ export const vDataActivationClientAwsLambdaCallResponse = v.intersect([vAwsLambdaCallResponse, v.object({
1319
+ tool_call_type: v.picklist(['aws_lambda_request'])
1320
+ })]);
1321
+ /**
1322
+ * ActionAWSLambdaCallResponse
1323
+ */
1324
+ export const vActionAwsLambdaCallResponse = v.intersect([vAwsLambdaCallResponse, v.object({
1325
+ tool_call_type: v.picklist(['aws_lambda_request'])
973
1326
  })]);
1327
+ /**
1328
+ * ActionRequest
1329
+ *
1330
+ * Workflow action — executes when the decision table routes to this `decision_key`. Polymorphic `tool_call` payload is variant-specific via `tool_call_type` discriminator. Request
1331
+ */
1332
+ export const vActionRequest = v.object({
1333
+ action_type: v.picklist([
1334
+ 'sms',
1335
+ 'email',
1336
+ 'voice',
1337
+ 'data_exchange'
1338
+ ]),
1339
+ action_window_end: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
1340
+ action_window_start: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
1341
+ connected_app_id: v.nullish(v.pipe(v.string(), v.uuid())),
1342
+ connected_app_metadata_template: v.nullish(v.string()),
1343
+ connected_app_route: v.nullish(v.string()),
1344
+ decision_key: v.string(),
1345
+ idempotency_template: v.string(),
1346
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
1347
+ runtime_filter: v.nullish(v.string()),
1348
+ tool_id: v.pipe(v.string(), v.uuid()),
1349
+ trigger_template: v.string()
1350
+ });
974
1351
  /**
975
1352
  * ResolvePageRequest
976
1353
  *
@@ -991,6 +1368,14 @@ export const vMdmVerified = v.object({
991
1368
  subject_id: v.pipe(v.string(), v.uuid()),
992
1369
  verified_at: v.pipe(v.string(), v.isoTimestamp())
993
1370
  });
1371
+ /**
1372
+ * DownloadUrlResponse
1373
+ *
1374
+ * Presigned download URL for a stored cloud-storage artifact.
1375
+ */
1376
+ export const vDownloadUrlResponse = v.object({
1377
+ url: v.pipe(v.string(), v.url())
1378
+ });
994
1379
  /**
995
1380
  * ToolSQSRequest
996
1381
  */
@@ -1085,6 +1470,56 @@ export const vChangesetErrors = v.object({
1085
1470
  export const vToolSharePointRequest = v.intersect([vSharePointRequest, v.object({
1086
1471
  tool_body_type: v.picklist(['sharepoint'])
1087
1472
  })]);
1473
+ /**
1474
+ * InteroperabilityContractResponse
1475
+ *
1476
+ * Declarative execution spec binding a `(datalake, resource_type)` pair to the ingestion pipeline: filter → transform → mdm_input → resolve → upsert.
1477
+ */
1478
+ export const vInteroperabilityContractResponse = v.pipe(v.object({
1479
+ data_activation_client_filter: v.nullish(v.string()),
1480
+ datalake_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
1481
+ description: v.nullish(v.string()),
1482
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
1483
+ id: v.optional(v.pipe(v.string(), v.uuid())),
1484
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
1485
+ name: v.string(),
1486
+ resource_type: v.string(),
1487
+ slug: v.optional(v.string()),
1488
+ type: v.optional(v.picklist([
1489
+ 'system',
1490
+ 'custom',
1491
+ 'identity',
1492
+ 'null'
1493
+ ])),
1494
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
1495
+ }), v.readonly());
1496
+ /**
1497
+ * InteroperabilityContractListResponse
1498
+ *
1499
+ * Paginated list of interoperability contracts
1500
+ */
1501
+ export const vInteroperabilityContractListResponse = v.object({
1502
+ data: v.array(vInteroperabilityContractResponse),
1503
+ meta: vPaginationMeta
1504
+ });
1505
+ /**
1506
+ * ManualUploadCallRequest
1507
+ *
1508
+ * Identity manual-upload marker. No fields — the discriminator alone indicates the tool call is a manual upload. Request
1509
+ */
1510
+ export const vManualUploadCallRequest = v.record(v.string(), v.unknown());
1511
+ /**
1512
+ * ActionManualUploadCallRequest
1513
+ */
1514
+ export const vActionManualUploadCallRequest = v.intersect([vManualUploadCallRequest, v.object({
1515
+ tool_call_type: v.picklist(['manual_upload'])
1516
+ })]);
1517
+ /**
1518
+ * DataActivationClientManualUploadCallRequest
1519
+ */
1520
+ export const vDataActivationClientManualUploadCallRequest = v.intersect([vManualUploadCallRequest, v.object({
1521
+ tool_call_type: v.picklist(['manual_upload'])
1522
+ })]);
1088
1523
  /**
1089
1524
  * MDMVerifyRequest
1090
1525
  *
@@ -1153,48 +1588,210 @@ export const vErrorResponse = v.object({
1153
1588
  errors: v.optional(v.object({}))
1154
1589
  });
1155
1590
  /**
1156
- * MDMNotVerified
1591
+ * InteroperabilityRunResponse
1592
+ *
1593
+ * Pipeline output for a single row. `stage` indicates the last pipeline stage reached; `transformed`/`mdm_input` are populated only when that stage executed successfully.
1157
1594
  */
1158
- export const vMdmNotVerified = v.object({
1159
- errors: v.record(v.string(), v.array(v.string())),
1160
- status: v.picklist(['not_verified']),
1161
- subject_id: v.pipe(v.string(), v.uuid()),
1162
- verified_at: v.pipe(v.string(), v.isoTimestamp())
1595
+ export const vInteroperabilityRunResponse = v.object({
1596
+ filter_result: v.picklist(['pass', 'skip']),
1597
+ mdm_input: v.nullish(v.record(v.string(), v.unknown())),
1598
+ stage: v.picklist(['completed', 'filtered']),
1599
+ transformed: v.nullish(v.record(v.string(), v.unknown()))
1163
1600
  });
1164
1601
  /**
1165
- * ExecuteActionRequest
1602
+ * TemplateConfigResponse
1166
1603
  *
1167
- * Request body for executing a workflow action for a dataset record
1604
+ * Inline Liquid template configuration
1605
+ */
1606
+ export const vTemplateConfigResponse = v.pipe(v.object({
1607
+ body: v.nullish(v.string()),
1608
+ path: v.nullish(v.string()),
1609
+ type: v.picklist([
1610
+ 'system',
1611
+ 'custom',
1612
+ 'identity',
1613
+ 'null'
1614
+ ])
1615
+ }), v.readonly());
1616
+ /**
1617
+ * EmailCallResponse
1618
+ *
1619
+ * Email tool-call config — Liquid-templated recipient, subject, and body.
1168
1620
  */
1169
- export const vExecuteActionRequest = v.object({
1170
- dataset_id: v.pipe(v.string(), v.uuid()),
1171
- decision_key: v.string(),
1172
- mode: v.optional(v.picklist(['live', 'dry_run']))
1173
- });
1621
+ export const vEmailCallResponse = v.pipe(v.object({
1622
+ body: vTemplateConfigResponse,
1623
+ subject: vTemplateConfigResponse,
1624
+ to: vTemplateConfigResponse
1625
+ }), v.readonly());
1174
1626
  /**
1175
- * AWSLambdaResponse
1627
+ * ActionEmailCallResponse
1628
+ */
1629
+ export const vActionEmailCallResponse = v.intersect([vEmailCallResponse, v.object({
1630
+ tool_call_type: v.picklist(['email_request'])
1631
+ })]);
1632
+ /**
1633
+ * RESTCallResponse
1176
1634
  *
1177
- * AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes.
1635
+ * REST API call descriptor HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion.
1178
1636
  */
1179
- export const vAwsLambdaResponse = v.pipe(v.object({
1180
- access_key_id: v.nullish(v.string()),
1181
- auth_method: v.optional(v.picklist([
1182
- 'access_key',
1183
- 'iam_role',
1184
- 'cloudformation'
1185
- ])),
1186
- env_vars: v.optional(v.array(v.unknown())),
1187
- error: v.nullish(v.pipe(v.string(), v.readonly())),
1188
- function_arn: v.nullish(v.string()),
1189
- secrets: v.optional(v.array(v.unknown())),
1190
- secrets_manager_secret_arn: v.nullish(v.pipe(v.string(), v.readonly())),
1191
- ssm_config_key: v.nullish(v.string()),
1192
- stack_id: v.nullish(v.pipe(v.string(), v.readonly())),
1193
- stack_name: v.nullish(v.pipe(v.string(), v.readonly())),
1194
- stack_status: v.optional(v.picklist([
1195
- 'create_in_progress',
1196
- 'create_complete',
1197
- 'create_failed',
1637
+ export const vRestCallResponse = v.pipe(v.object({
1638
+ body: v.optional(vTemplateConfigResponse),
1639
+ method: v.picklist([
1640
+ 'head',
1641
+ 'get',
1642
+ 'put',
1643
+ 'post',
1644
+ 'delete',
1645
+ 'patch'
1646
+ ]),
1647
+ pagination_context_template: vTemplateConfigResponse,
1648
+ params: v.optional(vTemplateConfigResponse),
1649
+ path: vTemplateConfigResponse
1650
+ }), v.readonly());
1651
+ /**
1652
+ * ActionRESTCallResponse
1653
+ */
1654
+ export const vActionRestCallResponse = v.intersect([vRestCallResponse, v.object({
1655
+ tool_call_type: v.picklist(['restapi_request'])
1656
+ })]);
1657
+ /**
1658
+ * ActionStatusUpdaterRESTCallResponse
1659
+ */
1660
+ export const vActionStatusUpdaterRestCallResponse = v.intersect([vRestCallResponse, v.object({
1661
+ updater_body_type: v.picklist(['restapi_request'])
1662
+ })]);
1663
+ /**
1664
+ * DataActivationClientRESTCallResponse
1665
+ */
1666
+ export const vDataActivationClientRestCallResponse = v.intersect([vRestCallResponse, v.object({
1667
+ tool_call_type: v.picklist(['restapi_request'])
1668
+ })]);
1669
+ /**
1670
+ * SMSCallResponse
1671
+ *
1672
+ * SMS tool-call config — Liquid-templated recipient and body plus transactional/promotional category.
1673
+ */
1674
+ export const vSmsCallResponse = v.pipe(v.object({
1675
+ body: vTemplateConfigResponse,
1676
+ sms_type: v.optional(v.picklist(['transactional', 'promotional']), 'transactional'),
1677
+ to: vTemplateConfigResponse
1678
+ }), v.readonly());
1679
+ /**
1680
+ * ActionSMSCallResponse
1681
+ */
1682
+ export const vActionSmsCallResponse = v.intersect([vSmsCallResponse, v.object({
1683
+ tool_call_type: v.picklist(['sms_request'])
1684
+ })]);
1685
+ /**
1686
+ * MDMNotVerified
1687
+ */
1688
+ export const vMdmNotVerified = v.object({
1689
+ errors: v.record(v.string(), v.array(v.string())),
1690
+ status: v.picklist(['not_verified']),
1691
+ subject_id: v.pipe(v.string(), v.uuid()),
1692
+ verified_at: v.pipe(v.string(), v.isoTimestamp())
1693
+ });
1694
+ /**
1695
+ * ExecuteActionRequest
1696
+ *
1697
+ * Request body for executing a workflow action for a dataset record
1698
+ */
1699
+ export const vExecuteActionRequest = v.object({
1700
+ dataset_id: v.pipe(v.string(), v.uuid()),
1701
+ decision_key: v.string(),
1702
+ manual_override: v.optional(v.boolean(), false),
1703
+ mode: v.optional(v.picklist(['live', 'dry_run']), 'live')
1704
+ });
1705
+ /**
1706
+ * DataActivationClientSQLQueryCallResponse
1707
+ */
1708
+ export const vDataActivationClientSqlQueryCallResponse = v.intersect([vSqlQueryCallResponse, v.object({
1709
+ tool_call_type: v.picklist(['sql_query'])
1710
+ })]);
1711
+ /**
1712
+ * ActionSharePointExcelCallResponse
1713
+ */
1714
+ export const vActionSharePointExcelCallResponse = v.intersect([vSharePointExcelCallResponse, v.object({
1715
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
1716
+ })]);
1717
+ /**
1718
+ * ActionResponse
1719
+ *
1720
+ * Workflow action — executes when the decision table routes to this `decision_key`. Polymorphic `tool_call` payload is variant-specific via `tool_call_type` discriminator.
1721
+ */
1722
+ export const vActionResponse = v.pipe(v.object({
1723
+ action_type: v.picklist([
1724
+ 'sms',
1725
+ 'email',
1726
+ 'voice',
1727
+ 'data_exchange'
1728
+ ]),
1729
+ action_window_end: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
1730
+ action_window_start: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
1731
+ connected_app_id: v.nullish(v.pipe(v.string(), v.uuid())),
1732
+ connected_app_metadata_template: v.nullish(v.string()),
1733
+ connected_app_route: v.nullish(v.string()),
1734
+ decision_key: v.string(),
1735
+ id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
1736
+ idempotency_template: v.string(),
1737
+ inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
1738
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
1739
+ runtime_filter: v.nullish(v.string()),
1740
+ tool_call: v.union([
1741
+ v.intersect([v.object({
1742
+ tool_call_type: v.literal('sms_request')
1743
+ }), vActionSmsCallResponse]),
1744
+ v.intersect([v.object({
1745
+ tool_call_type: v.literal('email_request')
1746
+ }), vActionEmailCallResponse]),
1747
+ v.intersect([v.object({
1748
+ tool_call_type: v.literal('sql_query')
1749
+ }), vActionSqlQueryCallResponse]),
1750
+ v.intersect([v.object({
1751
+ tool_call_type: v.literal('restapi_request')
1752
+ }), vActionRestCallResponse]),
1753
+ v.intersect([v.object({
1754
+ tool_call_type: v.literal('sftp_request')
1755
+ }), vActionSftpCallResponse]),
1756
+ v.intersect([v.object({
1757
+ tool_call_type: v.literal('microsoft_share_point_excel_request')
1758
+ }), vActionSharePointExcelCallResponse]),
1759
+ v.intersect([v.object({
1760
+ tool_call_type: v.literal('aws_lambda_request')
1761
+ }), vActionAwsLambdaCallResponse]),
1762
+ v.intersect([v.object({
1763
+ tool_call_type: v.literal('manual_upload')
1764
+ }), vActionManualUploadCallResponse])
1765
+ ]),
1766
+ tool_id: v.pipe(v.string(), v.uuid()),
1767
+ trigger_template: v.string(),
1768
+ updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
1769
+ workflow_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly()))
1770
+ }), v.readonly());
1771
+ /**
1772
+ * AWSLambdaResponse
1773
+ *
1774
+ * AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes.
1775
+ */
1776
+ export const vAwsLambdaResponse = v.pipe(v.object({
1777
+ access_key_id: v.nullish(v.string()),
1778
+ auth_method: v.optional(v.picklist([
1779
+ 'access_key',
1780
+ 'iam_role',
1781
+ 'cloudformation'
1782
+ ])),
1783
+ env_vars: v.optional(v.array(v.unknown())),
1784
+ error: v.nullish(v.pipe(v.string(), v.readonly())),
1785
+ function_arn: v.nullish(v.string()),
1786
+ secrets: v.optional(v.array(v.unknown())),
1787
+ secrets_manager_secret_arn: v.nullish(v.pipe(v.string(), v.readonly())),
1788
+ ssm_config_key: v.nullish(v.string()),
1789
+ stack_id: v.nullish(v.pipe(v.string(), v.readonly())),
1790
+ stack_name: v.nullish(v.pipe(v.string(), v.readonly())),
1791
+ stack_status: v.optional(v.pipe(v.picklist([
1792
+ 'create_in_progress',
1793
+ 'create_complete',
1794
+ 'create_failed',
1198
1795
  'rollback_in_progress',
1199
1796
  'rollback_complete',
1200
1797
  'rollback_failed',
@@ -1206,7 +1803,7 @@ export const vAwsLambdaResponse = v.pipe(v.object({
1206
1803
  'update_failed',
1207
1804
  'update_rollback_complete',
1208
1805
  'update_rollback_failed'
1209
- ])),
1806
+ ]), v.readonly())),
1210
1807
  type: v.picklist(['managed', 'external'])
1211
1808
  }), v.readonly());
1212
1809
  /**
@@ -1215,6 +1812,12 @@ export const vAwsLambdaResponse = v.pipe(v.object({
1215
1812
  export const vToolAwsLambdaResponse = v.intersect([vAwsLambdaResponse, v.object({
1216
1813
  tool_body_type: v.picklist(['aws_lambda'])
1217
1814
  })]);
1815
+ /**
1816
+ * DataActivationClientSharePointExcelCallRequest
1817
+ */
1818
+ export const vDataActivationClientSharePointExcelCallRequest = v.intersect([vSharePointExcelCallRequest, v.object({
1819
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
1820
+ })]);
1218
1821
  /**
1219
1822
  * IngestRequest
1220
1823
  *
@@ -1254,6 +1857,101 @@ export const vActionStatusUpdaterListResponse = v.object({
1254
1857
  data: v.array(vActionStatusUpdaterResponse),
1255
1858
  meta: vPaginationMeta
1256
1859
  });
1860
+ /**
1861
+ * S3CallResponse
1862
+ *
1863
+ * S3 file-path descriptor — identifies an object for downstream validation/read.
1864
+ */
1865
+ export const vS3CallResponse = v.pipe(v.object({
1866
+ file_path: v.string()
1867
+ }), v.readonly());
1868
+ /**
1869
+ * DataActivationClientS3CallResponse
1870
+ */
1871
+ export const vDataActivationClientS3CallResponse = v.intersect([vS3CallResponse, v.object({
1872
+ tool_call_type: v.picklist(['s3_request'])
1873
+ })]);
1874
+ /**
1875
+ * DataActivationClientResponse
1876
+ *
1877
+ * Data Activation Client — binds a (datalake, data_source, tool) triple with a polymorphic `tool_call` config describing how to fetch data from the external system, plus optional cron schedule, row-level filter, downstream triggers, and interop contracts for row-level transformation.
1878
+ */
1879
+ export const vDataActivationClientResponse = v.pipe(v.object({
1880
+ cron_expressions: v.optional(v.array(v.string()), []),
1881
+ data_source_id: v.pipe(v.string(), v.uuid()),
1882
+ datalake_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
1883
+ description: v.nullish(v.string()),
1884
+ downstream_connection_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
1885
+ id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
1886
+ inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
1887
+ interoperability_contract_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
1888
+ is_default: v.optional(v.pipe(v.boolean(), v.readonly())),
1889
+ loop_over: v.optional(v.array(v.picklist([
1890
+ 'services',
1891
+ 'locations',
1892
+ 'providers'
1893
+ ])), []),
1894
+ name: v.string(),
1895
+ row_filter: v.nullish(v.string()),
1896
+ slug: v.optional(v.pipe(v.string(), v.readonly())),
1897
+ tool_call: v.union([
1898
+ v.intersect([v.object({
1899
+ tool_call_type: v.literal('restapi_request')
1900
+ }), vDataActivationClientRestCallResponse]),
1901
+ v.intersect([v.object({
1902
+ tool_call_type: v.literal('sql_query')
1903
+ }), vDataActivationClientSqlQueryCallResponse]),
1904
+ v.intersect([v.object({
1905
+ tool_call_type: v.literal('sftp_request')
1906
+ }), vDataActivationClientSftpCallResponse]),
1907
+ v.intersect([v.object({
1908
+ tool_call_type: v.literal('microsoft_share_point_excel_request')
1909
+ }), vDataActivationClientSharePointExcelCallResponse]),
1910
+ v.intersect([v.object({
1911
+ tool_call_type: v.literal('aws_lambda_request')
1912
+ }), vDataActivationClientAwsLambdaCallResponse]),
1913
+ v.intersect([v.object({
1914
+ tool_call_type: v.literal('manual_upload')
1915
+ }), vDataActivationClientManualUploadCallResponse]),
1916
+ v.intersect([v.object({
1917
+ tool_call_type: v.literal('s3_request')
1918
+ }), vDataActivationClientS3CallResponse])
1919
+ ]),
1920
+ tool_id: v.pipe(v.string(), v.uuid()),
1921
+ updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly()))
1922
+ }), v.readonly());
1923
+ /**
1924
+ * DataActivationClientLogResponse
1925
+ *
1926
+ * One log row per `(batch_id, dataset_table)`. A batch fans out into one log per dataset table — so a single run (one `batch_id`) produces multiple log rows, one per table the DAC writes into. `output_files` carries the merged NDJSON URI once `BatchMergeWorker` has finished; use `/logs/:id/download` to fetch a presigned URL.
1927
+ */
1928
+ export const vDataActivationClientLogResponse = v.pipe(v.object({
1929
+ batch_id: v.pipe(v.string(), v.uuid()),
1930
+ client_id: v.pipe(v.pipe(v.string(), v.uuid()), v.readonly()),
1931
+ dataset_table: v.string(),
1932
+ dataset_updated: v.optional(v.pipe(v.number(), v.integer()), 0),
1933
+ id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
1934
+ input_files: v.optional(v.array(v.string()), []),
1935
+ inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
1936
+ output_files: v.optional(v.array(v.string()), []),
1937
+ rows_ingested: v.optional(v.pipe(v.number(), v.integer()), 0),
1938
+ updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly()))
1939
+ }), v.readonly());
1940
+ /**
1941
+ * DataActivationClientLogListResponse
1942
+ *
1943
+ * Paginated list of data activation client logs
1944
+ */
1945
+ export const vDataActivationClientLogListResponse = v.object({
1946
+ data: v.array(vDataActivationClientLogResponse),
1947
+ meta: vPaginationMeta
1948
+ });
1949
+ /**
1950
+ * ActionSMSCallRequest
1951
+ */
1952
+ export const vActionSmsCallRequest = v.intersect([vSmsCallRequest, v.object({
1953
+ tool_call_type: v.picklist(['sms_request'])
1954
+ })]);
1257
1955
  /**
1258
1956
  * TenantResponse
1259
1957
  *
@@ -1264,6 +1962,15 @@ export const vTenantResponse = v.pipe(v.object({
1264
1962
  name: v.pipe(v.string(), v.readonly()),
1265
1963
  slug: v.pipe(v.string(), v.readonly())
1266
1964
  }), v.readonly());
1965
+ /**
1966
+ * TenantListResponse
1967
+ *
1968
+ * Paginated list of tenants
1969
+ */
1970
+ export const vTenantListResponse = v.object({
1971
+ data: v.array(vTenantResponse),
1972
+ meta: vPaginationMeta
1973
+ });
1267
1974
  /**
1268
1975
  * DatalakeResponse
1269
1976
  *
@@ -1293,11 +2000,11 @@ export const vDatalakeResponse = v.pipe(v.object({
1293
2000
  regulated_data_db_reader_enable_ssl: v.boolean(),
1294
2001
  unregulated_db_reader_host: v.string(),
1295
2002
  unregulated_db_reader_port: v.pipe(v.number(), v.integer()),
1296
- status: v.optional(v.picklist([
2003
+ status: v.optional(v.pipe(v.picklist([
1297
2004
  'new',
1298
2005
  'processing',
1299
2006
  'ready'
1300
- ])),
2007
+ ]), v.readonly())),
1301
2008
  updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
1302
2009
  pool_size: v.nullable(v.pipe(v.number(), v.integer())),
1303
2010
  description: v.nullish(v.string()),
@@ -1369,6 +2076,50 @@ export const vCloudflarePagesConfigResponse = v.pipe(v.object({
1369
2076
  production_branch: v.nullish(v.string()),
1370
2077
  project_name: v.nullish(v.pipe(v.string(), v.readonly()))
1371
2078
  }), v.readonly());
2079
+ /**
2080
+ * S3CallRequest
2081
+ *
2082
+ * S3 file-path descriptor — identifies an object for downstream validation/read. Request
2083
+ */
2084
+ export const vS3CallRequest = v.object({
2085
+ file_path: v.string()
2086
+ });
2087
+ /**
2088
+ * DataActivationClientS3CallRequest
2089
+ */
2090
+ export const vDataActivationClientS3CallRequest = v.intersect([vS3CallRequest, v.object({
2091
+ tool_call_type: v.picklist(['s3_request'])
2092
+ })]);
2093
+ /**
2094
+ * RunManuallyRequest
2095
+ *
2096
+ * Optional polymorphic tool_call override for this run. When omitted or empty, the DAC's persisted tool_call is used.
2097
+ */
2098
+ export const vRunManuallyRequest = v.object({
2099
+ tool_call: v.nullish(v.union([
2100
+ v.intersect([v.object({
2101
+ tool_call_type: v.literal('DataActivationClientRESTCallRequest')
2102
+ }), vDataActivationClientRestCallRequest]),
2103
+ v.intersect([v.object({
2104
+ tool_call_type: v.literal('DataActivationClientSQLQueryCallRequest')
2105
+ }), vDataActivationClientSqlQueryCallRequest]),
2106
+ v.intersect([v.object({
2107
+ tool_call_type: v.literal('DataActivationClientSFTPCallRequest')
2108
+ }), vDataActivationClientSftpCallRequest]),
2109
+ v.intersect([v.object({
2110
+ tool_call_type: v.literal('DataActivationClientSharePointExcelCallRequest')
2111
+ }), vDataActivationClientSharePointExcelCallRequest]),
2112
+ v.intersect([v.object({
2113
+ tool_call_type: v.literal('DataActivationClientAWSLambdaCallRequest')
2114
+ }), vDataActivationClientAwsLambdaCallRequest]),
2115
+ v.intersect([v.object({
2116
+ tool_call_type: v.literal('DataActivationClientManualUploadCallRequest')
2117
+ }), vDataActivationClientManualUploadCallRequest]),
2118
+ v.intersect([v.object({
2119
+ tool_call_type: v.literal('DataActivationClientS3CallRequest')
2120
+ }), vDataActivationClientS3CallRequest])
2121
+ ]))
2122
+ });
1372
2123
  /**
1373
2124
  * CloudWatchLogGroupResponse
1374
2125
  *
@@ -1498,6 +2249,31 @@ export const vToolListResponse = v.object({
1498
2249
  data: v.array(vToolResponse),
1499
2250
  meta: vPaginationMeta
1500
2251
  });
2252
+ /**
2253
+ * EmailCallRequest
2254
+ *
2255
+ * Email tool-call config — Liquid-templated recipient, subject, and body. Request
2256
+ */
2257
+ export const vEmailCallRequest = v.object({
2258
+ body: vTemplateConfigRequest,
2259
+ subject: vTemplateConfigRequest,
2260
+ to: vTemplateConfigRequest
2261
+ });
2262
+ /**
2263
+ * ActionEmailCallRequest
2264
+ */
2265
+ export const vActionEmailCallRequest = v.intersect([vEmailCallRequest, v.object({
2266
+ tool_call_type: v.picklist(['email_request'])
2267
+ })]);
2268
+ /**
2269
+ * DataActivationClientListResponse
2270
+ *
2271
+ * Paginated list of data activation clients
2272
+ */
2273
+ export const vDataActivationClientListResponse = v.object({
2274
+ data: v.array(vDataActivationClientResponse),
2275
+ meta: vPaginationMeta
2276
+ });
1501
2277
  /**
1502
2278
  * ToolRESTAPIRequest
1503
2279
  */
@@ -1548,6 +2324,74 @@ export const vDatalakeRequest = v.object({
1548
2324
  unregulated_db_reader_auth_method: v.picklist(['password', 'iam_role']),
1549
2325
  slug: v.optional(v.string())
1550
2326
  });
2327
+ /**
2328
+ * ContextDatasetResponse
2329
+ *
2330
+ * Context dataset for a workflow — declares which records the context builder should load (and under what filter) before the enrichment and decision stages.
2331
+ */
2332
+ export const vContextDatasetResponse = v.pipe(v.object({
2333
+ dataset_type: v.string(),
2334
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
2335
+ id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
2336
+ inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
2337
+ limit: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
2338
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
2339
+ updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
2340
+ where_clause: v.nullish(v.string()),
2341
+ workflow_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly()))
2342
+ }), v.readonly());
2343
+ /**
2344
+ * AgenticWorkflowRequest
2345
+ *
2346
+ * Agentic Workflow — event-driven automation pipeline Request
2347
+ */
2348
+ export const vAgenticWorkflowRequest = v.object({
2349
+ actions: v.optional(v.array(vActionResponse)),
2350
+ context_datasets: v.optional(v.array(vContextDatasetResponse)),
2351
+ dataset_type: v.string(),
2352
+ description: v.string(),
2353
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
2354
+ id: v.optional(v.pipe(v.string(), v.uuid())),
2355
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
2356
+ name: v.string(),
2357
+ skip_mdm_resolution: v.optional(v.boolean()),
2358
+ status: v.picklist(['live', 'draft']),
2359
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
2360
+ });
2361
+ /**
2362
+ * AgenticWorkflowResponse
2363
+ *
2364
+ * Agentic Workflow — event-driven automation pipeline
2365
+ */
2366
+ export const vAgenticWorkflowResponse = v.pipe(v.object({
2367
+ actions: v.optional(v.array(vActionResponse)),
2368
+ context_datasets: v.optional(v.array(vContextDatasetResponse)),
2369
+ datalake: v.optional(vDatalakeResponse),
2370
+ dataset_type: v.string(),
2371
+ description: v.string(),
2372
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
2373
+ id: v.optional(v.pipe(v.string(), v.uuid())),
2374
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
2375
+ name: v.string(),
2376
+ skip_mdm_resolution: v.optional(v.boolean()),
2377
+ slug: v.optional(v.pipe(v.string(), v.readonly())),
2378
+ status: v.picklist(['live', 'draft']),
2379
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
2380
+ workflow_ai_agents: v.optional(v.pipe(v.array(v.object({
2381
+ ai_agent: v.optional(vAiAgentResponse),
2382
+ ai_agent_id: v.optional(v.pipe(v.string(), v.uuid())),
2383
+ position: v.optional(v.pipe(v.number(), v.integer()))
2384
+ })), v.readonly()))
2385
+ }), v.readonly());
2386
+ /**
2387
+ * AgenticWorkflowListResponse
2388
+ *
2389
+ * Paginated list of agentic workflows
2390
+ */
2391
+ export const vAgenticWorkflowListResponse = v.object({
2392
+ data: v.array(vAgenticWorkflowResponse),
2393
+ meta: vPaginationMeta
2394
+ });
1551
2395
  /**
1552
2396
  * ManualUploadRequest
1553
2397
  *
@@ -1632,6 +2476,12 @@ export const vConnectedAppResponseWritable = v.pipe(v.object({
1632
2476
  url: v.string()
1633
2477
  })))
1634
2478
  }), v.readonly());
2479
+ /**
2480
+ * DataActivationClientSFTPCallRequest
2481
+ */
2482
+ export const vDataActivationClientSftpCallRequestWritable = v.intersect([vSftpCallRequest, v.object({
2483
+ tool_call_type: v.picklist(['sftp_request'])
2484
+ })]);
1635
2485
  /**
1636
2486
  * CloudflarePagesConfigRequest
1637
2487
  *
@@ -1679,6 +2529,26 @@ export const vSftpRequestWritable = v.object({
1679
2529
  private_key_passphrase: v.nullish(v.string()),
1680
2530
  user_name: v.string()
1681
2531
  });
2532
+ /**
2533
+ * DataActivationClientResponse
2534
+ *
2535
+ * Data Activation Client — binds a (datalake, data_source, tool) triple with a polymorphic `tool_call` config describing how to fetch data from the external system, plus optional cron schedule, row-level filter, downstream triggers, and interop contracts for row-level transformation.
2536
+ */
2537
+ export const vDataActivationClientResponseWritable = v.pipe(v.object({
2538
+ cron_expressions: v.optional(v.array(v.string()), []),
2539
+ data_source_id: v.pipe(v.string(), v.uuid()),
2540
+ description: v.nullish(v.string()),
2541
+ downstream_connection_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
2542
+ interoperability_contract_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
2543
+ loop_over: v.optional(v.array(v.picklist([
2544
+ 'services',
2545
+ 'locations',
2546
+ 'providers'
2547
+ ])), []),
2548
+ name: v.string(),
2549
+ row_filter: v.nullish(v.string()),
2550
+ tool_id: v.pipe(v.string(), v.uuid())
2551
+ }), v.readonly());
1682
2552
  /**
1683
2553
  * CloudStorageAwsRequest
1684
2554
  *
@@ -1693,6 +2563,40 @@ export const vCloudStorageAwsRequestWritable = v.object({
1693
2563
  region: v.string(),
1694
2564
  secret_access_key: v.nullish(v.string())
1695
2565
  });
2566
+ /**
2567
+ * WorkflowLogResponse
2568
+ *
2569
+ * Workflow execution log — per-event execution detail
2570
+ */
2571
+ export const vWorkflowLogResponseWritable = v.pipe(v.object({
2572
+ actions_completed: v.optional(v.pipe(v.number(), v.integer())),
2573
+ actions_failed: v.optional(v.pipe(v.number(), v.integer())),
2574
+ actions_pending: v.optional(v.pipe(v.number(), v.integer())),
2575
+ actions_total: v.optional(v.pipe(v.number(), v.integer())),
2576
+ batch_id: v.nullish(v.string()),
2577
+ completed_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
2578
+ context_r2_key: v.nullish(v.string()),
2579
+ datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
2580
+ error_message: v.nullish(v.string()),
2581
+ filter_result: v.nullish(v.boolean()),
2582
+ id: v.optional(v.pipe(v.string(), v.uuid())),
2583
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
2584
+ mode: v.picklist(['live', 'dry_run']),
2585
+ sampled_event_id: v.nullish(v.pipe(v.string(), v.uuid())),
2586
+ started_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
2587
+ status: v.picklist([
2588
+ 'filtered',
2589
+ 'pending',
2590
+ 'executing',
2591
+ 'completed',
2592
+ 'failed',
2593
+ 'partial'
2594
+ ]),
2595
+ subject_id: v.nullish(v.pipe(v.string(), v.uuid())),
2596
+ subject_type: v.nullish(v.string()),
2597
+ tenant_id: v.optional(v.pipe(v.string(), v.uuid())),
2598
+ workflow_id: v.optional(v.pipe(v.string(), v.uuid()))
2599
+ }), v.readonly());
1696
2600
  /**
1697
2601
  * EmailResponse
1698
2602
  *
@@ -1715,6 +2619,12 @@ export const vEmailResponseWritable = v.pipe(v.object({
1715
2619
  smtp_port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
1716
2620
  smtp_username: v.optional(v.string())
1717
2621
  }), v.readonly());
2622
+ /**
2623
+ * DataActivationClientSharePointExcelCallResponse
2624
+ */
2625
+ export const vDataActivationClientSharePointExcelCallResponseWritable = v.intersect([vSharePointExcelCallResponse, v.object({
2626
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
2627
+ })]);
1718
2628
  /**
1719
2629
  * RESTAPIRequest
1720
2630
  *
@@ -1760,6 +2670,31 @@ export const vRestapiRequestWritable = v.object({
1760
2670
  timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
1761
2671
  username: v.nullish(v.string())
1762
2672
  });
2673
+ /**
2674
+ * TemplateConfigRequest
2675
+ *
2676
+ * Inline Liquid template configuration Request
2677
+ */
2678
+ export const vTemplateConfigRequestWritable = v.object({
2679
+ body: v.nullish(v.string()),
2680
+ path: v.nullish(v.string()),
2681
+ type: v.picklist([
2682
+ 'system',
2683
+ 'custom',
2684
+ 'identity',
2685
+ 'null'
2686
+ ])
2687
+ });
2688
+ /**
2689
+ * SMSCallRequest
2690
+ *
2691
+ * SMS tool-call config — Liquid-templated recipient and body plus transactional/promotional category. Request
2692
+ */
2693
+ export const vSmsCallRequestWritable = v.object({
2694
+ body: vTemplateConfigRequestWritable,
2695
+ sms_type: v.optional(v.picklist(['transactional', 'promotional']), 'transactional'),
2696
+ to: vTemplateConfigRequestWritable
2697
+ });
1763
2698
  /**
1764
2699
  * SQSResponse
1765
2700
  *
@@ -1821,9 +2756,10 @@ export const vSqlDatabaseResponseWritable = v.pipe(v.object({
1821
2756
  /**
1822
2757
  * RESTCallRequest
1823
2758
  *
1824
- * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion. Title is RESTCall (not RESTAPIRequest) to avoid double-`Request` stacking in the library-generated parent-contextual sibling module names (e.g. ActionStatusUpdaterRESTCallRequest). Request
2759
+ * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion. Request
1825
2760
  */
1826
2761
  export const vRestCallRequestWritable = v.object({
2762
+ body: v.optional(vTemplateConfigRequestWritable),
1827
2763
  method: v.picklist([
1828
2764
  'head',
1829
2765
  'get',
@@ -1831,22 +2767,55 @@ export const vRestCallRequestWritable = v.object({
1831
2767
  'post',
1832
2768
  'delete',
1833
2769
  'patch'
1834
- ])
2770
+ ]),
2771
+ pagination_context_template: vTemplateConfigRequestWritable,
2772
+ params: v.optional(vTemplateConfigRequestWritable),
2773
+ path: vTemplateConfigRequestWritable
1835
2774
  });
1836
2775
  /**
1837
- * SNSResponse
2776
+ * InteroperabilityContractRequest
1838
2777
  *
1839
- * AWS SNS tool configuration for sending SMS messages via the SNS Publish API.
2778
+ * Declarative execution spec binding a `(datalake, resource_type)` pair to the ingestion pipeline: filter → transform → mdm_input → resolve → upsert. Request
1840
2779
  */
1841
- export const vSnsResponseWritable = v.pipe(v.object({
1842
- access_key_id: v.nullish(v.string()),
1843
- assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
1844
- assume_role_external_id: v.nullish(v.string()),
1845
- auth_method: v.picklist([
1846
- 'access_key',
1847
- 'iam_role',
1848
- 'assume_role'
1849
- ]),
2780
+ export const vInteroperabilityContractRequestWritable = v.object({
2781
+ data_activation_client_filter: v.nullish(v.string()),
2782
+ description: v.nullish(v.string()),
2783
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
2784
+ id: v.optional(v.pipe(v.string(), v.uuid())),
2785
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
2786
+ mdm_input_config: v.optional(vTemplateConfigRequestWritable),
2787
+ name: v.string(),
2788
+ resource_type: v.string(),
2789
+ slug: v.optional(v.string()),
2790
+ template_config: vTemplateConfigRequestWritable,
2791
+ type: v.optional(v.picklist([
2792
+ 'system',
2793
+ 'custom',
2794
+ 'identity',
2795
+ 'null'
2796
+ ])),
2797
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
2798
+ });
2799
+ /**
2800
+ * ActionSharePointExcelCallRequest
2801
+ */
2802
+ export const vActionSharePointExcelCallRequestWritable = v.intersect([vSharePointExcelCallRequest, v.object({
2803
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
2804
+ })]);
2805
+ /**
2806
+ * SNSResponse
2807
+ *
2808
+ * AWS SNS tool configuration for sending SMS messages via the SNS Publish API.
2809
+ */
2810
+ export const vSnsResponseWritable = v.pipe(v.object({
2811
+ access_key_id: v.nullish(v.string()),
2812
+ assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
2813
+ assume_role_external_id: v.nullish(v.string()),
2814
+ auth_method: v.picklist([
2815
+ 'access_key',
2816
+ 'iam_role',
2817
+ 'assume_role'
2818
+ ]),
1850
2819
  endpoint_url: v.nullish(v.string()),
1851
2820
  phone_number: v.string(),
1852
2821
  region: v.string()
@@ -1981,6 +2950,18 @@ export const vCloudWatchLogGroupRequestWritable = v.object({
1981
2950
  region: v.string(),
1982
2951
  secret_access_key: v.nullish(v.string())
1983
2952
  });
2953
+ /**
2954
+ * ActionSFTPCallResponse
2955
+ */
2956
+ export const vActionSftpCallResponseWritable = v.intersect([vSftpCallResponse, v.object({
2957
+ tool_call_type: v.picklist(['sftp_request'])
2958
+ })]);
2959
+ /**
2960
+ * SQLQueryCallResponse
2961
+ *
2962
+ * SQL query descriptor — Liquid-templated query body.
2963
+ */
2964
+ export const vSqlQueryCallResponseWritable = v.pipe(v.record(v.string(), v.unknown()), v.readonly());
1984
2965
  /**
1985
2966
  * ToolSNSResponse
1986
2967
  */
@@ -2118,6 +3099,18 @@ export const vDataSourceListResponseWritable = v.object({
2118
3099
  data: v.array(vDataSourceResponseWritable),
2119
3100
  meta: vPaginationMeta
2120
3101
  });
3102
+ /**
3103
+ * SQLQueryCallRequest
3104
+ *
3105
+ * SQL query descriptor — Liquid-templated query body. Request
3106
+ */
3107
+ export const vSqlQueryCallRequestWritable = v.record(v.string(), v.unknown());
3108
+ /**
3109
+ * DataActivationClientSQLQueryCallRequest
3110
+ */
3111
+ export const vDataActivationClientSqlQueryCallRequestWritable = v.intersect([vSqlQueryCallRequestWritable, v.object({
3112
+ tool_call_type: v.picklist(['sql_query'])
3113
+ })]);
2121
3114
  /**
2122
3115
  * SharePointRequest
2123
3116
  *
@@ -2125,6 +3118,7 @@ export const vDataSourceListResponseWritable = v.object({
2125
3118
  */
2126
3119
  export const vSharePointRequestWritable = v.object({
2127
3120
  auth_method: v.picklist(['client_credentials', 'managed_identity']),
3121
+ azure_tenant_id: v.string(),
2128
3122
  client_id: v.nullish(v.string()),
2129
3123
  client_secret: v.nullish(v.string()),
2130
3124
  drive_id: v.nullish(v.string()),
@@ -2134,8 +3128,7 @@ export const vSharePointRequestWritable = v.object({
2134
3128
  'library',
2135
3129
  'list'
2136
3130
  ]),
2137
- site_url: v.nullish(v.string()),
2138
- tenant_id: v.string()
3131
+ site_url: v.nullish(v.string())
2139
3132
  });
2140
3133
  /**
2141
3134
  * CloudStorageR2Request
@@ -2150,6 +3143,12 @@ export const vCloudStorageR2RequestWritable = v.object({
2150
3143
  region: v.optional(v.string()),
2151
3144
  secret_access_key: v.string()
2152
3145
  });
3146
+ /**
3147
+ * DataActivationClientSFTPCallResponse
3148
+ */
3149
+ export const vDataActivationClientSftpCallResponseWritable = v.intersect([vSftpCallResponse, v.object({
3150
+ tool_call_type: v.picklist(['sftp_request'])
3151
+ })]);
2153
3152
  /**
2154
3153
  * S3CloudStorageAwsRequest
2155
3154
  */
@@ -2162,12 +3161,85 @@ export const vS3CloudStorageAwsRequestWritable = v.intersect([vCloudStorageAwsRe
2162
3161
  export const vToolS3ResponseWritable = v.intersect([vS3ResponseWritable, v.object({
2163
3162
  tool_body_type: v.picklist(['s3'])
2164
3163
  })]);
3164
+ /**
3165
+ * DataActivationClientS3CallRequest
3166
+ */
3167
+ export const vDataActivationClientS3CallRequestWritable = v.intersect([vS3CallRequest, v.object({
3168
+ tool_call_type: v.picklist(['s3_request'])
3169
+ })]);
2165
3170
  /**
2166
3171
  * ToolCloudWatchLogGroupRequest
2167
3172
  */
2168
3173
  export const vToolCloudWatchLogGroupRequestWritable = v.intersect([vCloudWatchLogGroupRequestWritable, v.object({
2169
3174
  tool_body_type: v.picklist(['cloud_watch_log_group'])
2170
3175
  })]);
3176
+ /**
3177
+ * AWSLambdaCallRequest
3178
+ *
3179
+ * AWS Lambda invocation descriptor — Liquid-templated payload + timeout. Request
3180
+ */
3181
+ export const vAwsLambdaCallRequestWritable = v.object({
3182
+ timeout_ms: v.optional(v.pipe(v.number(), v.integer()))
3183
+ });
3184
+ /**
3185
+ * ActionAWSLambdaCallRequest
3186
+ */
3187
+ export const vActionAwsLambdaCallRequestWritable = v.intersect([vAwsLambdaCallRequestWritable, v.object({
3188
+ tool_call_type: v.picklist(['aws_lambda_request'])
3189
+ })]);
3190
+ /**
3191
+ * DataActivationClientAWSLambdaCallRequest
3192
+ */
3193
+ export const vDataActivationClientAwsLambdaCallRequestWritable = v.intersect([vAwsLambdaCallRequestWritable, v.object({
3194
+ tool_call_type: v.picklist(['aws_lambda_request'])
3195
+ })]);
3196
+ /**
3197
+ * BatchLogResponse
3198
+ *
3199
+ * Batch-level workflow run log — aggregation of per-event execution logs
3200
+ */
3201
+ export const vBatchLogResponseWritable = v.pipe(v.object({
3202
+ batch_id: v.string(),
3203
+ completed_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
3204
+ completed_wels: v.optional(v.pipe(v.number(), v.integer())),
3205
+ datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
3206
+ expected_events: v.optional(v.pipe(v.number(), v.integer())),
3207
+ failed_wels: v.optional(v.pipe(v.number(), v.integer())),
3208
+ id: v.optional(v.pipe(v.string(), v.uuid())),
3209
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
3210
+ last_refreshed_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
3211
+ started_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
3212
+ status: v.picklist([
3213
+ 'pending',
3214
+ 'completed',
3215
+ 'partial',
3216
+ 'failed'
3217
+ ]),
3218
+ tenant_id: v.optional(v.pipe(v.string(), v.uuid())),
3219
+ total_wels: v.optional(v.pipe(v.number(), v.integer())),
3220
+ workflow_id: v.optional(v.pipe(v.string(), v.uuid()))
3221
+ }), v.readonly());
3222
+ /**
3223
+ * BatchLogListResponse
3224
+ *
3225
+ * Paginated list of batch run logs
3226
+ */
3227
+ export const vBatchLogListResponseWritable = v.object({
3228
+ data: v.array(vBatchLogResponseWritable),
3229
+ meta: vPaginationMeta
3230
+ });
3231
+ /**
3232
+ * ActionSFTPCallRequest
3233
+ */
3234
+ export const vActionSftpCallRequestWritable = v.intersect([vSftpCallRequest, v.object({
3235
+ tool_call_type: v.picklist(['sftp_request'])
3236
+ })]);
3237
+ /**
3238
+ * ActionSQLQueryCallRequest
3239
+ */
3240
+ export const vActionSqlQueryCallRequestWritable = v.intersect([vSqlQueryCallRequestWritable, v.object({
3241
+ tool_call_type: v.picklist(['sql_query'])
3242
+ })]);
2171
3243
  /**
2172
3244
  * ToolSQLDatabaseResponse
2173
3245
  */
@@ -2204,6 +3276,12 @@ export const vGenericTableRequestWritable = v.object({
2204
3276
  description: v.optional(v.string()),
2205
3277
  title: v.optional(v.string())
2206
3278
  });
3279
+ /**
3280
+ * ActionRESTCallRequest
3281
+ */
3282
+ export const vActionRestCallRequestWritable = v.intersect([vRestCallRequestWritable, v.object({
3283
+ tool_call_type: v.picklist(['restapi_request'])
3284
+ })]);
2207
3285
  /**
2208
3286
  * GenericTableListResponse
2209
3287
  *
@@ -2219,6 +3297,15 @@ export const vGenericTableListResponseWritable = v.object({
2219
3297
  export const vToolSqlDatabaseRequestWritable = v.intersect([vSqlDatabaseRequestWritable, v.object({
2220
3298
  tool_body_type: v.picklist(['sql_database'])
2221
3299
  })]);
3300
+ /**
3301
+ * WorkflowLogListResponse
3302
+ *
3303
+ * Paginated list of workflow execution logs
3304
+ */
3305
+ export const vWorkflowLogListResponseWritable = v.object({
3306
+ data: v.array(vWorkflowLogResponseWritable),
3307
+ meta: vPaginationMeta
3308
+ });
2222
3309
  /**
2223
3310
  * S3CloudStorageR2Request
2224
3311
  */
@@ -2243,6 +3330,12 @@ export const vS3RequestWritable = v.object({
2243
3330
  export const vToolS3RequestWritable = v.intersect([vS3RequestWritable, v.object({
2244
3331
  tool_body_type: v.picklist(['s3'])
2245
3332
  })]);
3333
+ /**
3334
+ * ActionSQLQueryCallResponse
3335
+ */
3336
+ export const vActionSqlQueryCallResponseWritable = v.intersect([vSqlQueryCallResponseWritable, v.object({
3337
+ tool_call_type: v.picklist(['sql_query'])
3338
+ })]);
2246
3339
  /**
2247
3340
  * ConnectedAppListResponse
2248
3341
  *
@@ -2283,6 +3376,12 @@ export const vEmailRequestWritable = v.object({
2283
3376
  export const vToolEmailRequestWritable = v.intersect([vEmailRequestWritable, v.object({
2284
3377
  tool_body_type: v.picklist(['email'])
2285
3378
  })]);
3379
+ /**
3380
+ * DataActivationClientS3CallResponse
3381
+ */
3382
+ export const vDataActivationClientS3CallResponseWritable = v.intersect([vS3CallResponse, v.object({
3383
+ tool_call_type: v.picklist(['s3_request'])
3384
+ })]);
2286
3385
  /**
2287
3386
  * RESTAPIResponse
2288
3387
  *
@@ -2336,6 +3435,7 @@ export const vToolRestapiResponseWritable = v.intersect([vRestapiResponseWritabl
2336
3435
  */
2337
3436
  export const vSharePointResponseWritable = v.pipe(v.object({
2338
3437
  auth_method: v.picklist(['client_credentials', 'managed_identity']),
3438
+ azure_tenant_id: v.string(),
2339
3439
  client_id: v.nullish(v.string()),
2340
3440
  drive_id: v.nullish(v.string()),
2341
3441
  drive_path: v.nullish(v.string()),
@@ -2344,8 +3444,7 @@ export const vSharePointResponseWritable = v.pipe(v.object({
2344
3444
  'library',
2345
3445
  'list'
2346
3446
  ]),
2347
- site_url: v.nullish(v.string()),
2348
- tenant_id: v.string()
3447
+ site_url: v.nullish(v.string())
2349
3448
  }), v.readonly());
2350
3449
  /**
2351
3450
  * ToolSharePointResponse
@@ -2373,25 +3472,30 @@ export const vAiAgentRequestWritable = v.object({
2373
3472
  updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
2374
3473
  });
2375
3474
  /**
2376
- * RESTCallResponse
3475
+ * DataActivationClientRESTCallRequest
3476
+ */
3477
+ export const vDataActivationClientRestCallRequestWritable = v.intersect([vRestCallRequestWritable, v.object({
3478
+ tool_call_type: v.picklist(['restapi_request'])
3479
+ })]);
3480
+ /**
3481
+ * AWSLambdaCallResponse
2377
3482
  *
2378
- * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion. Title is RESTCall (not RESTAPIRequest) to avoid double-`Request` stacking in the library-generated parent-contextual sibling module names (e.g. ActionStatusUpdaterRESTCallRequest).
3483
+ * AWS Lambda invocation descriptor — Liquid-templated payload + timeout.
2379
3484
  */
2380
- export const vRestCallResponseWritable = v.pipe(v.object({
2381
- method: v.picklist([
2382
- 'head',
2383
- 'get',
2384
- 'put',
2385
- 'post',
2386
- 'delete',
2387
- 'patch'
2388
- ])
3485
+ export const vAwsLambdaCallResponseWritable = v.pipe(v.object({
3486
+ timeout_ms: v.optional(v.pipe(v.number(), v.integer()))
2389
3487
  }), v.readonly());
2390
3488
  /**
2391
- * ActionStatusUpdaterRESTCallResponse
3489
+ * DataActivationClientAWSLambdaCallResponse
2392
3490
  */
2393
- export const vActionStatusUpdaterRestCallResponseWritable = v.intersect([vRestCallResponseWritable, v.object({
2394
- updater_body_type: v.picklist(['restapi_request'])
3491
+ export const vDataActivationClientAwsLambdaCallResponseWritable = v.intersect([vAwsLambdaCallResponseWritable, v.object({
3492
+ tool_call_type: v.picklist(['aws_lambda_request'])
3493
+ })]);
3494
+ /**
3495
+ * ActionAWSLambdaCallResponse
3496
+ */
3497
+ export const vActionAwsLambdaCallResponseWritable = v.intersect([vAwsLambdaCallResponseWritable, v.object({
3498
+ tool_call_type: v.picklist(['aws_lambda_request'])
2395
3499
  })]);
2396
3500
  /**
2397
3501
  * ToolSQSRequest
@@ -2430,6 +3534,157 @@ export const vToolAwsLambdaRequestWritable = v.intersect([vAwsLambdaRequestWrita
2430
3534
  export const vToolSharePointRequestWritable = v.intersect([vSharePointRequestWritable, v.object({
2431
3535
  tool_body_type: v.picklist(['sharepoint'])
2432
3536
  })]);
3537
+ /**
3538
+ * InteroperabilityContractResponse
3539
+ *
3540
+ * Declarative execution spec binding a `(datalake, resource_type)` pair to the ingestion pipeline: filter → transform → mdm_input → resolve → upsert.
3541
+ */
3542
+ export const vInteroperabilityContractResponseWritable = v.pipe(v.object({
3543
+ data_activation_client_filter: v.nullish(v.string()),
3544
+ description: v.nullish(v.string()),
3545
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
3546
+ id: v.optional(v.pipe(v.string(), v.uuid())),
3547
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
3548
+ name: v.string(),
3549
+ resource_type: v.string(),
3550
+ slug: v.optional(v.string()),
3551
+ type: v.optional(v.picklist([
3552
+ 'system',
3553
+ 'custom',
3554
+ 'identity',
3555
+ 'null'
3556
+ ])),
3557
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
3558
+ }), v.readonly());
3559
+ /**
3560
+ * InteroperabilityContractListResponse
3561
+ *
3562
+ * Paginated list of interoperability contracts
3563
+ */
3564
+ export const vInteroperabilityContractListResponseWritable = v.object({
3565
+ data: v.array(vInteroperabilityContractResponseWritable),
3566
+ meta: vPaginationMeta
3567
+ });
3568
+ /**
3569
+ * ActionResponse
3570
+ *
3571
+ * Workflow action — executes when the decision table routes to this `decision_key`. Polymorphic `tool_call` payload is variant-specific via `tool_call_type` discriminator.
3572
+ */
3573
+ export const vActionResponseWritable = v.pipe(v.object({
3574
+ action_type: v.picklist([
3575
+ 'sms',
3576
+ 'email',
3577
+ 'voice',
3578
+ 'data_exchange'
3579
+ ]),
3580
+ action_window_end: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
3581
+ action_window_start: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
3582
+ connected_app_id: v.nullish(v.pipe(v.string(), v.uuid())),
3583
+ connected_app_metadata_template: v.nullish(v.string()),
3584
+ connected_app_route: v.nullish(v.string()),
3585
+ decision_key: v.string(),
3586
+ idempotency_template: v.string(),
3587
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
3588
+ runtime_filter: v.nullish(v.string()),
3589
+ tool_id: v.pipe(v.string(), v.uuid()),
3590
+ trigger_template: v.string()
3591
+ }), v.readonly());
3592
+ /**
3593
+ * TemplateConfigResponse
3594
+ *
3595
+ * Inline Liquid template configuration
3596
+ */
3597
+ export const vTemplateConfigResponseWritable = v.pipe(v.object({
3598
+ body: v.nullish(v.string()),
3599
+ path: v.nullish(v.string()),
3600
+ type: v.picklist([
3601
+ 'system',
3602
+ 'custom',
3603
+ 'identity',
3604
+ 'null'
3605
+ ])
3606
+ }), v.readonly());
3607
+ /**
3608
+ * EmailCallResponse
3609
+ *
3610
+ * Email tool-call config — Liquid-templated recipient, subject, and body.
3611
+ */
3612
+ export const vEmailCallResponseWritable = v.pipe(v.object({
3613
+ body: vTemplateConfigResponseWritable,
3614
+ subject: vTemplateConfigResponseWritable,
3615
+ to: vTemplateConfigResponseWritable
3616
+ }), v.readonly());
3617
+ /**
3618
+ * ActionEmailCallResponse
3619
+ */
3620
+ export const vActionEmailCallResponseWritable = v.intersect([vEmailCallResponseWritable, v.object({
3621
+ tool_call_type: v.picklist(['email_request'])
3622
+ })]);
3623
+ /**
3624
+ * RESTCallResponse
3625
+ *
3626
+ * REST API call descriptor — HTTP method, path, body, params, and pagination context template. Reused across ActionStatusUpdater polling, data activation clients, tool protocols, OAuth token fetching, and chat completion.
3627
+ */
3628
+ export const vRestCallResponseWritable = v.pipe(v.object({
3629
+ body: v.optional(vTemplateConfigResponseWritable),
3630
+ method: v.picklist([
3631
+ 'head',
3632
+ 'get',
3633
+ 'put',
3634
+ 'post',
3635
+ 'delete',
3636
+ 'patch'
3637
+ ]),
3638
+ pagination_context_template: vTemplateConfigResponseWritable,
3639
+ params: v.optional(vTemplateConfigResponseWritable),
3640
+ path: vTemplateConfigResponseWritable
3641
+ }), v.readonly());
3642
+ /**
3643
+ * ActionRESTCallResponse
3644
+ */
3645
+ export const vActionRestCallResponseWritable = v.intersect([vRestCallResponseWritable, v.object({
3646
+ tool_call_type: v.picklist(['restapi_request'])
3647
+ })]);
3648
+ /**
3649
+ * ActionStatusUpdaterRESTCallResponse
3650
+ */
3651
+ export const vActionStatusUpdaterRestCallResponseWritable = v.intersect([vRestCallResponseWritable, v.object({
3652
+ updater_body_type: v.picklist(['restapi_request'])
3653
+ })]);
3654
+ /**
3655
+ * DataActivationClientRESTCallResponse
3656
+ */
3657
+ export const vDataActivationClientRestCallResponseWritable = v.intersect([vRestCallResponseWritable, v.object({
3658
+ tool_call_type: v.picklist(['restapi_request'])
3659
+ })]);
3660
+ /**
3661
+ * SMSCallResponse
3662
+ *
3663
+ * SMS tool-call config — Liquid-templated recipient and body plus transactional/promotional category.
3664
+ */
3665
+ export const vSmsCallResponseWritable = v.pipe(v.object({
3666
+ body: vTemplateConfigResponseWritable,
3667
+ sms_type: v.optional(v.picklist(['transactional', 'promotional']), 'transactional'),
3668
+ to: vTemplateConfigResponseWritable
3669
+ }), v.readonly());
3670
+ /**
3671
+ * ActionSMSCallResponse
3672
+ */
3673
+ export const vActionSmsCallResponseWritable = v.intersect([vSmsCallResponseWritable, v.object({
3674
+ tool_call_type: v.picklist(['sms_request'])
3675
+ })]);
3676
+ /**
3677
+ * DataActivationClientSQLQueryCallResponse
3678
+ */
3679
+ export const vDataActivationClientSqlQueryCallResponseWritable = v.intersect([vSqlQueryCallResponseWritable, v.object({
3680
+ tool_call_type: v.picklist(['sql_query'])
3681
+ })]);
3682
+ /**
3683
+ * ActionSharePointExcelCallResponse
3684
+ */
3685
+ export const vActionSharePointExcelCallResponseWritable = v.intersect([vSharePointExcelCallResponse, v.object({
3686
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
3687
+ })]);
2433
3688
  /**
2434
3689
  * AWSLambdaResponse
2435
3690
  *
@@ -2454,6 +3709,86 @@ export const vAwsLambdaResponseWritable = v.pipe(v.object({
2454
3709
  export const vToolAwsLambdaResponseWritable = v.intersect([vAwsLambdaResponseWritable, v.object({
2455
3710
  tool_body_type: v.picklist(['aws_lambda'])
2456
3711
  })]);
3712
+ /**
3713
+ * DataActivationClientSharePointExcelCallRequest
3714
+ */
3715
+ export const vDataActivationClientSharePointExcelCallRequestWritable = v.intersect([vSharePointExcelCallRequest, v.object({
3716
+ tool_call_type: v.picklist(['microsoft_share_point_excel_request'])
3717
+ })]);
3718
+ /**
3719
+ * RunManuallyRequest
3720
+ *
3721
+ * Optional polymorphic tool_call override for this run. When omitted or empty, the DAC's persisted tool_call is used.
3722
+ */
3723
+ export const vRunManuallyRequestWritable = v.object({
3724
+ tool_call: v.nullish(v.union([
3725
+ v.intersect([v.object({
3726
+ tool_call_type: v.literal('DataActivationClientRESTCallRequestWritable')
3727
+ }), vDataActivationClientRestCallRequestWritable]),
3728
+ v.intersect([v.object({
3729
+ tool_call_type: v.literal('DataActivationClientSQLQueryCallRequestWritable')
3730
+ }), vDataActivationClientSqlQueryCallRequestWritable]),
3731
+ v.intersect([v.object({
3732
+ tool_call_type: v.literal('DataActivationClientSFTPCallRequestWritable')
3733
+ }), vDataActivationClientSftpCallRequestWritable]),
3734
+ v.intersect([v.object({
3735
+ tool_call_type: v.literal('DataActivationClientSharePointExcelCallRequestWritable')
3736
+ }), vDataActivationClientSharePointExcelCallRequestWritable]),
3737
+ v.intersect([v.object({
3738
+ tool_call_type: v.literal('DataActivationClientAWSLambdaCallRequestWritable')
3739
+ }), vDataActivationClientAwsLambdaCallRequestWritable]),
3740
+ v.intersect([v.object({
3741
+ tool_call_type: v.literal('DataActivationClientManualUploadCallRequest')
3742
+ }), vDataActivationClientManualUploadCallRequest]),
3743
+ v.intersect([v.object({
3744
+ tool_call_type: v.literal('DataActivationClientS3CallRequestWritable')
3745
+ }), vDataActivationClientS3CallRequestWritable])
3746
+ ]))
3747
+ });
3748
+ /**
3749
+ * DataActivationClientRequest
3750
+ *
3751
+ * Data Activation Client — binds a (datalake, data_source, tool) triple with a polymorphic `tool_call` config describing how to fetch data from the external system, plus optional cron schedule, row-level filter, downstream triggers, and interop contracts for row-level transformation. Request
3752
+ */
3753
+ export const vDataActivationClientRequestWritable = v.object({
3754
+ cron_expressions: v.optional(v.array(v.string()), []),
3755
+ data_source_id: v.pipe(v.string(), v.uuid()),
3756
+ description: v.nullish(v.string()),
3757
+ downstream_connection_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
3758
+ filter_config: v.optional(vTemplateConfigRequestWritable),
3759
+ interoperability_contract_ids: v.optional(v.array(v.pipe(v.string(), v.uuid())), []),
3760
+ loop_over: v.optional(v.array(v.picklist([
3761
+ 'services',
3762
+ 'locations',
3763
+ 'providers'
3764
+ ])), []),
3765
+ name: v.string(),
3766
+ row_filter: v.nullish(v.string()),
3767
+ tool_call: v.union([
3768
+ v.intersect([v.object({
3769
+ tool_call_type: v.literal('restapi_request')
3770
+ }), vDataActivationClientRestCallRequestWritable]),
3771
+ v.intersect([v.object({
3772
+ tool_call_type: v.literal('sql_query')
3773
+ }), vDataActivationClientSqlQueryCallRequestWritable]),
3774
+ v.intersect([v.object({
3775
+ tool_call_type: v.literal('sftp_request')
3776
+ }), vDataActivationClientSftpCallRequestWritable]),
3777
+ v.intersect([v.object({
3778
+ tool_call_type: v.literal('microsoft_share_point_excel_request')
3779
+ }), vDataActivationClientSharePointExcelCallRequestWritable]),
3780
+ v.intersect([v.object({
3781
+ tool_call_type: v.literal('aws_lambda_request')
3782
+ }), vDataActivationClientAwsLambdaCallRequestWritable]),
3783
+ v.intersect([v.object({
3784
+ tool_call_type: v.literal('manual_upload')
3785
+ }), vDataActivationClientManualUploadCallRequest]),
3786
+ v.intersect([v.object({
3787
+ tool_call_type: v.literal('s3_request')
3788
+ }), vDataActivationClientS3CallRequestWritable])
3789
+ ]),
3790
+ tool_id: v.pipe(v.string(), v.uuid())
3791
+ });
2457
3792
  /**
2458
3793
  * ActionStatusUpdaterResponse
2459
3794
  *
@@ -2476,6 +3811,34 @@ export const vActionStatusUpdaterListResponseWritable = v.object({
2476
3811
  data: v.array(vActionStatusUpdaterResponseWritable),
2477
3812
  meta: vPaginationMeta
2478
3813
  });
3814
+ /**
3815
+ * DataActivationClientLogResponse
3816
+ *
3817
+ * One log row per `(batch_id, dataset_table)`. A batch fans out into one log per dataset table — so a single run (one `batch_id`) produces multiple log rows, one per table the DAC writes into. `output_files` carries the merged NDJSON URI once `BatchMergeWorker` has finished; use `/logs/:id/download` to fetch a presigned URL.
3818
+ */
3819
+ export const vDataActivationClientLogResponseWritable = v.pipe(v.object({
3820
+ batch_id: v.pipe(v.string(), v.uuid()),
3821
+ dataset_table: v.string(),
3822
+ dataset_updated: v.optional(v.pipe(v.number(), v.integer()), 0),
3823
+ input_files: v.optional(v.array(v.string()), []),
3824
+ output_files: v.optional(v.array(v.string()), []),
3825
+ rows_ingested: v.optional(v.pipe(v.number(), v.integer()), 0)
3826
+ }), v.readonly());
3827
+ /**
3828
+ * DataActivationClientLogListResponse
3829
+ *
3830
+ * Paginated list of data activation client logs
3831
+ */
3832
+ export const vDataActivationClientLogListResponseWritable = v.object({
3833
+ data: v.array(vDataActivationClientLogResponseWritable),
3834
+ meta: vPaginationMeta
3835
+ });
3836
+ /**
3837
+ * ActionSMSCallRequest
3838
+ */
3839
+ export const vActionSmsCallRequestWritable = v.intersect([vSmsCallRequestWritable, v.object({
3840
+ tool_call_type: v.picklist(['sms_request'])
3841
+ })]);
2479
3842
  /**
2480
3843
  * CloudflarePagesConfigResponse
2481
3844
  *
@@ -2512,38 +3875,113 @@ export const vToolCloudWatchLogGroupResponseWritable = v.intersect([vCloudWatchL
2512
3875
  tool_body_type: v.picklist(['cloud_watch_log_group'])
2513
3876
  })]);
2514
3877
  /**
2515
- * ToolRESTAPIRequest
3878
+ * EmailCallRequest
3879
+ *
3880
+ * Email tool-call config — Liquid-templated recipient, subject, and body. Request
2516
3881
  */
2517
- export const vToolRestapiRequestWritable = v.intersect([vRestapiRequestWritable, v.object({
2518
- tool_body_type: v.picklist(['rest_api'])
3882
+ export const vEmailCallRequestWritable = v.object({
3883
+ body: vTemplateConfigRequestWritable,
3884
+ subject: vTemplateConfigRequestWritable,
3885
+ to: vTemplateConfigRequestWritable
3886
+ });
3887
+ /**
3888
+ * ActionEmailCallRequest
3889
+ */
3890
+ export const vActionEmailCallRequestWritable = v.intersect([vEmailCallRequestWritable, v.object({
3891
+ tool_call_type: v.picklist(['email_request'])
2519
3892
  })]);
2520
3893
  /**
2521
- * ToolRequest
3894
+ * ActionRequest
2522
3895
  *
2523
- * Toola configurable capability reference for external services. Request
3896
+ * Workflow action executes when the decision table routes to this `decision_key`. Polymorphic `tool_call` payload is variant-specific via `tool_call_type` discriminator. Request
2524
3897
  */
2525
- export const vToolRequestWritable = v.object({
2526
- body: v.optional(v.union([
3898
+ export const vActionRequestWritable = v.object({
3899
+ action_type: v.picklist([
3900
+ 'sms',
3901
+ 'email',
3902
+ 'voice',
3903
+ 'data_exchange'
3904
+ ]),
3905
+ action_window_end: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
3906
+ action_window_start: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(0), v.maxValue(23))),
3907
+ connected_app_id: v.nullish(v.pipe(v.string(), v.uuid())),
3908
+ connected_app_metadata_template: v.nullish(v.string()),
3909
+ connected_app_route: v.nullish(v.string()),
3910
+ decision_key: v.string(),
3911
+ idempotency_template: v.string(),
3912
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
3913
+ runtime_filter: v.nullish(v.string()),
3914
+ tool_call: v.union([
2527
3915
  v.intersect([v.object({
2528
- tool_body_type: v.literal('email')
2529
- }), vToolEmailRequestWritable]),
3916
+ tool_call_type: v.literal('sms_request')
3917
+ }), vActionSmsCallRequestWritable]),
2530
3918
  v.intersect([v.object({
2531
- tool_body_type: v.literal('sns')
2532
- }), vToolSnsRequestWritable]),
3919
+ tool_call_type: v.literal('email_request')
3920
+ }), vActionEmailCallRequestWritable]),
2533
3921
  v.intersect([v.object({
2534
- tool_body_type: v.literal('rest_api')
2535
- }), vToolRestapiRequestWritable]),
3922
+ tool_call_type: v.literal('sql_query')
3923
+ }), vActionSqlQueryCallRequestWritable]),
2536
3924
  v.intersect([v.object({
2537
- tool_body_type: v.literal('s3')
2538
- }), vToolS3RequestWritable]),
3925
+ tool_call_type: v.literal('restapi_request')
3926
+ }), vActionRestCallRequestWritable]),
2539
3927
  v.intersect([v.object({
2540
- tool_body_type: v.literal('aws_lambda')
2541
- }), vToolAwsLambdaRequestWritable]),
3928
+ tool_call_type: v.literal('sftp_request')
3929
+ }), vActionSftpCallRequestWritable]),
2542
3930
  v.intersect([v.object({
2543
- tool_body_type: v.literal('sql_database')
2544
- }), vToolSqlDatabaseRequestWritable]),
3931
+ tool_call_type: v.literal('microsoft_share_point_excel_request')
3932
+ }), vActionSharePointExcelCallRequestWritable]),
2545
3933
  v.intersect([v.object({
2546
- tool_body_type: v.literal('sqs')
3934
+ tool_call_type: v.literal('aws_lambda_request')
3935
+ }), vActionAwsLambdaCallRequestWritable]),
3936
+ v.intersect([v.object({
3937
+ tool_call_type: v.literal('manual_upload')
3938
+ }), vActionManualUploadCallRequest])
3939
+ ]),
3940
+ tool_id: v.pipe(v.string(), v.uuid()),
3941
+ trigger_template: v.string()
3942
+ });
3943
+ /**
3944
+ * DataActivationClientListResponse
3945
+ *
3946
+ * Paginated list of data activation clients
3947
+ */
3948
+ export const vDataActivationClientListResponseWritable = v.object({
3949
+ data: v.array(vDataActivationClientResponseWritable),
3950
+ meta: vPaginationMeta
3951
+ });
3952
+ /**
3953
+ * ToolRESTAPIRequest
3954
+ */
3955
+ export const vToolRestapiRequestWritable = v.intersect([vRestapiRequestWritable, v.object({
3956
+ tool_body_type: v.picklist(['rest_api'])
3957
+ })]);
3958
+ /**
3959
+ * ToolRequest
3960
+ *
3961
+ * Tool — a configurable capability reference for external services. Request
3962
+ */
3963
+ export const vToolRequestWritable = v.object({
3964
+ body: v.optional(v.union([
3965
+ v.intersect([v.object({
3966
+ tool_body_type: v.literal('email')
3967
+ }), vToolEmailRequestWritable]),
3968
+ v.intersect([v.object({
3969
+ tool_body_type: v.literal('sns')
3970
+ }), vToolSnsRequestWritable]),
3971
+ v.intersect([v.object({
3972
+ tool_body_type: v.literal('rest_api')
3973
+ }), vToolRestapiRequestWritable]),
3974
+ v.intersect([v.object({
3975
+ tool_body_type: v.literal('s3')
3976
+ }), vToolS3RequestWritable]),
3977
+ v.intersect([v.object({
3978
+ tool_body_type: v.literal('aws_lambda')
3979
+ }), vToolAwsLambdaRequestWritable]),
3980
+ v.intersect([v.object({
3981
+ tool_body_type: v.literal('sql_database')
3982
+ }), vToolSqlDatabaseRequestWritable]),
3983
+ v.intersect([v.object({
3984
+ tool_body_type: v.literal('sqs')
2547
3985
  }), vToolSqsRequestWritable]),
2548
3986
  v.intersect([v.object({
2549
3987
  tool_body_type: v.literal('sftp')
@@ -2632,469 +4070,2433 @@ export const vDatalakeRequestWritable = v.object({
2632
4070
  slug: v.optional(v.string()),
2633
4071
  unregulated_db_writer_pass: v.optional(v.string())
2634
4072
  });
2635
- export const vPlatformApiPingControllerPingData = v.object({
2636
- body: v.optional(v.never()),
2637
- path: v.optional(v.never()),
2638
- query: v.optional(v.never())
2639
- });
2640
4073
  /**
2641
- * API is healthy
4074
+ * ContextDatasetResponse
4075
+ *
4076
+ * Context dataset for a workflow — declares which records the context builder should load (and under what filter) before the enrichment and decision stages.
4077
+ */
4078
+ export const vContextDatasetResponseWritable = v.pipe(v.object({
4079
+ dataset_type: v.string(),
4080
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
4081
+ limit: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
4082
+ position: v.optional(v.pipe(v.number(), v.integer()), 0),
4083
+ where_clause: v.nullish(v.string())
4084
+ }), v.readonly());
4085
+ /**
4086
+ * AgenticWorkflowRequest
4087
+ *
4088
+ * Agentic Workflow — event-driven automation pipeline Request
2642
4089
  */
2643
- export const vPlatformApiPingControllerPingResponse = vPingResponse;
2644
- export const vPlatformApiDatasetControllerSearchData = v.object({
2645
- body: v.optional(v.never()),
2646
- path: v.object({
2647
- dataset: v.string()
2648
- }),
2649
- query: v.optional(v.object({
2650
- datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
2651
- page: v.optional(v.pipe(v.number(), v.integer())),
2652
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2653
- }))
4090
+ export const vAgenticWorkflowRequestWritable = v.object({
4091
+ actions: v.optional(v.array(vActionResponseWritable)),
4092
+ ai_agents: v.optional(v.array(v.object({
4093
+ ai_agent_id: v.pipe(v.string(), v.uuid()),
4094
+ position: v.optional(v.pipe(v.number(), v.integer()))
4095
+ }))),
4096
+ context_datasets: v.optional(v.array(vContextDatasetResponseWritable)),
4097
+ dataset_type: v.string(),
4098
+ description: v.string(),
4099
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
4100
+ id: v.optional(v.pipe(v.string(), v.uuid())),
4101
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
4102
+ name: v.string(),
4103
+ skip_mdm_resolution: v.optional(v.boolean()),
4104
+ status: v.picklist(['live', 'draft']),
4105
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
2654
4106
  });
2655
4107
  /**
2656
- * Dataset search results
4108
+ * AgenticWorkflowResponse
4109
+ *
4110
+ * Agentic Workflow — event-driven automation pipeline
2657
4111
  */
2658
- export const vPlatformApiDatasetControllerSearchResponse = vDatasetSearchResponse;
2659
- export const vPlatformApiSessionControllerDeleteData = v.object({
2660
- body: v.optional(v.never()),
2661
- path: v.optional(v.never()),
2662
- query: v.optional(v.never())
4112
+ export const vAgenticWorkflowResponseWritable = v.pipe(v.object({
4113
+ actions: v.optional(v.array(vActionResponseWritable)),
4114
+ context_datasets: v.optional(v.array(vContextDatasetResponseWritable)),
4115
+ datalake: v.optional(vDatalakeResponseWritable),
4116
+ dataset_type: v.string(),
4117
+ description: v.string(),
4118
+ generic_table_id: v.nullish(v.pipe(v.string(), v.uuid())),
4119
+ id: v.optional(v.pipe(v.string(), v.uuid())),
4120
+ inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
4121
+ name: v.string(),
4122
+ skip_mdm_resolution: v.optional(v.boolean()),
4123
+ status: v.picklist(['live', 'draft']),
4124
+ updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
4125
+ }), v.readonly());
4126
+ /**
4127
+ * AgenticWorkflowListResponse
4128
+ *
4129
+ * Paginated list of agentic workflows
4130
+ */
4131
+ export const vAgenticWorkflowListResponseWritable = v.object({
4132
+ data: v.array(vAgenticWorkflowResponseWritable),
4133
+ meta: vPaginationMeta
2663
4134
  });
2664
- export const vPlatformApiSessionControllerCreateData = v.object({
2665
- body: vSessionRequest,
2666
- path: v.optional(v.never()),
2667
- query: v.optional(v.never())
4135
+ /**
4136
+ * Page resolution request
4137
+ */
4138
+ export const vPlatformApiConnectedAppControllerResolvePageBody = vResolvePageRequest;
4139
+ export const vPlatformApiConnectedAppControllerResolvePagePath = v.object({
4140
+ tenant_slug: v.string(),
4141
+ slug: v.string()
2668
4142
  });
2669
4143
  /**
2670
- * Session created
4144
+ * Resolved page details
2671
4145
  */
2672
- export const vPlatformApiSessionControllerCreateResponse = vSessionResponse;
2673
- export const vPlatformApiSessionControllerVerifyData = v.object({
2674
- body: v.optional(v.never()),
2675
- path: v.optional(v.never()),
2676
- query: v.optional(v.never())
4146
+ export const vPlatformApiConnectedAppControllerResolvePageResponse = vResolvePageResponse;
4147
+ /**
4148
+ * Raw source row
4149
+ */
4150
+ export const vPlatformApiInteroperabilityContractControllerRunBody = vInteroperabilityRunRequest;
4151
+ export const vPlatformApiInteroperabilityContractControllerRunPath = v.object({
4152
+ tenant_slug: v.string(),
4153
+ datalake_slug: v.string(),
4154
+ slug: v.string()
4155
+ });
4156
+ export const vPlatformApiInteroperabilityContractControllerRunQuery = v.object({
4157
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4158
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4159
+ order_by: v.optional(v.array(v.string())),
4160
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4161
+ filters: v.optional(v.array(v.object({
4162
+ field: v.string(),
4163
+ op: v.optional(v.picklist([
4164
+ '==',
4165
+ '!=',
4166
+ '<',
4167
+ '<=',
4168
+ '>',
4169
+ '>=',
4170
+ 'empty',
4171
+ 'not_empty',
4172
+ 'like',
4173
+ 'ilike',
4174
+ 'like_and',
4175
+ 'like_or',
4176
+ 'ilike_and',
4177
+ 'ilike_or',
4178
+ 'in',
4179
+ 'not_in',
4180
+ 'contains',
4181
+ 'not_contains'
4182
+ ])),
4183
+ value: v.unknown()
4184
+ })))
2677
4185
  });
2678
4186
  /**
2679
- * Session details
4187
+ * Pipeline output
2680
4188
  */
2681
- export const vPlatformApiSessionControllerVerifyResponse = vSessionResponse;
2682
- export const vPlatformApiActionStatusUpdaterControllerIndexData = v.object({
2683
- body: v.optional(v.never()),
2684
- path: v.object({
2685
- tenant_slug: v.string()
2686
- }),
2687
- query: v.optional(v.object({
2688
- page: v.optional(v.pipe(v.number(), v.integer())),
2689
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2690
- }))
4189
+ export const vPlatformApiInteroperabilityContractControllerRunResponse = vInteroperabilityRunResponse;
4190
+ export const vPlatformApiActionStatusUpdaterControllerIndexPath = v.object({
4191
+ tenant_slug: v.string()
4192
+ });
4193
+ export const vPlatformApiActionStatusUpdaterControllerIndexQuery = v.object({
4194
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4195
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4196
+ order_by: v.optional(v.array(v.string())),
4197
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4198
+ filters: v.optional(v.array(v.object({
4199
+ field: v.string(),
4200
+ op: v.optional(v.picklist([
4201
+ '==',
4202
+ '!=',
4203
+ '<',
4204
+ '<=',
4205
+ '>',
4206
+ '>=',
4207
+ 'empty',
4208
+ 'not_empty',
4209
+ 'like',
4210
+ 'ilike',
4211
+ 'like_and',
4212
+ 'like_or',
4213
+ 'ilike_and',
4214
+ 'ilike_or',
4215
+ 'in',
4216
+ 'not_in',
4217
+ 'contains',
4218
+ 'not_contains'
4219
+ ])),
4220
+ value: v.unknown()
4221
+ })))
2691
4222
  });
2692
4223
  /**
2693
4224
  * Action status updater list
2694
4225
  */
2695
4226
  export const vPlatformApiActionStatusUpdaterControllerIndexResponse = vActionStatusUpdaterListResponse;
2696
- export const vPlatformApiActionStatusUpdaterControllerCreateData = v.object({
2697
- body: v.optional(vActionStatusUpdaterRequestWritable),
2698
- path: v.object({
2699
- tenant_slug: v.string()
2700
- }),
2701
- query: v.optional(v.never())
4227
+ /**
4228
+ * Full Action Status Updater resource (PUT semantics — all fields required)
4229
+ */
4230
+ export const vPlatformApiActionStatusUpdaterControllerCreateBody = vActionStatusUpdaterRequestWritable;
4231
+ export const vPlatformApiActionStatusUpdaterControllerCreatePath = v.object({
4232
+ tenant_slug: v.string()
4233
+ });
4234
+ export const vPlatformApiActionStatusUpdaterControllerCreateQuery = v.object({
4235
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4236
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4237
+ order_by: v.optional(v.array(v.string())),
4238
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4239
+ filters: v.optional(v.array(v.object({
4240
+ field: v.string(),
4241
+ op: v.optional(v.picklist([
4242
+ '==',
4243
+ '!=',
4244
+ '<',
4245
+ '<=',
4246
+ '>',
4247
+ '>=',
4248
+ 'empty',
4249
+ 'not_empty',
4250
+ 'like',
4251
+ 'ilike',
4252
+ 'like_and',
4253
+ 'like_or',
4254
+ 'ilike_and',
4255
+ 'ilike_or',
4256
+ 'in',
4257
+ 'not_in',
4258
+ 'contains',
4259
+ 'not_contains'
4260
+ ])),
4261
+ value: v.unknown()
4262
+ })))
2702
4263
  });
2703
4264
  /**
2704
4265
  * Action status updater created
2705
4266
  */
2706
4267
  export const vPlatformApiActionStatusUpdaterControllerCreateResponse = vActionStatusUpdaterResponse;
2707
- export const vPlatformApiActionStatusUpdaterControllerUpdateData = v.object({
2708
- body: v.optional(vActionStatusUpdaterRequestWritable),
2709
- path: v.object({
2710
- tenant_slug: v.string(),
2711
- id: v.pipe(v.string(), v.uuid())
2712
- }),
2713
- query: v.optional(v.never())
4268
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexPath = v.object({
4269
+ tenant_slug: v.string(),
4270
+ workflow_slug: v.string()
4271
+ });
4272
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexQuery = v.object({
4273
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4274
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4275
+ order_by: v.optional(v.array(v.string())),
4276
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4277
+ filters: v.optional(v.array(v.object({
4278
+ field: v.string(),
4279
+ op: v.optional(v.picklist([
4280
+ '==',
4281
+ '!=',
4282
+ '<',
4283
+ '<=',
4284
+ '>',
4285
+ '>=',
4286
+ 'empty',
4287
+ 'not_empty',
4288
+ 'like',
4289
+ 'ilike',
4290
+ 'like_and',
4291
+ 'like_or',
4292
+ 'ilike_and',
4293
+ 'ilike_or',
4294
+ 'in',
4295
+ 'not_in',
4296
+ 'contains',
4297
+ 'not_contains'
4298
+ ])),
4299
+ value: v.unknown()
4300
+ })))
2714
4301
  });
2715
4302
  /**
2716
- * Action status updater updated
4303
+ * Batch log list
2717
4304
  */
2718
- export const vPlatformApiActionStatusUpdaterControllerUpdateResponse = vActionStatusUpdaterResponse;
2719
- export const vPlatformApiWorkflowControllerExecuteData = v.object({
2720
- body: vExecuteActionRequest,
2721
- path: v.object({
2722
- tenant_slug: v.string(),
2723
- workflow_slug: v.string()
2724
- }),
2725
- query: v.optional(v.never())
4305
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexResponse = vBatchLogListResponse;
4306
+ export const vPlatformApiDatasetControllerSearchPath = v.object({
4307
+ dataset: v.string()
4308
+ });
4309
+ export const vPlatformApiDatasetControllerSearchQuery = v.object({
4310
+ datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
4311
+ page: v.optional(v.pipe(v.number(), v.integer())),
4312
+ page_size: v.optional(v.pipe(v.number(), v.integer()))
2726
4313
  });
2727
4314
  /**
2728
- * Execution result
4315
+ * Dataset search results
2729
4316
  */
2730
- export const vPlatformApiWorkflowControllerExecuteResponse = vExecuteActionResponse;
2731
- export const vPlatformApiConnectedAppControllerResolvePageData = v.object({
2732
- body: vResolvePageRequest,
2733
- path: v.object({
2734
- tenant_slug: v.string(),
2735
- slug: v.string()
2736
- }),
2737
- query: v.optional(v.never())
4317
+ export const vPlatformApiDatasetControllerSearchResponse = vDatasetSearchResponse;
4318
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexPath = v.object({
4319
+ tenant_slug: v.string(),
4320
+ workflow_slug: v.string()
4321
+ });
4322
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexQuery = v.object({
4323
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4324
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4325
+ order_by: v.optional(v.array(v.string())),
4326
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4327
+ filters: v.optional(v.array(v.object({
4328
+ field: v.string(),
4329
+ op: v.optional(v.picklist([
4330
+ '==',
4331
+ '!=',
4332
+ '<',
4333
+ '<=',
4334
+ '>',
4335
+ '>=',
4336
+ 'empty',
4337
+ 'not_empty',
4338
+ 'like',
4339
+ 'ilike',
4340
+ 'like_and',
4341
+ 'like_or',
4342
+ 'ilike_and',
4343
+ 'ilike_or',
4344
+ 'in',
4345
+ 'not_in',
4346
+ 'contains',
4347
+ 'not_contains'
4348
+ ])),
4349
+ value: v.unknown()
4350
+ })))
2738
4351
  });
2739
4352
  /**
2740
- * Resolved page details
4353
+ * Execution log list
2741
4354
  */
2742
- export const vPlatformApiConnectedAppControllerResolvePageResponse = vResolvePageResponse;
2743
- export const vPlatformApiConnectedAppControllerUpdatePageData = v.object({
2744
- body: vUpdatePageRequest,
2745
- path: v.object({
2746
- tenant_slug: v.string(),
2747
- slug: v.string()
2748
- }),
2749
- query: v.optional(v.never())
4355
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexResponse = vWorkflowLogListResponse;
4356
+ export const vPlatformApiDataActivationClientControllerLogDownloadPath = v.object({
4357
+ tenant_slug: v.string(),
4358
+ datalake_slug: v.string(),
4359
+ slug: v.string(),
4360
+ id: v.pipe(v.string(), v.uuid())
4361
+ });
4362
+ export const vPlatformApiDataActivationClientControllerLogDownloadQuery = v.object({
4363
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4364
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4365
+ order_by: v.optional(v.array(v.string())),
4366
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4367
+ filters: v.optional(v.array(v.object({
4368
+ field: v.string(),
4369
+ op: v.optional(v.picklist([
4370
+ '==',
4371
+ '!=',
4372
+ '<',
4373
+ '<=',
4374
+ '>',
4375
+ '>=',
4376
+ 'empty',
4377
+ 'not_empty',
4378
+ 'like',
4379
+ 'ilike',
4380
+ 'like_and',
4381
+ 'like_or',
4382
+ 'ilike_and',
4383
+ 'ilike_or',
4384
+ 'in',
4385
+ 'not_in',
4386
+ 'contains',
4387
+ 'not_contains'
4388
+ ])),
4389
+ value: v.unknown()
4390
+ })))
2750
4391
  });
2751
4392
  /**
2752
- * Updated message details
4393
+ * Presigned URL
2753
4394
  */
2754
- export const vPlatformApiConnectedAppControllerUpdatePageResponse = vUpdatePageResponse;
2755
- export const vPlatformApiDataActivationClientControllerIngestData = v.object({
2756
- body: vIngestRequest,
2757
- path: v.object({
2758
- tenant_slug: v.string(),
2759
- slug: v.string()
2760
- }),
2761
- query: v.optional(v.never())
4395
+ export const vPlatformApiDataActivationClientControllerLogDownloadResponse = vDownloadUrlResponse;
4396
+ export const vPlatformApiConnectedAppMgmtControllerShowPath = v.object({
4397
+ tenant_slug: v.string(),
4398
+ datalake_slug: v.string(),
4399
+ id: v.pipe(v.string(), v.uuid())
4400
+ });
4401
+ export const vPlatformApiConnectedAppMgmtControllerShowQuery = v.object({
4402
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4403
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4404
+ order_by: v.optional(v.array(v.string())),
4405
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4406
+ filters: v.optional(v.array(v.object({
4407
+ field: v.string(),
4408
+ op: v.optional(v.picklist([
4409
+ '==',
4410
+ '!=',
4411
+ '<',
4412
+ '<=',
4413
+ '>',
4414
+ '>=',
4415
+ 'empty',
4416
+ 'not_empty',
4417
+ 'like',
4418
+ 'ilike',
4419
+ 'like_and',
4420
+ 'like_or',
4421
+ 'ilike_and',
4422
+ 'ilike_or',
4423
+ 'in',
4424
+ 'not_in',
4425
+ 'contains',
4426
+ 'not_contains'
4427
+ ])),
4428
+ value: v.unknown()
4429
+ })))
2762
4430
  });
2763
4431
  /**
2764
- * Ingest response
4432
+ * Connected app
2765
4433
  */
2766
- export const vPlatformApiDataActivationClientControllerIngestResponse = vIngestResponse;
2767
- export const vPlatformApiDataActivationClientControllerIngestFileData = v.object({
2768
- body: vIngestFileRequest,
2769
- path: v.object({
2770
- tenant_slug: v.string(),
2771
- slug: v.string()
2772
- }),
2773
- query: v.optional(v.never())
4434
+ export const vPlatformApiConnectedAppMgmtControllerShowResponse = vConnectedAppResponse;
4435
+ /**
4436
+ * Full Connected App resource (PUT semantics — all fields required)
4437
+ */
4438
+ export const vPlatformApiConnectedAppMgmtControllerUpdateBody = vConnectedAppRequestWritable;
4439
+ export const vPlatformApiConnectedAppMgmtControllerUpdatePath = v.object({
4440
+ tenant_slug: v.string(),
4441
+ datalake_slug: v.string(),
4442
+ id: v.pipe(v.string(), v.uuid())
4443
+ });
4444
+ export const vPlatformApiConnectedAppMgmtControllerUpdateQuery = v.object({
4445
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4446
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4447
+ order_by: v.optional(v.array(v.string())),
4448
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4449
+ filters: v.optional(v.array(v.object({
4450
+ field: v.string(),
4451
+ op: v.optional(v.picklist([
4452
+ '==',
4453
+ '!=',
4454
+ '<',
4455
+ '<=',
4456
+ '>',
4457
+ '>=',
4458
+ 'empty',
4459
+ 'not_empty',
4460
+ 'like',
4461
+ 'ilike',
4462
+ 'like_and',
4463
+ 'like_or',
4464
+ 'ilike_and',
4465
+ 'ilike_or',
4466
+ 'in',
4467
+ 'not_in',
4468
+ 'contains',
4469
+ 'not_contains'
4470
+ ])),
4471
+ value: v.unknown()
4472
+ })))
2774
4473
  });
2775
4474
  /**
2776
- * Ingest file response
4475
+ * Connected app updated
2777
4476
  */
2778
- export const vPlatformApiDataActivationClientControllerIngestFileResponse = vIngestFileResponse;
2779
- export const vPlatformApiDatalakeControllerIndexData = v.object({
2780
- body: v.optional(v.never()),
2781
- path: v.object({
2782
- tenant_slug: v.string()
2783
- }),
2784
- query: v.optional(v.object({
2785
- page: v.optional(v.pipe(v.number(), v.integer())),
2786
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2787
- }))
4477
+ export const vPlatformApiConnectedAppMgmtControllerUpdateResponse = vConnectedAppResponse;
4478
+ /**
4479
+ * Verification attributes
4480
+ */
4481
+ export const vPlatformApiMdmControllerVerifyBody = vMdmVerifyRequest;
4482
+ export const vPlatformApiMdmControllerVerifyPath = v.object({
4483
+ tenant_slug: v.string(),
4484
+ datalake_slug: v.string()
2788
4485
  });
2789
4486
  /**
2790
- * Datalake list
4487
+ * Verification result
2791
4488
  */
2792
- export const vPlatformApiDatalakeControllerIndexResponse = vDatalakeListResponse;
2793
- export const vPlatformApiDatalakeControllerCreateData = v.object({
2794
- body: v.optional(vDatalakeRequestWritable),
2795
- path: v.object({
2796
- tenant_slug: v.string()
2797
- }),
2798
- query: v.optional(v.never())
4489
+ export const vPlatformApiMdmControllerVerifyResponse = vMdmVerifyResponse;
4490
+ export const vPlatformApiDataActivationClientControllerIndexPath = v.object({
4491
+ tenant_slug: v.string(),
4492
+ datalake_slug: v.string()
4493
+ });
4494
+ export const vPlatformApiDataActivationClientControllerIndexQuery = v.object({
4495
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4496
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4497
+ order_by: v.optional(v.array(v.string())),
4498
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4499
+ filters: v.optional(v.array(v.object({
4500
+ field: v.string(),
4501
+ op: v.optional(v.picklist([
4502
+ '==',
4503
+ '!=',
4504
+ '<',
4505
+ '<=',
4506
+ '>',
4507
+ '>=',
4508
+ 'empty',
4509
+ 'not_empty',
4510
+ 'like',
4511
+ 'ilike',
4512
+ 'like_and',
4513
+ 'like_or',
4514
+ 'ilike_and',
4515
+ 'ilike_or',
4516
+ 'in',
4517
+ 'not_in',
4518
+ 'contains',
4519
+ 'not_contains'
4520
+ ])),
4521
+ value: v.unknown()
4522
+ })))
2799
4523
  });
2800
4524
  /**
2801
- * Datalake created
4525
+ * DAC list
2802
4526
  */
2803
- export const vPlatformApiDatalakeControllerCreateResponse = vDatalakeResponse;
2804
- export const vPlatformApiAiAgentControllerIndexData = v.object({
2805
- body: v.optional(v.never()),
2806
- path: v.object({
2807
- tenant_slug: v.string(),
2808
- datalake_slug: v.string()
2809
- }),
2810
- query: v.optional(v.object({
2811
- page: v.optional(v.pipe(v.number(), v.integer())),
2812
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2813
- }))
4527
+ export const vPlatformApiDataActivationClientControllerIndexResponse = vDataActivationClientListResponse;
4528
+ /**
4529
+ * Full DAC resource (all required fields must be present)
4530
+ */
4531
+ export const vPlatformApiDataActivationClientControllerCreateBody = vDataActivationClientRequestWritable;
4532
+ export const vPlatformApiDataActivationClientControllerCreatePath = v.object({
4533
+ tenant_slug: v.string(),
4534
+ datalake_slug: v.string()
4535
+ });
4536
+ export const vPlatformApiDataActivationClientControllerCreateQuery = v.object({
4537
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4538
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4539
+ order_by: v.optional(v.array(v.string())),
4540
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4541
+ filters: v.optional(v.array(v.object({
4542
+ field: v.string(),
4543
+ op: v.optional(v.picklist([
4544
+ '==',
4545
+ '!=',
4546
+ '<',
4547
+ '<=',
4548
+ '>',
4549
+ '>=',
4550
+ 'empty',
4551
+ 'not_empty',
4552
+ 'like',
4553
+ 'ilike',
4554
+ 'like_and',
4555
+ 'like_or',
4556
+ 'ilike_and',
4557
+ 'ilike_or',
4558
+ 'in',
4559
+ 'not_in',
4560
+ 'contains',
4561
+ 'not_contains'
4562
+ ])),
4563
+ value: v.unknown()
4564
+ })))
2814
4565
  });
2815
4566
  /**
2816
- * AI agent list
4567
+ * DAC created
2817
4568
  */
2818
- export const vPlatformApiAiAgentControllerIndexResponse = vAiAgentListResponse;
2819
- export const vPlatformApiAiAgentControllerCreateData = v.object({
2820
- body: v.optional(vAiAgentRequestWritable),
2821
- path: v.object({
2822
- tenant_slug: v.string(),
2823
- datalake_slug: v.string()
2824
- }),
2825
- query: v.optional(v.never())
4569
+ export const vPlatformApiDataActivationClientControllerCreateResponse = vDataActivationClientResponse;
4570
+ export const vPlatformApiConnectedAppMgmtControllerSyncRoutesPath = v.object({
4571
+ tenant_slug: v.string(),
4572
+ datalake_slug: v.string(),
4573
+ id: v.pipe(v.string(), v.uuid())
4574
+ });
4575
+ export const vPlatformApiConnectedAppMgmtControllerSyncRoutesQuery = v.object({
4576
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4577
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4578
+ order_by: v.optional(v.array(v.string())),
4579
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4580
+ filters: v.optional(v.array(v.object({
4581
+ field: v.string(),
4582
+ op: v.optional(v.picklist([
4583
+ '==',
4584
+ '!=',
4585
+ '<',
4586
+ '<=',
4587
+ '>',
4588
+ '>=',
4589
+ 'empty',
4590
+ 'not_empty',
4591
+ 'like',
4592
+ 'ilike',
4593
+ 'like_and',
4594
+ 'like_or',
4595
+ 'ilike_and',
4596
+ 'ilike_or',
4597
+ 'in',
4598
+ 'not_in',
4599
+ 'contains',
4600
+ 'not_contains'
4601
+ ])),
4602
+ value: v.unknown()
4603
+ })))
2826
4604
  });
2827
4605
  /**
2828
- * AI agent created
4606
+ * Route sync enqueued
2829
4607
  */
2830
- export const vPlatformApiAiAgentControllerCreateResponse = vAiAgentResponse;
2831
- export const vPlatformApiAiAgentControllerDeleteData = v.object({
2832
- body: v.optional(v.never()),
2833
- path: v.object({
2834
- tenant_slug: v.string(),
2835
- datalake_slug: v.string(),
2836
- id: v.pipe(v.string(), v.uuid())
2837
- }),
2838
- query: v.optional(v.never())
4608
+ export const vPlatformApiConnectedAppMgmtControllerSyncRoutesResponse = vSyncRoutesResponse;
4609
+ /**
4610
+ * API is healthy
4611
+ */
4612
+ export const vPlatformApiPingControllerPingResponse = vPingResponse;
4613
+ export const vPlatformApiAgenticWorkflowControllerMetadataPath = v.object({
4614
+ tenant_slug: v.string(),
4615
+ datalake_slug: v.string(),
4616
+ id: v.pipe(v.string(), v.uuid())
4617
+ });
4618
+ export const vPlatformApiAgenticWorkflowControllerMetadataQuery = v.object({
4619
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4620
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4621
+ order_by: v.optional(v.array(v.string())),
4622
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4623
+ filters: v.optional(v.array(v.object({
4624
+ field: v.string(),
4625
+ op: v.optional(v.picklist([
4626
+ '==',
4627
+ '!=',
4628
+ '<',
4629
+ '<=',
4630
+ '>',
4631
+ '>=',
4632
+ 'empty',
4633
+ 'not_empty',
4634
+ 'like',
4635
+ 'ilike',
4636
+ 'like_and',
4637
+ 'like_or',
4638
+ 'ilike_and',
4639
+ 'ilike_or',
4640
+ 'in',
4641
+ 'not_in',
4642
+ 'contains',
4643
+ 'not_contains'
4644
+ ])),
4645
+ value: v.unknown()
4646
+ })))
4647
+ });
4648
+ /**
4649
+ * Markdown document with variable pipeline
4650
+ */
4651
+ export const vPlatformApiAgenticWorkflowControllerMetadataResponse = v.string();
4652
+ export const vPlatformApiToolControllerDeletePath = v.object({
4653
+ tenant_slug: v.string(),
4654
+ id: v.pipe(v.string(), v.uuid())
4655
+ });
4656
+ export const vPlatformApiToolControllerDeleteQuery = v.object({
4657
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4658
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4659
+ order_by: v.optional(v.array(v.string())),
4660
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4661
+ filters: v.optional(v.array(v.object({
4662
+ field: v.string(),
4663
+ op: v.optional(v.picklist([
4664
+ '==',
4665
+ '!=',
4666
+ '<',
4667
+ '<=',
4668
+ '>',
4669
+ '>=',
4670
+ 'empty',
4671
+ 'not_empty',
4672
+ 'like',
4673
+ 'ilike',
4674
+ 'like_and',
4675
+ 'like_or',
4676
+ 'ilike_and',
4677
+ 'ilike_or',
4678
+ 'in',
4679
+ 'not_in',
4680
+ 'contains',
4681
+ 'not_contains'
4682
+ ])),
4683
+ value: v.unknown()
4684
+ })))
2839
4685
  });
2840
4686
  /**
2841
4687
  * No Content
2842
4688
  */
2843
- export const vPlatformApiAiAgentControllerDeleteResponse = v.void();
2844
- export const vPlatformApiAiAgentControllerShowData = v.object({
2845
- body: v.optional(v.never()),
2846
- path: v.object({
2847
- tenant_slug: v.string(),
2848
- datalake_slug: v.string(),
2849
- id: v.pipe(v.string(), v.uuid())
2850
- }),
2851
- query: v.optional(v.never())
4689
+ export const vPlatformApiToolControllerDeleteResponse = v.void();
4690
+ export const vPlatformApiToolControllerShowPath = v.object({
4691
+ tenant_slug: v.string(),
4692
+ id: v.pipe(v.string(), v.uuid())
4693
+ });
4694
+ export const vPlatformApiToolControllerShowQuery = v.object({
4695
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4696
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4697
+ order_by: v.optional(v.array(v.string())),
4698
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4699
+ filters: v.optional(v.array(v.object({
4700
+ field: v.string(),
4701
+ op: v.optional(v.picklist([
4702
+ '==',
4703
+ '!=',
4704
+ '<',
4705
+ '<=',
4706
+ '>',
4707
+ '>=',
4708
+ 'empty',
4709
+ 'not_empty',
4710
+ 'like',
4711
+ 'ilike',
4712
+ 'like_and',
4713
+ 'like_or',
4714
+ 'ilike_and',
4715
+ 'ilike_or',
4716
+ 'in',
4717
+ 'not_in',
4718
+ 'contains',
4719
+ 'not_contains'
4720
+ ])),
4721
+ value: v.unknown()
4722
+ })))
2852
4723
  });
2853
4724
  /**
2854
- * AI agent
4725
+ * Tool
2855
4726
  */
2856
- export const vPlatformApiAiAgentControllerShowResponse = vAiAgentResponse;
2857
- export const vPlatformApiAiAgentControllerUpdateData = v.object({
2858
- body: v.optional(vAiAgentRequestWritable),
2859
- path: v.object({
2860
- tenant_slug: v.string(),
2861
- datalake_slug: v.string(),
2862
- id: v.pipe(v.string(), v.uuid())
2863
- }),
2864
- query: v.optional(v.never())
4727
+ export const vPlatformApiToolControllerShowResponse = vToolResponse;
4728
+ /**
4729
+ * Full Tool resource (PUT semantics — all fields required)
4730
+ */
4731
+ export const vPlatformApiToolControllerUpdateBody = vToolRequestWritable;
4732
+ export const vPlatformApiToolControllerUpdatePath = v.object({
4733
+ tenant_slug: v.string(),
4734
+ id: v.pipe(v.string(), v.uuid())
4735
+ });
4736
+ export const vPlatformApiToolControllerUpdateQuery = v.object({
4737
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4738
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4739
+ order_by: v.optional(v.array(v.string())),
4740
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4741
+ filters: v.optional(v.array(v.object({
4742
+ field: v.string(),
4743
+ op: v.optional(v.picklist([
4744
+ '==',
4745
+ '!=',
4746
+ '<',
4747
+ '<=',
4748
+ '>',
4749
+ '>=',
4750
+ 'empty',
4751
+ 'not_empty',
4752
+ 'like',
4753
+ 'ilike',
4754
+ 'like_and',
4755
+ 'like_or',
4756
+ 'ilike_and',
4757
+ 'ilike_or',
4758
+ 'in',
4759
+ 'not_in',
4760
+ 'contains',
4761
+ 'not_contains'
4762
+ ])),
4763
+ value: v.unknown()
4764
+ })))
2865
4765
  });
2866
4766
  /**
2867
- * AI agent updated
4767
+ * Tool updated
2868
4768
  */
2869
- export const vPlatformApiAiAgentControllerUpdateResponse = vAiAgentResponse;
2870
- export const vPlatformApiConnectedAppMgmtControllerIndexData = v.object({
2871
- body: v.optional(v.never()),
2872
- path: v.object({
2873
- tenant_slug: v.string(),
2874
- datalake_slug: v.string()
2875
- }),
2876
- query: v.optional(v.object({
2877
- page: v.optional(v.pipe(v.number(), v.integer())),
2878
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2879
- }))
4769
+ export const vPlatformApiToolControllerUpdateResponse = vToolResponse;
4770
+ export const vPlatformApiDataActivationClientControllerLogsIndexPath = v.object({
4771
+ tenant_slug: v.string(),
4772
+ datalake_slug: v.string(),
4773
+ slug: v.string()
4774
+ });
4775
+ export const vPlatformApiDataActivationClientControllerLogsIndexQuery = v.object({
4776
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4777
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4778
+ order_by: v.optional(v.array(v.string())),
4779
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4780
+ filters: v.optional(v.array(v.object({
4781
+ field: v.string(),
4782
+ op: v.optional(v.picklist([
4783
+ '==',
4784
+ '!=',
4785
+ '<',
4786
+ '<=',
4787
+ '>',
4788
+ '>=',
4789
+ 'empty',
4790
+ 'not_empty',
4791
+ 'like',
4792
+ 'ilike',
4793
+ 'like_and',
4794
+ 'like_or',
4795
+ 'ilike_and',
4796
+ 'ilike_or',
4797
+ 'in',
4798
+ 'not_in',
4799
+ 'contains',
4800
+ 'not_contains'
4801
+ ])),
4802
+ value: v.unknown()
4803
+ })))
4804
+ });
4805
+ /**
4806
+ * DAC log list
4807
+ */
4808
+ export const vPlatformApiDataActivationClientControllerLogsIndexResponse = vDataActivationClientLogListResponse;
4809
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogStopPath = v.object({
4810
+ tenant_slug: v.string(),
4811
+ workflow_slug: v.string(),
4812
+ id: v.pipe(v.string(), v.uuid())
4813
+ });
4814
+ /**
4815
+ * Batch log with polling stopped
4816
+ */
4817
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogStopResponse = vBatchLogResponse;
4818
+ export const vPlatformApiDataActivationClientControllerMetadataPath = v.object({
4819
+ tenant_slug: v.string(),
4820
+ datalake_slug: v.string(),
4821
+ slug: v.string()
4822
+ });
4823
+ export const vPlatformApiDataActivationClientControllerMetadataQuery = v.object({
4824
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4825
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4826
+ order_by: v.optional(v.array(v.string())),
4827
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4828
+ filters: v.optional(v.array(v.object({
4829
+ field: v.string(),
4830
+ op: v.optional(v.picklist([
4831
+ '==',
4832
+ '!=',
4833
+ '<',
4834
+ '<=',
4835
+ '>',
4836
+ '>=',
4837
+ 'empty',
4838
+ 'not_empty',
4839
+ 'like',
4840
+ 'ilike',
4841
+ 'like_and',
4842
+ 'like_or',
4843
+ 'ilike_and',
4844
+ 'ilike_or',
4845
+ 'in',
4846
+ 'not_in',
4847
+ 'contains',
4848
+ 'not_contains'
4849
+ ])),
4850
+ value: v.unknown()
4851
+ })))
4852
+ });
4853
+ /**
4854
+ * Markdown with connected dataset field documentation
4855
+ */
4856
+ export const vPlatformApiDataActivationClientControllerMetadataResponse = v.string();
4857
+ export const vPlatformApiAgenticWorkflowControllerIndexPath = v.object({
4858
+ tenant_slug: v.string(),
4859
+ datalake_slug: v.string()
4860
+ });
4861
+ export const vPlatformApiAgenticWorkflowControllerIndexQuery = v.object({
4862
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4863
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4864
+ order_by: v.optional(v.array(v.string())),
4865
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4866
+ filters: v.optional(v.array(v.object({
4867
+ field: v.string(),
4868
+ op: v.optional(v.picklist([
4869
+ '==',
4870
+ '!=',
4871
+ '<',
4872
+ '<=',
4873
+ '>',
4874
+ '>=',
4875
+ 'empty',
4876
+ 'not_empty',
4877
+ 'like',
4878
+ 'ilike',
4879
+ 'like_and',
4880
+ 'like_or',
4881
+ 'ilike_and',
4882
+ 'ilike_or',
4883
+ 'in',
4884
+ 'not_in',
4885
+ 'contains',
4886
+ 'not_contains'
4887
+ ])),
4888
+ value: v.unknown()
4889
+ })))
4890
+ });
4891
+ /**
4892
+ * Workflow list
4893
+ */
4894
+ export const vPlatformApiAgenticWorkflowControllerIndexResponse = vAgenticWorkflowListResponse;
4895
+ /**
4896
+ * Full workflow resource (PUT semantics — all required fields must be present)
4897
+ */
4898
+ export const vPlatformApiAgenticWorkflowControllerCreateBody = vAgenticWorkflowRequestWritable;
4899
+ export const vPlatformApiAgenticWorkflowControllerCreatePath = v.object({
4900
+ tenant_slug: v.string(),
4901
+ datalake_slug: v.string()
4902
+ });
4903
+ export const vPlatformApiAgenticWorkflowControllerCreateQuery = v.object({
4904
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4905
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4906
+ order_by: v.optional(v.array(v.string())),
4907
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4908
+ filters: v.optional(v.array(v.object({
4909
+ field: v.string(),
4910
+ op: v.optional(v.picklist([
4911
+ '==',
4912
+ '!=',
4913
+ '<',
4914
+ '<=',
4915
+ '>',
4916
+ '>=',
4917
+ 'empty',
4918
+ 'not_empty',
4919
+ 'like',
4920
+ 'ilike',
4921
+ 'like_and',
4922
+ 'like_or',
4923
+ 'ilike_and',
4924
+ 'ilike_or',
4925
+ 'in',
4926
+ 'not_in',
4927
+ 'contains',
4928
+ 'not_contains'
4929
+ ])),
4930
+ value: v.unknown()
4931
+ })))
4932
+ });
4933
+ /**
4934
+ * Workflow created
4935
+ */
4936
+ export const vPlatformApiAgenticWorkflowControllerCreateResponse = vAgenticWorkflowResponse;
4937
+ /**
4938
+ * Page update request
4939
+ */
4940
+ export const vPlatformApiConnectedAppControllerUpdatePageBody = vUpdatePageRequest;
4941
+ export const vPlatformApiConnectedAppControllerUpdatePagePath = v.object({
4942
+ tenant_slug: v.string(),
4943
+ slug: v.string()
4944
+ });
4945
+ /**
4946
+ * Updated message details
4947
+ */
4948
+ export const vPlatformApiConnectedAppControllerUpdatePageResponse = vUpdatePageResponse;
4949
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogStartPath = v.object({
4950
+ tenant_slug: v.string(),
4951
+ workflow_slug: v.string(),
4952
+ id: v.pipe(v.string(), v.uuid())
4953
+ });
4954
+ /**
4955
+ * Batch log with polling started
4956
+ */
4957
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogStartResponse = vBatchLogResponse;
4958
+ /**
4959
+ * User credentials
4960
+ */
4961
+ export const vPlatformApiSessionControllerCreateBody = vSessionRequest;
4962
+ /**
4963
+ * Session created
4964
+ */
4965
+ export const vPlatformApiSessionControllerCreateResponse = vSessionResponse;
4966
+ export const vPlatformApiConnectedAppMgmtControllerIndexPath = v.object({
4967
+ tenant_slug: v.string(),
4968
+ datalake_slug: v.string()
4969
+ });
4970
+ export const vPlatformApiConnectedAppMgmtControllerIndexQuery = v.object({
4971
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
4972
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
4973
+ order_by: v.optional(v.array(v.string())),
4974
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
4975
+ filters: v.optional(v.array(v.object({
4976
+ field: v.string(),
4977
+ op: v.optional(v.picklist([
4978
+ '==',
4979
+ '!=',
4980
+ '<',
4981
+ '<=',
4982
+ '>',
4983
+ '>=',
4984
+ 'empty',
4985
+ 'not_empty',
4986
+ 'like',
4987
+ 'ilike',
4988
+ 'like_and',
4989
+ 'like_or',
4990
+ 'ilike_and',
4991
+ 'ilike_or',
4992
+ 'in',
4993
+ 'not_in',
4994
+ 'contains',
4995
+ 'not_contains'
4996
+ ])),
4997
+ value: v.unknown()
4998
+ })))
2880
4999
  });
2881
5000
  /**
2882
5001
  * Connected app list
2883
5002
  */
2884
5003
  export const vPlatformApiConnectedAppMgmtControllerIndexResponse = vConnectedAppListResponse;
2885
- export const vPlatformApiConnectedAppMgmtControllerCreateData = v.object({
2886
- body: v.optional(vConnectedAppRequestWritable),
2887
- path: v.object({
2888
- tenant_slug: v.string(),
2889
- datalake_slug: v.string()
2890
- }),
2891
- query: v.optional(v.never())
5004
+ /**
5005
+ * Full Connected App resource (PUT semantics — all fields required)
5006
+ */
5007
+ export const vPlatformApiConnectedAppMgmtControllerCreateBody = vConnectedAppRequestWritable;
5008
+ export const vPlatformApiConnectedAppMgmtControllerCreatePath = v.object({
5009
+ tenant_slug: v.string(),
5010
+ datalake_slug: v.string()
5011
+ });
5012
+ export const vPlatformApiConnectedAppMgmtControllerCreateQuery = v.object({
5013
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5014
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5015
+ order_by: v.optional(v.array(v.string())),
5016
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5017
+ filters: v.optional(v.array(v.object({
5018
+ field: v.string(),
5019
+ op: v.optional(v.picklist([
5020
+ '==',
5021
+ '!=',
5022
+ '<',
5023
+ '<=',
5024
+ '>',
5025
+ '>=',
5026
+ 'empty',
5027
+ 'not_empty',
5028
+ 'like',
5029
+ 'ilike',
5030
+ 'like_and',
5031
+ 'like_or',
5032
+ 'ilike_and',
5033
+ 'ilike_or',
5034
+ 'in',
5035
+ 'not_in',
5036
+ 'contains',
5037
+ 'not_contains'
5038
+ ])),
5039
+ value: v.unknown()
5040
+ })))
2892
5041
  });
2893
5042
  /**
2894
5043
  * Connected app created
2895
5044
  */
2896
5045
  export const vPlatformApiConnectedAppMgmtControllerCreateResponse = vConnectedAppResponse;
2897
- export const vPlatformApiConnectedAppMgmtControllerShowData = v.object({
2898
- body: v.optional(v.never()),
2899
- path: v.object({
2900
- tenant_slug: v.string(),
2901
- datalake_slug: v.string(),
2902
- id: v.pipe(v.string(), v.uuid())
2903
- }),
2904
- query: v.optional(v.never())
5046
+ export const vPlatformApiAiAgentControllerDeletePath = v.object({
5047
+ tenant_slug: v.string(),
5048
+ datalake_slug: v.string(),
5049
+ id: v.pipe(v.string(), v.uuid())
5050
+ });
5051
+ export const vPlatformApiAiAgentControllerDeleteQuery = v.object({
5052
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5053
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5054
+ order_by: v.optional(v.array(v.string())),
5055
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5056
+ filters: v.optional(v.array(v.object({
5057
+ field: v.string(),
5058
+ op: v.optional(v.picklist([
5059
+ '==',
5060
+ '!=',
5061
+ '<',
5062
+ '<=',
5063
+ '>',
5064
+ '>=',
5065
+ 'empty',
5066
+ 'not_empty',
5067
+ 'like',
5068
+ 'ilike',
5069
+ 'like_and',
5070
+ 'like_or',
5071
+ 'ilike_and',
5072
+ 'ilike_or',
5073
+ 'in',
5074
+ 'not_in',
5075
+ 'contains',
5076
+ 'not_contains'
5077
+ ])),
5078
+ value: v.unknown()
5079
+ })))
2905
5080
  });
2906
5081
  /**
2907
- * Connected app
5082
+ * No Content
2908
5083
  */
2909
- export const vPlatformApiConnectedAppMgmtControllerShowResponse = vConnectedAppResponse;
2910
- export const vPlatformApiConnectedAppMgmtControllerUpdateData = v.object({
2911
- body: v.optional(vConnectedAppRequestWritable),
2912
- path: v.object({
2913
- tenant_slug: v.string(),
2914
- datalake_slug: v.string(),
2915
- id: v.pipe(v.string(), v.uuid())
2916
- }),
2917
- query: v.optional(v.never())
5084
+ export const vPlatformApiAiAgentControllerDeleteResponse = v.void();
5085
+ export const vPlatformApiAiAgentControllerShowPath = v.object({
5086
+ tenant_slug: v.string(),
5087
+ datalake_slug: v.string(),
5088
+ id: v.pipe(v.string(), v.uuid())
5089
+ });
5090
+ export const vPlatformApiAiAgentControllerShowQuery = v.object({
5091
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5092
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5093
+ order_by: v.optional(v.array(v.string())),
5094
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5095
+ filters: v.optional(v.array(v.object({
5096
+ field: v.string(),
5097
+ op: v.optional(v.picklist([
5098
+ '==',
5099
+ '!=',
5100
+ '<',
5101
+ '<=',
5102
+ '>',
5103
+ '>=',
5104
+ 'empty',
5105
+ 'not_empty',
5106
+ 'like',
5107
+ 'ilike',
5108
+ 'like_and',
5109
+ 'like_or',
5110
+ 'ilike_and',
5111
+ 'ilike_or',
5112
+ 'in',
5113
+ 'not_in',
5114
+ 'contains',
5115
+ 'not_contains'
5116
+ ])),
5117
+ value: v.unknown()
5118
+ })))
2918
5119
  });
2919
5120
  /**
2920
- * Connected app updated
5121
+ * AI agent
2921
5122
  */
2922
- export const vPlatformApiConnectedAppMgmtControllerUpdateResponse = vConnectedAppResponse;
2923
- export const vPlatformApiConnectedAppMgmtControllerSyncRoutesData = v.object({
2924
- body: v.optional(v.never()),
2925
- path: v.object({
2926
- tenant_slug: v.string(),
2927
- datalake_slug: v.string(),
2928
- id: v.pipe(v.string(), v.uuid())
2929
- }),
2930
- query: v.optional(v.never())
5123
+ export const vPlatformApiAiAgentControllerShowResponse = vAiAgentResponse;
5124
+ /**
5125
+ * Full AI Agent resource (PUT semantics — all fields required)
5126
+ */
5127
+ export const vPlatformApiAiAgentControllerUpdateBody = vAiAgentRequestWritable;
5128
+ export const vPlatformApiAiAgentControllerUpdatePath = v.object({
5129
+ tenant_slug: v.string(),
5130
+ datalake_slug: v.string(),
5131
+ id: v.pipe(v.string(), v.uuid())
5132
+ });
5133
+ export const vPlatformApiAiAgentControllerUpdateQuery = v.object({
5134
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5135
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5136
+ order_by: v.optional(v.array(v.string())),
5137
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5138
+ filters: v.optional(v.array(v.object({
5139
+ field: v.string(),
5140
+ op: v.optional(v.picklist([
5141
+ '==',
5142
+ '!=',
5143
+ '<',
5144
+ '<=',
5145
+ '>',
5146
+ '>=',
5147
+ 'empty',
5148
+ 'not_empty',
5149
+ 'like',
5150
+ 'ilike',
5151
+ 'like_and',
5152
+ 'like_or',
5153
+ 'ilike_and',
5154
+ 'ilike_or',
5155
+ 'in',
5156
+ 'not_in',
5157
+ 'contains',
5158
+ 'not_contains'
5159
+ ])),
5160
+ value: v.unknown()
5161
+ })))
2931
5162
  });
2932
5163
  /**
2933
- * Route sync enqueued
5164
+ * AI agent updated
2934
5165
  */
2935
- export const vPlatformApiConnectedAppMgmtControllerSyncRoutesResponse = vSyncRoutesResponse;
2936
- export const vPlatformApiDataSourceControllerIndexData = v.object({
2937
- body: v.optional(v.never()),
2938
- path: v.object({
2939
- tenant_slug: v.string(),
2940
- datalake_slug: v.string()
2941
- }),
2942
- query: v.optional(v.object({
2943
- page: v.optional(v.pipe(v.number(), v.integer())),
2944
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2945
- }))
5166
+ export const vPlatformApiAiAgentControllerUpdateResponse = vAiAgentResponse;
5167
+ /**
5168
+ * Optional tool_call override
5169
+ */
5170
+ export const vPlatformApiDataActivationClientControllerRunManuallyBody = vRunManuallyRequestWritable;
5171
+ export const vPlatformApiDataActivationClientControllerRunManuallyPath = v.object({
5172
+ tenant_slug: v.string(),
5173
+ datalake_slug: v.string(),
5174
+ slug: v.string()
5175
+ });
5176
+ export const vPlatformApiDataActivationClientControllerRunManuallyQuery = v.object({
5177
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5178
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5179
+ order_by: v.optional(v.array(v.string())),
5180
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5181
+ filters: v.optional(v.array(v.object({
5182
+ field: v.string(),
5183
+ op: v.optional(v.picklist([
5184
+ '==',
5185
+ '!=',
5186
+ '<',
5187
+ '<=',
5188
+ '>',
5189
+ '>=',
5190
+ 'empty',
5191
+ 'not_empty',
5192
+ 'like',
5193
+ 'ilike',
5194
+ 'like_and',
5195
+ 'like_or',
5196
+ 'ilike_and',
5197
+ 'ilike_or',
5198
+ 'in',
5199
+ 'not_in',
5200
+ 'contains',
5201
+ 'not_contains'
5202
+ ])),
5203
+ value: v.unknown()
5204
+ })))
5205
+ });
5206
+ /**
5207
+ * Run enqueued
5208
+ */
5209
+ export const vPlatformApiDataActivationClientControllerRunManuallyResponse = vRunManuallyResponse;
5210
+ export const vPlatformApiDataSourceControllerIndexPath = v.object({
5211
+ tenant_slug: v.string(),
5212
+ datalake_slug: v.string()
5213
+ });
5214
+ export const vPlatformApiDataSourceControllerIndexQuery = v.object({
5215
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5216
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5217
+ order_by: v.optional(v.array(v.string())),
5218
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5219
+ filters: v.optional(v.array(v.object({
5220
+ field: v.string(),
5221
+ op: v.optional(v.picklist([
5222
+ '==',
5223
+ '!=',
5224
+ '<',
5225
+ '<=',
5226
+ '>',
5227
+ '>=',
5228
+ 'empty',
5229
+ 'not_empty',
5230
+ 'like',
5231
+ 'ilike',
5232
+ 'like_and',
5233
+ 'like_or',
5234
+ 'ilike_and',
5235
+ 'ilike_or',
5236
+ 'in',
5237
+ 'not_in',
5238
+ 'contains',
5239
+ 'not_contains'
5240
+ ])),
5241
+ value: v.unknown()
5242
+ })))
2946
5243
  });
2947
5244
  /**
2948
5245
  * Data source list
2949
5246
  */
2950
5247
  export const vPlatformApiDataSourceControllerIndexResponse = vDataSourceListResponse;
2951
- export const vPlatformApiDataSourceControllerCreateData = v.object({
2952
- body: v.optional(vDataSourceRequest),
2953
- path: v.object({
2954
- tenant_slug: v.string(),
2955
- datalake_slug: v.string()
2956
- }),
2957
- query: v.optional(v.never())
5248
+ /**
5249
+ * Full Data Source resource (PUT semantics — all fields required)
5250
+ */
5251
+ export const vPlatformApiDataSourceControllerCreateBody = vDataSourceRequest;
5252
+ export const vPlatformApiDataSourceControllerCreatePath = v.object({
5253
+ tenant_slug: v.string(),
5254
+ datalake_slug: v.string()
5255
+ });
5256
+ export const vPlatformApiDataSourceControllerCreateQuery = v.object({
5257
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5258
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5259
+ order_by: v.optional(v.array(v.string())),
5260
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5261
+ filters: v.optional(v.array(v.object({
5262
+ field: v.string(),
5263
+ op: v.optional(v.picklist([
5264
+ '==',
5265
+ '!=',
5266
+ '<',
5267
+ '<=',
5268
+ '>',
5269
+ '>=',
5270
+ 'empty',
5271
+ 'not_empty',
5272
+ 'like',
5273
+ 'ilike',
5274
+ 'like_and',
5275
+ 'like_or',
5276
+ 'ilike_and',
5277
+ 'ilike_or',
5278
+ 'in',
5279
+ 'not_in',
5280
+ 'contains',
5281
+ 'not_contains'
5282
+ ])),
5283
+ value: v.unknown()
5284
+ })))
2958
5285
  });
2959
5286
  /**
2960
5287
  * Data source created
2961
5288
  */
2962
5289
  export const vPlatformApiDataSourceControllerCreateResponse = vDataSourceResponse;
2963
- export const vPlatformApiDataSourceControllerUpdateData = v.object({
2964
- body: v.optional(vDataSourceRequest),
2965
- path: v.object({
2966
- tenant_slug: v.string(),
2967
- datalake_slug: v.string(),
2968
- id: v.pipe(v.string(), v.uuid())
2969
- }),
2970
- query: v.optional(v.never())
5290
+ /**
5291
+ * Ingest file request
5292
+ */
5293
+ export const vPlatformApiDataActivationClientControllerIngestFileBody = vIngestFileRequest;
5294
+ export const vPlatformApiDataActivationClientControllerIngestFilePath = v.object({
5295
+ tenant_slug: v.string(),
5296
+ datalake_slug: v.string(),
5297
+ slug: v.string()
5298
+ });
5299
+ export const vPlatformApiDataActivationClientControllerIngestFileQuery = v.object({
5300
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5301
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5302
+ order_by: v.optional(v.array(v.string())),
5303
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5304
+ filters: v.optional(v.array(v.object({
5305
+ field: v.string(),
5306
+ op: v.optional(v.picklist([
5307
+ '==',
5308
+ '!=',
5309
+ '<',
5310
+ '<=',
5311
+ '>',
5312
+ '>=',
5313
+ 'empty',
5314
+ 'not_empty',
5315
+ 'like',
5316
+ 'ilike',
5317
+ 'like_and',
5318
+ 'like_or',
5319
+ 'ilike_and',
5320
+ 'ilike_or',
5321
+ 'in',
5322
+ 'not_in',
5323
+ 'contains',
5324
+ 'not_contains'
5325
+ ])),
5326
+ value: v.unknown()
5327
+ })))
5328
+ });
5329
+ /**
5330
+ * Ingest file response
5331
+ */
5332
+ export const vPlatformApiDataActivationClientControllerIngestFileResponse = vIngestFileResponse;
5333
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowPath = v.object({
5334
+ tenant_slug: v.string(),
5335
+ workflow_slug: v.string(),
5336
+ id: v.pipe(v.string(), v.uuid())
5337
+ });
5338
+ /**
5339
+ * Execution log
5340
+ */
5341
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowResponse = vWorkflowLogResponse;
5342
+ export const vPlatformApiInteroperabilityContractControllerDeletePath = v.object({
5343
+ tenant_slug: v.string(),
5344
+ datalake_slug: v.string(),
5345
+ slug: v.string()
5346
+ });
5347
+ export const vPlatformApiInteroperabilityContractControllerDeleteQuery = v.object({
5348
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5349
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5350
+ order_by: v.optional(v.array(v.string())),
5351
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5352
+ filters: v.optional(v.array(v.object({
5353
+ field: v.string(),
5354
+ op: v.optional(v.picklist([
5355
+ '==',
5356
+ '!=',
5357
+ '<',
5358
+ '<=',
5359
+ '>',
5360
+ '>=',
5361
+ 'empty',
5362
+ 'not_empty',
5363
+ 'like',
5364
+ 'ilike',
5365
+ 'like_and',
5366
+ 'like_or',
5367
+ 'ilike_and',
5368
+ 'ilike_or',
5369
+ 'in',
5370
+ 'not_in',
5371
+ 'contains',
5372
+ 'not_contains'
5373
+ ])),
5374
+ value: v.unknown()
5375
+ })))
5376
+ });
5377
+ /**
5378
+ * No Content
5379
+ */
5380
+ export const vPlatformApiInteroperabilityContractControllerDeleteResponse = v.void();
5381
+ export const vPlatformApiInteroperabilityContractControllerShowPath = v.object({
5382
+ tenant_slug: v.string(),
5383
+ datalake_slug: v.string(),
5384
+ slug: v.string()
5385
+ });
5386
+ export const vPlatformApiInteroperabilityContractControllerShowQuery = v.object({
5387
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5388
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5389
+ order_by: v.optional(v.array(v.string())),
5390
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5391
+ filters: v.optional(v.array(v.object({
5392
+ field: v.string(),
5393
+ op: v.optional(v.picklist([
5394
+ '==',
5395
+ '!=',
5396
+ '<',
5397
+ '<=',
5398
+ '>',
5399
+ '>=',
5400
+ 'empty',
5401
+ 'not_empty',
5402
+ 'like',
5403
+ 'ilike',
5404
+ 'like_and',
5405
+ 'like_or',
5406
+ 'ilike_and',
5407
+ 'ilike_or',
5408
+ 'in',
5409
+ 'not_in',
5410
+ 'contains',
5411
+ 'not_contains'
5412
+ ])),
5413
+ value: v.unknown()
5414
+ })))
5415
+ });
5416
+ /**
5417
+ * Contract
5418
+ */
5419
+ export const vPlatformApiInteroperabilityContractControllerShowResponse = vInteroperabilityContractResponse;
5420
+ /**
5421
+ * Full contract resource (all required fields must be present)
5422
+ */
5423
+ export const vPlatformApiInteroperabilityContractControllerUpdateBody = vInteroperabilityContractRequestWritable;
5424
+ export const vPlatformApiInteroperabilityContractControllerUpdatePath = v.object({
5425
+ tenant_slug: v.string(),
5426
+ datalake_slug: v.string(),
5427
+ slug: v.string()
5428
+ });
5429
+ export const vPlatformApiInteroperabilityContractControllerUpdateQuery = v.object({
5430
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5431
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5432
+ order_by: v.optional(v.array(v.string())),
5433
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5434
+ filters: v.optional(v.array(v.object({
5435
+ field: v.string(),
5436
+ op: v.optional(v.picklist([
5437
+ '==',
5438
+ '!=',
5439
+ '<',
5440
+ '<=',
5441
+ '>',
5442
+ '>=',
5443
+ 'empty',
5444
+ 'not_empty',
5445
+ 'like',
5446
+ 'ilike',
5447
+ 'like_and',
5448
+ 'like_or',
5449
+ 'ilike_and',
5450
+ 'ilike_or',
5451
+ 'in',
5452
+ 'not_in',
5453
+ 'contains',
5454
+ 'not_contains'
5455
+ ])),
5456
+ value: v.unknown()
5457
+ })))
5458
+ });
5459
+ /**
5460
+ * Contract updated
5461
+ */
5462
+ export const vPlatformApiInteroperabilityContractControllerUpdateResponse = vInteroperabilityContractResponse;
5463
+ export const vPlatformApiDatalakeControllerMetadataPath = v.object({
5464
+ tenant_slug: v.string(),
5465
+ datalake_slug: v.string()
5466
+ });
5467
+ export const vPlatformApiDatalakeControllerMetadataQuery = v.object({
5468
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5469
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5470
+ order_by: v.optional(v.array(v.string())),
5471
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5472
+ filters: v.optional(v.array(v.object({
5473
+ field: v.string(),
5474
+ op: v.optional(v.picklist([
5475
+ '==',
5476
+ '!=',
5477
+ '<',
5478
+ '<=',
5479
+ '>',
5480
+ '>=',
5481
+ 'empty',
5482
+ 'not_empty',
5483
+ 'like',
5484
+ 'ilike',
5485
+ 'like_and',
5486
+ 'like_or',
5487
+ 'ilike_and',
5488
+ 'ilike_or',
5489
+ 'in',
5490
+ 'not_in',
5491
+ 'contains',
5492
+ 'not_contains'
5493
+ ])),
5494
+ value: v.unknown()
5495
+ })))
5496
+ });
5497
+ /**
5498
+ * Markdown document with domain metadata
5499
+ */
5500
+ export const vPlatformApiDatalakeControllerMetadataResponse = v.string();
5501
+ export const vPlatformApiAiAgentControllerIndexPath = v.object({
5502
+ tenant_slug: v.string(),
5503
+ datalake_slug: v.string()
5504
+ });
5505
+ export const vPlatformApiAiAgentControllerIndexQuery = v.object({
5506
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5507
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5508
+ order_by: v.optional(v.array(v.string())),
5509
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5510
+ filters: v.optional(v.array(v.object({
5511
+ field: v.string(),
5512
+ op: v.optional(v.picklist([
5513
+ '==',
5514
+ '!=',
5515
+ '<',
5516
+ '<=',
5517
+ '>',
5518
+ '>=',
5519
+ 'empty',
5520
+ 'not_empty',
5521
+ 'like',
5522
+ 'ilike',
5523
+ 'like_and',
5524
+ 'like_or',
5525
+ 'ilike_and',
5526
+ 'ilike_or',
5527
+ 'in',
5528
+ 'not_in',
5529
+ 'contains',
5530
+ 'not_contains'
5531
+ ])),
5532
+ value: v.unknown()
5533
+ })))
5534
+ });
5535
+ /**
5536
+ * AI agent list
5537
+ */
5538
+ export const vPlatformApiAiAgentControllerIndexResponse = vAiAgentListResponse;
5539
+ /**
5540
+ * Full AI Agent resource (PUT semantics — all fields required)
5541
+ */
5542
+ export const vPlatformApiAiAgentControllerCreateBody = vAiAgentRequestWritable;
5543
+ export const vPlatformApiAiAgentControllerCreatePath = v.object({
5544
+ tenant_slug: v.string(),
5545
+ datalake_slug: v.string()
5546
+ });
5547
+ export const vPlatformApiAiAgentControllerCreateQuery = v.object({
5548
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5549
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5550
+ order_by: v.optional(v.array(v.string())),
5551
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5552
+ filters: v.optional(v.array(v.object({
5553
+ field: v.string(),
5554
+ op: v.optional(v.picklist([
5555
+ '==',
5556
+ '!=',
5557
+ '<',
5558
+ '<=',
5559
+ '>',
5560
+ '>=',
5561
+ 'empty',
5562
+ 'not_empty',
5563
+ 'like',
5564
+ 'ilike',
5565
+ 'like_and',
5566
+ 'like_or',
5567
+ 'ilike_and',
5568
+ 'ilike_or',
5569
+ 'in',
5570
+ 'not_in',
5571
+ 'contains',
5572
+ 'not_contains'
5573
+ ])),
5574
+ value: v.unknown()
5575
+ })))
5576
+ });
5577
+ /**
5578
+ * AI agent created
5579
+ */
5580
+ export const vPlatformApiAiAgentControllerCreateResponse = vAiAgentResponse;
5581
+ /**
5582
+ * Full Action Status Updater resource (PUT semantics — all fields required)
5583
+ */
5584
+ export const vPlatformApiActionStatusUpdaterControllerUpdateBody = vActionStatusUpdaterRequestWritable;
5585
+ export const vPlatformApiActionStatusUpdaterControllerUpdatePath = v.object({
5586
+ tenant_slug: v.string(),
5587
+ id: v.pipe(v.string(), v.uuid())
5588
+ });
5589
+ export const vPlatformApiActionStatusUpdaterControllerUpdateQuery = v.object({
5590
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5591
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5592
+ order_by: v.optional(v.array(v.string())),
5593
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5594
+ filters: v.optional(v.array(v.object({
5595
+ field: v.string(),
5596
+ op: v.optional(v.picklist([
5597
+ '==',
5598
+ '!=',
5599
+ '<',
5600
+ '<=',
5601
+ '>',
5602
+ '>=',
5603
+ 'empty',
5604
+ 'not_empty',
5605
+ 'like',
5606
+ 'ilike',
5607
+ 'like_and',
5608
+ 'like_or',
5609
+ 'ilike_and',
5610
+ 'ilike_or',
5611
+ 'in',
5612
+ 'not_in',
5613
+ 'contains',
5614
+ 'not_contains'
5615
+ ])),
5616
+ value: v.unknown()
5617
+ })))
5618
+ });
5619
+ /**
5620
+ * Action status updater updated
5621
+ */
5622
+ export const vPlatformApiActionStatusUpdaterControllerUpdateResponse = vActionStatusUpdaterResponse;
5623
+ /**
5624
+ * JSON payload
5625
+ */
5626
+ export const vPlatformApiDataActivationClientControllerIngestBody = vIngestRequest;
5627
+ export const vPlatformApiDataActivationClientControllerIngestPath = v.object({
5628
+ tenant_slug: v.string(),
5629
+ datalake_slug: v.string(),
5630
+ slug: v.string()
5631
+ });
5632
+ export const vPlatformApiDataActivationClientControllerIngestQuery = v.object({
5633
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5634
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5635
+ order_by: v.optional(v.array(v.string())),
5636
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5637
+ filters: v.optional(v.array(v.object({
5638
+ field: v.string(),
5639
+ op: v.optional(v.picklist([
5640
+ '==',
5641
+ '!=',
5642
+ '<',
5643
+ '<=',
5644
+ '>',
5645
+ '>=',
5646
+ 'empty',
5647
+ 'not_empty',
5648
+ 'like',
5649
+ 'ilike',
5650
+ 'like_and',
5651
+ 'like_or',
5652
+ 'ilike_and',
5653
+ 'ilike_or',
5654
+ 'in',
5655
+ 'not_in',
5656
+ 'contains',
5657
+ 'not_contains'
5658
+ ])),
5659
+ value: v.unknown()
5660
+ })))
5661
+ });
5662
+ /**
5663
+ * Ingest response
5664
+ */
5665
+ export const vPlatformApiDataActivationClientControllerIngestResponse = vIngestResponse;
5666
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshPath = v.object({
5667
+ tenant_slug: v.string(),
5668
+ workflow_slug: v.string(),
5669
+ id: v.pipe(v.string(), v.uuid())
5670
+ });
5671
+ /**
5672
+ * Refreshed batch log
5673
+ */
5674
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshResponse = vBatchLogResponse;
5675
+ /**
5676
+ * Run workflow payload
5677
+ */
5678
+ export const vPlatformApiAgenticWorkflowOperationsControllerRunWorkflowBody = vRunWorkflowRequest;
5679
+ export const vPlatformApiAgenticWorkflowOperationsControllerRunWorkflowPath = v.object({
5680
+ tenant_slug: v.string(),
5681
+ workflow_slug: v.string()
5682
+ });
5683
+ /**
5684
+ * Run workflow result
5685
+ */
5686
+ export const vPlatformApiAgenticWorkflowOperationsControllerRunWorkflowResponse = vRunWorkflowResponse;
5687
+ export const vPlatformApiAgenticWorkflowControllerDeletePath = v.object({
5688
+ tenant_slug: v.string(),
5689
+ datalake_slug: v.string(),
5690
+ id: v.pipe(v.string(), v.uuid())
5691
+ });
5692
+ export const vPlatformApiAgenticWorkflowControllerDeleteQuery = v.object({
5693
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5694
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5695
+ order_by: v.optional(v.array(v.string())),
5696
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5697
+ filters: v.optional(v.array(v.object({
5698
+ field: v.string(),
5699
+ op: v.optional(v.picklist([
5700
+ '==',
5701
+ '!=',
5702
+ '<',
5703
+ '<=',
5704
+ '>',
5705
+ '>=',
5706
+ 'empty',
5707
+ 'not_empty',
5708
+ 'like',
5709
+ 'ilike',
5710
+ 'like_and',
5711
+ 'like_or',
5712
+ 'ilike_and',
5713
+ 'ilike_or',
5714
+ 'in',
5715
+ 'not_in',
5716
+ 'contains',
5717
+ 'not_contains'
5718
+ ])),
5719
+ value: v.unknown()
5720
+ })))
5721
+ });
5722
+ /**
5723
+ * No Content
5724
+ */
5725
+ export const vPlatformApiAgenticWorkflowControllerDeleteResponse = v.void();
5726
+ export const vPlatformApiAgenticWorkflowControllerShowPath = v.object({
5727
+ tenant_slug: v.string(),
5728
+ datalake_slug: v.string(),
5729
+ id: v.pipe(v.string(), v.uuid())
5730
+ });
5731
+ export const vPlatformApiAgenticWorkflowControllerShowQuery = v.object({
5732
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5733
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5734
+ order_by: v.optional(v.array(v.string())),
5735
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5736
+ filters: v.optional(v.array(v.object({
5737
+ field: v.string(),
5738
+ op: v.optional(v.picklist([
5739
+ '==',
5740
+ '!=',
5741
+ '<',
5742
+ '<=',
5743
+ '>',
5744
+ '>=',
5745
+ 'empty',
5746
+ 'not_empty',
5747
+ 'like',
5748
+ 'ilike',
5749
+ 'like_and',
5750
+ 'like_or',
5751
+ 'ilike_and',
5752
+ 'ilike_or',
5753
+ 'in',
5754
+ 'not_in',
5755
+ 'contains',
5756
+ 'not_contains'
5757
+ ])),
5758
+ value: v.unknown()
5759
+ })))
5760
+ });
5761
+ /**
5762
+ * Workflow
5763
+ */
5764
+ export const vPlatformApiAgenticWorkflowControllerShowResponse = vAgenticWorkflowResponse;
5765
+ /**
5766
+ * Full workflow resource (PUT semantics — all required fields must be present)
5767
+ */
5768
+ export const vPlatformApiAgenticWorkflowControllerUpdateBody = vAgenticWorkflowRequestWritable;
5769
+ export const vPlatformApiAgenticWorkflowControllerUpdatePath = v.object({
5770
+ tenant_slug: v.string(),
5771
+ datalake_slug: v.string(),
5772
+ id: v.pipe(v.string(), v.uuid())
5773
+ });
5774
+ export const vPlatformApiAgenticWorkflowControllerUpdateQuery = v.object({
5775
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5776
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5777
+ order_by: v.optional(v.array(v.string())),
5778
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5779
+ filters: v.optional(v.array(v.object({
5780
+ field: v.string(),
5781
+ op: v.optional(v.picklist([
5782
+ '==',
5783
+ '!=',
5784
+ '<',
5785
+ '<=',
5786
+ '>',
5787
+ '>=',
5788
+ 'empty',
5789
+ 'not_empty',
5790
+ 'like',
5791
+ 'ilike',
5792
+ 'like_and',
5793
+ 'like_or',
5794
+ 'ilike_and',
5795
+ 'ilike_or',
5796
+ 'in',
5797
+ 'not_in',
5798
+ 'contains',
5799
+ 'not_contains'
5800
+ ])),
5801
+ value: v.unknown()
5802
+ })))
5803
+ });
5804
+ /**
5805
+ * Workflow updated
5806
+ */
5807
+ export const vPlatformApiAgenticWorkflowControllerUpdateResponse = vAgenticWorkflowResponse;
5808
+ /**
5809
+ * Full Data Source resource (PUT semantics — all fields required)
5810
+ */
5811
+ export const vPlatformApiDataSourceControllerUpdateBody = vDataSourceRequest;
5812
+ export const vPlatformApiDataSourceControllerUpdatePath = v.object({
5813
+ tenant_slug: v.string(),
5814
+ datalake_slug: v.string(),
5815
+ id: v.pipe(v.string(), v.uuid())
5816
+ });
5817
+ export const vPlatformApiDataSourceControllerUpdateQuery = v.object({
5818
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5819
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5820
+ order_by: v.optional(v.array(v.string())),
5821
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5822
+ filters: v.optional(v.array(v.object({
5823
+ field: v.string(),
5824
+ op: v.optional(v.picklist([
5825
+ '==',
5826
+ '!=',
5827
+ '<',
5828
+ '<=',
5829
+ '>',
5830
+ '>=',
5831
+ 'empty',
5832
+ 'not_empty',
5833
+ 'like',
5834
+ 'ilike',
5835
+ 'like_and',
5836
+ 'like_or',
5837
+ 'ilike_and',
5838
+ 'ilike_or',
5839
+ 'in',
5840
+ 'not_in',
5841
+ 'contains',
5842
+ 'not_contains'
5843
+ ])),
5844
+ value: v.unknown()
5845
+ })))
2971
5846
  });
2972
5847
  /**
2973
5848
  * Data source updated
2974
5849
  */
2975
5850
  export const vPlatformApiDataSourceControllerUpdateResponse = vDataSourceResponse;
2976
- export const vPlatformApiGenericTableControllerIndexData = v.object({
2977
- body: v.optional(v.never()),
2978
- path: v.object({
2979
- tenant_slug: v.string(),
2980
- datalake_slug: v.string()
2981
- }),
2982
- query: v.optional(v.object({
2983
- page: v.optional(v.pipe(v.number(), v.integer())),
2984
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2985
- }))
5851
+ export const vPlatformApiDataActivationClientControllerLogShowPath = v.object({
5852
+ tenant_slug: v.string(),
5853
+ datalake_slug: v.string(),
5854
+ slug: v.string(),
5855
+ id: v.pipe(v.string(), v.uuid())
5856
+ });
5857
+ export const vPlatformApiDataActivationClientControllerLogShowQuery = v.object({
5858
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5859
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5860
+ order_by: v.optional(v.array(v.string())),
5861
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5862
+ filters: v.optional(v.array(v.object({
5863
+ field: v.string(),
5864
+ op: v.optional(v.picklist([
5865
+ '==',
5866
+ '!=',
5867
+ '<',
5868
+ '<=',
5869
+ '>',
5870
+ '>=',
5871
+ 'empty',
5872
+ 'not_empty',
5873
+ 'like',
5874
+ 'ilike',
5875
+ 'like_and',
5876
+ 'like_or',
5877
+ 'ilike_and',
5878
+ 'ilike_or',
5879
+ 'in',
5880
+ 'not_in',
5881
+ 'contains',
5882
+ 'not_contains'
5883
+ ])),
5884
+ value: v.unknown()
5885
+ })))
5886
+ });
5887
+ /**
5888
+ * DAC log
5889
+ */
5890
+ export const vPlatformApiDataActivationClientControllerLogShowResponse = vDataActivationClientLogResponse;
5891
+ export const vPlatformApiDatalakeControllerIndexPath = v.object({
5892
+ tenant_slug: v.string()
5893
+ });
5894
+ export const vPlatformApiDatalakeControllerIndexQuery = v.object({
5895
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5896
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5897
+ order_by: v.optional(v.array(v.string())),
5898
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5899
+ filters: v.optional(v.array(v.object({
5900
+ field: v.string(),
5901
+ op: v.optional(v.picklist([
5902
+ '==',
5903
+ '!=',
5904
+ '<',
5905
+ '<=',
5906
+ '>',
5907
+ '>=',
5908
+ 'empty',
5909
+ 'not_empty',
5910
+ 'like',
5911
+ 'ilike',
5912
+ 'like_and',
5913
+ 'like_or',
5914
+ 'ilike_and',
5915
+ 'ilike_or',
5916
+ 'in',
5917
+ 'not_in',
5918
+ 'contains',
5919
+ 'not_contains'
5920
+ ])),
5921
+ value: v.unknown()
5922
+ })))
5923
+ });
5924
+ /**
5925
+ * Datalake list
5926
+ */
5927
+ export const vPlatformApiDatalakeControllerIndexResponse = vDatalakeListResponse;
5928
+ /**
5929
+ * Full Datalake resource (POST semantics — all fields required)
5930
+ */
5931
+ export const vPlatformApiDatalakeControllerCreateBody = vDatalakeRequestWritable;
5932
+ export const vPlatformApiDatalakeControllerCreatePath = v.object({
5933
+ tenant_slug: v.string()
5934
+ });
5935
+ export const vPlatformApiDatalakeControllerCreateQuery = v.object({
5936
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5937
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5938
+ order_by: v.optional(v.array(v.string())),
5939
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5940
+ filters: v.optional(v.array(v.object({
5941
+ field: v.string(),
5942
+ op: v.optional(v.picklist([
5943
+ '==',
5944
+ '!=',
5945
+ '<',
5946
+ '<=',
5947
+ '>',
5948
+ '>=',
5949
+ 'empty',
5950
+ 'not_empty',
5951
+ 'like',
5952
+ 'ilike',
5953
+ 'like_and',
5954
+ 'like_or',
5955
+ 'ilike_and',
5956
+ 'ilike_or',
5957
+ 'in',
5958
+ 'not_in',
5959
+ 'contains',
5960
+ 'not_contains'
5961
+ ])),
5962
+ value: v.unknown()
5963
+ })))
5964
+ });
5965
+ /**
5966
+ * Datalake created
5967
+ */
5968
+ export const vPlatformApiDatalakeControllerCreateResponse = vDatalakeResponse;
5969
+ /**
5970
+ * Upload link request
5971
+ */
5972
+ export const vPlatformApiDatalakeControllerCreateUploadLinkBody = vUploadLinkRequest;
5973
+ export const vPlatformApiDatalakeControllerCreateUploadLinkPath = v.object({
5974
+ tenant_slug: v.string(),
5975
+ datalake_slug: v.string()
5976
+ });
5977
+ export const vPlatformApiDatalakeControllerCreateUploadLinkQuery = v.object({
5978
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
5979
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
5980
+ order_by: v.optional(v.array(v.string())),
5981
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
5982
+ filters: v.optional(v.array(v.object({
5983
+ field: v.string(),
5984
+ op: v.optional(v.picklist([
5985
+ '==',
5986
+ '!=',
5987
+ '<',
5988
+ '<=',
5989
+ '>',
5990
+ '>=',
5991
+ 'empty',
5992
+ 'not_empty',
5993
+ 'like',
5994
+ 'ilike',
5995
+ 'like_and',
5996
+ 'like_or',
5997
+ 'ilike_and',
5998
+ 'ilike_or',
5999
+ 'in',
6000
+ 'not_in',
6001
+ 'contains',
6002
+ 'not_contains'
6003
+ ])),
6004
+ value: v.unknown()
6005
+ })))
6006
+ });
6007
+ /**
6008
+ * Presigned upload link
6009
+ */
6010
+ export const vPlatformApiDatalakeControllerCreateUploadLinkResponse = vUploadLinkResponse;
6011
+ /**
6012
+ * Execute payload
6013
+ */
6014
+ export const vPlatformApiAgenticWorkflowOperationsControllerExecuteBody = vExecuteActionRequest;
6015
+ export const vPlatformApiAgenticWorkflowOperationsControllerExecutePath = v.object({
6016
+ tenant_slug: v.string(),
6017
+ workflow_slug: v.string()
6018
+ });
6019
+ /**
6020
+ * Execution result
6021
+ */
6022
+ export const vPlatformApiAgenticWorkflowOperationsControllerExecuteResponse = vExecuteActionResponse;
6023
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogShowPath = v.object({
6024
+ tenant_slug: v.string(),
6025
+ workflow_slug: v.string(),
6026
+ id: v.pipe(v.string(), v.uuid())
6027
+ });
6028
+ /**
6029
+ * Batch log
6030
+ */
6031
+ export const vPlatformApiAgenticWorkflowOperationsControllerBatchLogShowResponse = vBatchLogResponse;
6032
+ export const vPlatformApiInteroperabilityContractControllerMetadataPath = v.object({
6033
+ tenant_slug: v.string(),
6034
+ datalake_slug: v.string(),
6035
+ slug: v.string()
6036
+ });
6037
+ export const vPlatformApiInteroperabilityContractControllerMetadataQuery = v.object({
6038
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6039
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6040
+ order_by: v.optional(v.array(v.string())),
6041
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6042
+ filters: v.optional(v.array(v.object({
6043
+ field: v.string(),
6044
+ op: v.optional(v.picklist([
6045
+ '==',
6046
+ '!=',
6047
+ '<',
6048
+ '<=',
6049
+ '>',
6050
+ '>=',
6051
+ 'empty',
6052
+ 'not_empty',
6053
+ 'like',
6054
+ 'ilike',
6055
+ 'like_and',
6056
+ 'like_or',
6057
+ 'ilike_and',
6058
+ 'ilike_or',
6059
+ 'in',
6060
+ 'not_in',
6061
+ 'contains',
6062
+ 'not_contains'
6063
+ ])),
6064
+ value: v.unknown()
6065
+ })))
6066
+ });
6067
+ /**
6068
+ * Markdown with resource field documentation
6069
+ */
6070
+ export const vPlatformApiInteroperabilityContractControllerMetadataResponse = v.string();
6071
+ export const vPlatformApiInteroperabilityContractControllerIndexPath = v.object({
6072
+ tenant_slug: v.string(),
6073
+ datalake_slug: v.string()
6074
+ });
6075
+ export const vPlatformApiInteroperabilityContractControllerIndexQuery = v.object({
6076
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6077
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6078
+ order_by: v.optional(v.array(v.string())),
6079
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6080
+ filters: v.optional(v.array(v.object({
6081
+ field: v.string(),
6082
+ op: v.optional(v.picklist([
6083
+ '==',
6084
+ '!=',
6085
+ '<',
6086
+ '<=',
6087
+ '>',
6088
+ '>=',
6089
+ 'empty',
6090
+ 'not_empty',
6091
+ 'like',
6092
+ 'ilike',
6093
+ 'like_and',
6094
+ 'like_or',
6095
+ 'ilike_and',
6096
+ 'ilike_or',
6097
+ 'in',
6098
+ 'not_in',
6099
+ 'contains',
6100
+ 'not_contains'
6101
+ ])),
6102
+ value: v.unknown()
6103
+ })))
6104
+ });
6105
+ /**
6106
+ * Contract list
6107
+ */
6108
+ export const vPlatformApiInteroperabilityContractControllerIndexResponse = vInteroperabilityContractListResponse;
6109
+ /**
6110
+ * Full contract resource (PUT semantics on update — all required fields must be present)
6111
+ */
6112
+ export const vPlatformApiInteroperabilityContractControllerCreateBody = vInteroperabilityContractRequestWritable;
6113
+ export const vPlatformApiInteroperabilityContractControllerCreatePath = v.object({
6114
+ tenant_slug: v.string(),
6115
+ datalake_slug: v.string()
6116
+ });
6117
+ export const vPlatformApiInteroperabilityContractControllerCreateQuery = v.object({
6118
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6119
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6120
+ order_by: v.optional(v.array(v.string())),
6121
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6122
+ filters: v.optional(v.array(v.object({
6123
+ field: v.string(),
6124
+ op: v.optional(v.picklist([
6125
+ '==',
6126
+ '!=',
6127
+ '<',
6128
+ '<=',
6129
+ '>',
6130
+ '>=',
6131
+ 'empty',
6132
+ 'not_empty',
6133
+ 'like',
6134
+ 'ilike',
6135
+ 'like_and',
6136
+ 'like_or',
6137
+ 'ilike_and',
6138
+ 'ilike_or',
6139
+ 'in',
6140
+ 'not_in',
6141
+ 'contains',
6142
+ 'not_contains'
6143
+ ])),
6144
+ value: v.unknown()
6145
+ })))
6146
+ });
6147
+ /**
6148
+ * Contract created
6149
+ */
6150
+ export const vPlatformApiInteroperabilityContractControllerCreateResponse = vInteroperabilityContractResponse;
6151
+ export const vPlatformApiGenericTableControllerIndexPath = v.object({
6152
+ tenant_slug: v.string(),
6153
+ datalake_slug: v.string()
6154
+ });
6155
+ export const vPlatformApiGenericTableControllerIndexQuery = v.object({
6156
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6157
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6158
+ order_by: v.optional(v.array(v.string())),
6159
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6160
+ filters: v.optional(v.array(v.object({
6161
+ field: v.string(),
6162
+ op: v.optional(v.picklist([
6163
+ '==',
6164
+ '!=',
6165
+ '<',
6166
+ '<=',
6167
+ '>',
6168
+ '>=',
6169
+ 'empty',
6170
+ 'not_empty',
6171
+ 'like',
6172
+ 'ilike',
6173
+ 'like_and',
6174
+ 'like_or',
6175
+ 'ilike_and',
6176
+ 'ilike_or',
6177
+ 'in',
6178
+ 'not_in',
6179
+ 'contains',
6180
+ 'not_contains'
6181
+ ])),
6182
+ value: v.unknown()
6183
+ })))
2986
6184
  });
2987
6185
  /**
2988
6186
  * Generic table list
2989
6187
  */
2990
6188
  export const vPlatformApiGenericTableControllerIndexResponse = vGenericTableListResponse;
2991
- export const vPlatformApiGenericTableControllerCreateData = v.object({
2992
- body: v.optional(vGenericTableRequestWritable),
2993
- path: v.object({
2994
- tenant_slug: v.string(),
2995
- datalake_slug: v.string()
2996
- }),
2997
- query: v.optional(v.never())
6189
+ /**
6190
+ * Full Generic Table resource (PUT semantics — all fields required)
6191
+ */
6192
+ export const vPlatformApiGenericTableControllerCreateBody = vGenericTableRequestWritable;
6193
+ export const vPlatformApiGenericTableControllerCreatePath = v.object({
6194
+ tenant_slug: v.string(),
6195
+ datalake_slug: v.string()
6196
+ });
6197
+ export const vPlatformApiGenericTableControllerCreateQuery = v.object({
6198
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6199
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6200
+ order_by: v.optional(v.array(v.string())),
6201
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6202
+ filters: v.optional(v.array(v.object({
6203
+ field: v.string(),
6204
+ op: v.optional(v.picklist([
6205
+ '==',
6206
+ '!=',
6207
+ '<',
6208
+ '<=',
6209
+ '>',
6210
+ '>=',
6211
+ 'empty',
6212
+ 'not_empty',
6213
+ 'like',
6214
+ 'ilike',
6215
+ 'like_and',
6216
+ 'like_or',
6217
+ 'ilike_and',
6218
+ 'ilike_or',
6219
+ 'in',
6220
+ 'not_in',
6221
+ 'contains',
6222
+ 'not_contains'
6223
+ ])),
6224
+ value: v.unknown()
6225
+ })))
2998
6226
  });
2999
6227
  /**
3000
6228
  * Generic table created
3001
6229
  */
3002
6230
  export const vPlatformApiGenericTableControllerCreateResponse = vGenericTableResponse;
3003
- export const vPlatformApiMdmControllerVerifyData = v.object({
3004
- body: vMdmVerifyRequest,
3005
- path: v.object({
3006
- tenant_slug: v.string(),
3007
- datalake_slug: v.string()
3008
- }),
3009
- query: v.optional(v.never())
6231
+ export const vPlatformApiTenantControllerIndexQuery = v.object({
6232
+ page: v.optional(v.pipe(v.number(), v.integer())),
6233
+ page_size: v.optional(v.pipe(v.number(), v.integer()))
3010
6234
  });
3011
6235
  /**
3012
- * Verification result
6236
+ * Tenant list
3013
6237
  */
3014
- export const vPlatformApiMdmControllerVerifyResponse = vMdmVerifyResponse;
3015
- export const vPlatformApiDatalakeControllerCreateUploadLinkData = v.object({
3016
- body: vUploadLinkRequest,
3017
- path: v.object({
3018
- tenant_slug: v.string(),
3019
- datalake_slug: v.string()
3020
- }),
3021
- query: v.optional(v.never())
6238
+ export const vPlatformApiTenantControllerIndexResponse = vTenantListResponse;
6239
+ export const vPlatformApiDatasetControllerDatasetMetadataPath = v.object({
6240
+ dataset_type: v.string()
6241
+ });
6242
+ export const vPlatformApiDatasetControllerDatasetMetadataQuery = v.object({
6243
+ datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
6244
+ generic_table_id: v.optional(v.pipe(v.string(), v.uuid()))
3022
6245
  });
3023
6246
  /**
3024
- * Presigned upload link
6247
+ * Markdown document with field definitions
3025
6248
  */
3026
- export const vPlatformApiDatalakeControllerCreateUploadLinkResponse = vUploadLinkResponse;
3027
- export const vPlatformApiDatalakeControllerShowData = v.object({
3028
- body: v.optional(v.never()),
3029
- path: v.object({
3030
- tenant_slug: v.string(),
3031
- id: v.pipe(v.string(), v.uuid())
3032
- }),
3033
- query: v.optional(v.never())
6249
+ export const vPlatformApiDatasetControllerDatasetMetadataResponse = v.string();
6250
+ export const vPlatformApiDatalakeControllerShowPath = v.object({
6251
+ tenant_slug: v.string(),
6252
+ id: v.pipe(v.string(), v.uuid())
6253
+ });
6254
+ export const vPlatformApiDatalakeControllerShowQuery = v.object({
6255
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6256
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6257
+ order_by: v.optional(v.array(v.string())),
6258
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6259
+ filters: v.optional(v.array(v.object({
6260
+ field: v.string(),
6261
+ op: v.optional(v.picklist([
6262
+ '==',
6263
+ '!=',
6264
+ '<',
6265
+ '<=',
6266
+ '>',
6267
+ '>=',
6268
+ 'empty',
6269
+ 'not_empty',
6270
+ 'like',
6271
+ 'ilike',
6272
+ 'like_and',
6273
+ 'like_or',
6274
+ 'ilike_and',
6275
+ 'ilike_or',
6276
+ 'in',
6277
+ 'not_in',
6278
+ 'contains',
6279
+ 'not_contains'
6280
+ ])),
6281
+ value: v.unknown()
6282
+ })))
3034
6283
  });
3035
6284
  /**
3036
6285
  * Datalake
3037
6286
  */
3038
6287
  export const vPlatformApiDatalakeControllerShowResponse = vDatalakeResponse;
3039
- export const vPlatformApiToolControllerIndexData = v.object({
3040
- body: v.optional(v.never()),
3041
- path: v.object({
3042
- tenant_slug: v.string()
3043
- }),
3044
- query: v.optional(v.object({
3045
- page: v.optional(v.pipe(v.number(), v.integer())),
3046
- page_size: v.optional(v.pipe(v.number(), v.integer()))
3047
- }))
6288
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadPath = v.object({
6289
+ tenant_slug: v.string(),
6290
+ workflow_slug: v.string(),
6291
+ id: v.pipe(v.string(), v.uuid())
3048
6292
  });
3049
6293
  /**
3050
- * Tool list
6294
+ * Presigned download URL
3051
6295
  */
3052
- export const vPlatformApiToolControllerIndexResponse = vToolListResponse;
3053
- export const vPlatformApiToolControllerCreateData = v.object({
3054
- body: v.optional(vToolRequestWritable),
3055
- path: v.object({
3056
- tenant_slug: v.string()
3057
- }),
3058
- query: v.optional(v.never())
6296
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadResponse = v.object({
6297
+ url: v.optional(v.pipe(v.string(), v.url()))
3059
6298
  });
3060
6299
  /**
3061
- * Tool created
6300
+ * Session details
3062
6301
  */
3063
- export const vPlatformApiToolControllerCreateResponse = vToolResponse;
3064
- export const vPlatformApiToolControllerDeleteData = v.object({
3065
- body: v.optional(v.never()),
3066
- path: v.object({
3067
- tenant_slug: v.string(),
3068
- id: v.pipe(v.string(), v.uuid())
3069
- }),
3070
- query: v.optional(v.never())
6302
+ export const vPlatformApiSessionControllerVerifyResponse = vSessionResponse;
6303
+ export const vPlatformApiDataActivationClientControllerDeletePath = v.object({
6304
+ tenant_slug: v.string(),
6305
+ datalake_slug: v.string(),
6306
+ slug: v.string()
6307
+ });
6308
+ export const vPlatformApiDataActivationClientControllerDeleteQuery = v.object({
6309
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6310
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6311
+ order_by: v.optional(v.array(v.string())),
6312
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6313
+ filters: v.optional(v.array(v.object({
6314
+ field: v.string(),
6315
+ op: v.optional(v.picklist([
6316
+ '==',
6317
+ '!=',
6318
+ '<',
6319
+ '<=',
6320
+ '>',
6321
+ '>=',
6322
+ 'empty',
6323
+ 'not_empty',
6324
+ 'like',
6325
+ 'ilike',
6326
+ 'like_and',
6327
+ 'like_or',
6328
+ 'ilike_and',
6329
+ 'ilike_or',
6330
+ 'in',
6331
+ 'not_in',
6332
+ 'contains',
6333
+ 'not_contains'
6334
+ ])),
6335
+ value: v.unknown()
6336
+ })))
3071
6337
  });
3072
6338
  /**
3073
6339
  * No Content
3074
6340
  */
3075
- export const vPlatformApiToolControllerDeleteResponse = v.void();
3076
- export const vPlatformApiToolControllerShowData = v.object({
3077
- body: v.optional(v.never()),
3078
- path: v.object({
3079
- tenant_slug: v.string(),
3080
- id: v.pipe(v.string(), v.uuid())
3081
- }),
3082
- query: v.optional(v.never())
6341
+ export const vPlatformApiDataActivationClientControllerDeleteResponse = v.void();
6342
+ export const vPlatformApiDataActivationClientControllerShowPath = v.object({
6343
+ tenant_slug: v.string(),
6344
+ datalake_slug: v.string(),
6345
+ slug: v.string()
6346
+ });
6347
+ export const vPlatformApiDataActivationClientControllerShowQuery = v.object({
6348
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6349
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6350
+ order_by: v.optional(v.array(v.string())),
6351
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6352
+ filters: v.optional(v.array(v.object({
6353
+ field: v.string(),
6354
+ op: v.optional(v.picklist([
6355
+ '==',
6356
+ '!=',
6357
+ '<',
6358
+ '<=',
6359
+ '>',
6360
+ '>=',
6361
+ 'empty',
6362
+ 'not_empty',
6363
+ 'like',
6364
+ 'ilike',
6365
+ 'like_and',
6366
+ 'like_or',
6367
+ 'ilike_and',
6368
+ 'ilike_or',
6369
+ 'in',
6370
+ 'not_in',
6371
+ 'contains',
6372
+ 'not_contains'
6373
+ ])),
6374
+ value: v.unknown()
6375
+ })))
3083
6376
  });
3084
6377
  /**
3085
- * Tool
6378
+ * DAC
3086
6379
  */
3087
- export const vPlatformApiToolControllerShowResponse = vToolResponse;
3088
- export const vPlatformApiToolControllerUpdateData = v.object({
3089
- body: v.optional(vToolRequestWritable),
3090
- path: v.object({
3091
- tenant_slug: v.string(),
3092
- id: v.pipe(v.string(), v.uuid())
3093
- }),
3094
- query: v.optional(v.never())
6380
+ export const vPlatformApiDataActivationClientControllerShowResponse = vDataActivationClientResponse;
6381
+ /**
6382
+ * Full DAC resource (all required fields must be present)
6383
+ */
6384
+ export const vPlatformApiDataActivationClientControllerUpdateBody = vDataActivationClientRequestWritable;
6385
+ export const vPlatformApiDataActivationClientControllerUpdatePath = v.object({
6386
+ tenant_slug: v.string(),
6387
+ datalake_slug: v.string(),
6388
+ slug: v.string()
6389
+ });
6390
+ export const vPlatformApiDataActivationClientControllerUpdateQuery = v.object({
6391
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6392
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6393
+ order_by: v.optional(v.array(v.string())),
6394
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6395
+ filters: v.optional(v.array(v.object({
6396
+ field: v.string(),
6397
+ op: v.optional(v.picklist([
6398
+ '==',
6399
+ '!=',
6400
+ '<',
6401
+ '<=',
6402
+ '>',
6403
+ '>=',
6404
+ 'empty',
6405
+ 'not_empty',
6406
+ 'like',
6407
+ 'ilike',
6408
+ 'like_and',
6409
+ 'like_or',
6410
+ 'ilike_and',
6411
+ 'ilike_or',
6412
+ 'in',
6413
+ 'not_in',
6414
+ 'contains',
6415
+ 'not_contains'
6416
+ ])),
6417
+ value: v.unknown()
6418
+ })))
3095
6419
  });
3096
6420
  /**
3097
- * Tool updated
6421
+ * DAC updated
3098
6422
  */
3099
- export const vPlatformApiToolControllerUpdateResponse = vToolResponse;
6423
+ export const vPlatformApiDataActivationClientControllerUpdateResponse = vDataActivationClientResponse;
6424
+ export const vPlatformApiToolControllerIndexPath = v.object({
6425
+ tenant_slug: v.string()
6426
+ });
6427
+ export const vPlatformApiToolControllerIndexQuery = v.object({
6428
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6429
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6430
+ order_by: v.optional(v.array(v.string())),
6431
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6432
+ filters: v.optional(v.array(v.object({
6433
+ field: v.string(),
6434
+ op: v.optional(v.picklist([
6435
+ '==',
6436
+ '!=',
6437
+ '<',
6438
+ '<=',
6439
+ '>',
6440
+ '>=',
6441
+ 'empty',
6442
+ 'not_empty',
6443
+ 'like',
6444
+ 'ilike',
6445
+ 'like_and',
6446
+ 'like_or',
6447
+ 'ilike_and',
6448
+ 'ilike_or',
6449
+ 'in',
6450
+ 'not_in',
6451
+ 'contains',
6452
+ 'not_contains'
6453
+ ])),
6454
+ value: v.unknown()
6455
+ })))
6456
+ });
6457
+ /**
6458
+ * Tool list
6459
+ */
6460
+ export const vPlatformApiToolControllerIndexResponse = vToolListResponse;
6461
+ /**
6462
+ * Full Tool resource (PUT semantics — all fields required)
6463
+ */
6464
+ export const vPlatformApiToolControllerCreateBody = vToolRequestWritable;
6465
+ export const vPlatformApiToolControllerCreatePath = v.object({
6466
+ tenant_slug: v.string()
6467
+ });
6468
+ export const vPlatformApiToolControllerCreateQuery = v.object({
6469
+ page: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
6470
+ page_size: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(100))),
6471
+ order_by: v.optional(v.array(v.string())),
6472
+ order_directions: v.optional(v.array(v.picklist(['asc', 'desc']))),
6473
+ filters: v.optional(v.array(v.object({
6474
+ field: v.string(),
6475
+ op: v.optional(v.picklist([
6476
+ '==',
6477
+ '!=',
6478
+ '<',
6479
+ '<=',
6480
+ '>',
6481
+ '>=',
6482
+ 'empty',
6483
+ 'not_empty',
6484
+ 'like',
6485
+ 'ilike',
6486
+ 'like_and',
6487
+ 'like_or',
6488
+ 'ilike_and',
6489
+ 'ilike_or',
6490
+ 'in',
6491
+ 'not_in',
6492
+ 'contains',
6493
+ 'not_contains'
6494
+ ])),
6495
+ value: v.unknown()
6496
+ })))
6497
+ });
6498
+ /**
6499
+ * Tool created
6500
+ */
6501
+ export const vPlatformApiToolControllerCreateResponse = vToolResponse;
3100
6502
  //# sourceMappingURL=valibot.gen.js.map