@alvera-ai/platform-sdk 0.2.4 → 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 +347 -7
  2. package/dist/cli.js.map +1 -1
  3. package/dist/client.d.ts +187 -3
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +167 -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 +334 -130
  27. package/dist/generated/sdk.gen.d.ts.map +1 -1
  28. package/dist/generated/sdk.gen.js +1065 -274
  29. package/dist/generated/sdk.gen.js.map +1 -1
  30. package/dist/generated/types.gen.d.ts +6317 -705
  31. package/dist/generated/types.gen.d.ts.map +1 -1
  32. package/dist/generated/valibot.gen.d.ts +26911 -8100
  33. package/dist/generated/valibot.gen.d.ts.map +1 -1
  34. package/dist/generated/valibot.gen.js +3810 -429
  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,52 +1588,214 @@ 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
1168
1605
  */
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
- });
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());
1174
1616
  /**
1175
- * AWSLambdaResponse
1617
+ * EmailCallResponse
1176
1618
  *
1177
- * AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes.
1619
+ * Email tool-call config Liquid-templated recipient, subject, and body.
1178
1620
  */
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',
1198
- 'rollback_in_progress',
1199
- 'rollback_complete',
1200
- 'rollback_failed',
1201
- 'delete_in_progress',
1621
+ export const vEmailCallResponse = v.pipe(v.object({
1622
+ body: vTemplateConfigResponse,
1623
+ subject: vTemplateConfigResponse,
1624
+ to: vTemplateConfigResponse
1625
+ }), v.readonly());
1626
+ /**
1627
+ * ActionEmailCallResponse
1628
+ */
1629
+ export const vActionEmailCallResponse = v.intersect([vEmailCallResponse, v.object({
1630
+ tool_call_type: v.picklist(['email_request'])
1631
+ })]);
1632
+ /**
1633
+ * RESTCallResponse
1634
+ *
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.
1636
+ */
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',
1795
+ 'rollback_in_progress',
1796
+ 'rollback_complete',
1797
+ 'rollback_failed',
1798
+ 'delete_in_progress',
1202
1799
  'delete_complete',
1203
1800
  'delete_failed',
1204
1801
  'update_in_progress',
@@ -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
  *
@@ -1302,11 +2000,11 @@ export const vDatalakeResponse = v.pipe(v.object({
1302
2000
  regulated_data_db_reader_enable_ssl: v.boolean(),
1303
2001
  unregulated_db_reader_host: v.string(),
1304
2002
  unregulated_db_reader_port: v.pipe(v.number(), v.integer()),
1305
- status: v.optional(v.picklist([
2003
+ status: v.optional(v.pipe(v.picklist([
1306
2004
  'new',
1307
2005
  'processing',
1308
2006
  'ready'
1309
- ])),
2007
+ ]), v.readonly())),
1310
2008
  updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
1311
2009
  pool_size: v.nullable(v.pipe(v.number(), v.integer())),
1312
2010
  description: v.nullish(v.string()),
@@ -1378,6 +2076,50 @@ export const vCloudflarePagesConfigResponse = v.pipe(v.object({
1378
2076
  production_branch: v.nullish(v.string()),
1379
2077
  project_name: v.nullish(v.pipe(v.string(), v.readonly()))
1380
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
+ });
1381
2123
  /**
1382
2124
  * CloudWatchLogGroupResponse
1383
2125
  *
@@ -1507,6 +2249,31 @@ export const vToolListResponse = v.object({
1507
2249
  data: v.array(vToolResponse),
1508
2250
  meta: vPaginationMeta
1509
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
+ });
1510
2277
  /**
1511
2278
  * ToolRESTAPIRequest
1512
2279
  */
@@ -1557,6 +2324,74 @@ export const vDatalakeRequest = v.object({
1557
2324
  unregulated_db_reader_auth_method: v.picklist(['password', 'iam_role']),
1558
2325
  slug: v.optional(v.string())
1559
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
+ });
1560
2395
  /**
1561
2396
  * ManualUploadRequest
1562
2397
  *
@@ -1641,6 +2476,12 @@ export const vConnectedAppResponseWritable = v.pipe(v.object({
1641
2476
  url: v.string()
1642
2477
  })))
1643
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
+ })]);
1644
2485
  /**
1645
2486
  * CloudflarePagesConfigRequest
1646
2487
  *
@@ -1688,6 +2529,26 @@ export const vSftpRequestWritable = v.object({
1688
2529
  private_key_passphrase: v.nullish(v.string()),
1689
2530
  user_name: v.string()
1690
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());
1691
2552
  /**
1692
2553
  * CloudStorageAwsRequest
1693
2554
  *
@@ -1702,6 +2563,40 @@ export const vCloudStorageAwsRequestWritable = v.object({
1702
2563
  region: v.string(),
1703
2564
  secret_access_key: v.nullish(v.string())
1704
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());
1705
2600
  /**
1706
2601
  * EmailResponse
1707
2602
  *
@@ -1724,6 +2619,12 @@ export const vEmailResponseWritable = v.pipe(v.object({
1724
2619
  smtp_port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
1725
2620
  smtp_username: v.optional(v.string())
1726
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
+ })]);
1727
2628
  /**
1728
2629
  * RESTAPIRequest
1729
2630
  *
@@ -1769,6 +2670,31 @@ export const vRestapiRequestWritable = v.object({
1769
2670
  timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
1770
2671
  username: v.nullish(v.string())
1771
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
+ });
1772
2698
  /**
1773
2699
  * SQSResponse
1774
2700
  *
@@ -1830,9 +2756,10 @@ export const vSqlDatabaseResponseWritable = v.pipe(v.object({
1830
2756
  /**
1831
2757
  * RESTCallRequest
1832
2758
  *
1833
- * 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
1834
2760
  */
1835
2761
  export const vRestCallRequestWritable = v.object({
2762
+ body: v.optional(vTemplateConfigRequestWritable),
1836
2763
  method: v.picklist([
1837
2764
  'head',
1838
2765
  'get',
@@ -1840,10 +2767,43 @@ export const vRestCallRequestWritable = v.object({
1840
2767
  'post',
1841
2768
  'delete',
1842
2769
  'patch'
1843
- ])
2770
+ ]),
2771
+ pagination_context_template: vTemplateConfigRequestWritable,
2772
+ params: v.optional(vTemplateConfigRequestWritable),
2773
+ path: vTemplateConfigRequestWritable
1844
2774
  });
1845
2775
  /**
1846
- * SNSResponse
2776
+ * InteroperabilityContractRequest
2777
+ *
2778
+ * Declarative execution spec binding a `(datalake, resource_type)` pair to the ingestion pipeline: filter → transform → mdm_input → resolve → upsert. Request
2779
+ */
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
1847
2807
  *
1848
2808
  * AWS SNS tool configuration for sending SMS messages via the SNS Publish API.
1849
2809
  */
@@ -1990,6 +2950,18 @@ export const vCloudWatchLogGroupRequestWritable = v.object({
1990
2950
  region: v.string(),
1991
2951
  secret_access_key: v.nullish(v.string())
1992
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());
1993
2965
  /**
1994
2966
  * ToolSNSResponse
1995
2967
  */
@@ -2127,6 +3099,18 @@ export const vDataSourceListResponseWritable = v.object({
2127
3099
  data: v.array(vDataSourceResponseWritable),
2128
3100
  meta: vPaginationMeta
2129
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
+ })]);
2130
3114
  /**
2131
3115
  * SharePointRequest
2132
3116
  *
@@ -2134,6 +3118,7 @@ export const vDataSourceListResponseWritable = v.object({
2134
3118
  */
2135
3119
  export const vSharePointRequestWritable = v.object({
2136
3120
  auth_method: v.picklist(['client_credentials', 'managed_identity']),
3121
+ azure_tenant_id: v.string(),
2137
3122
  client_id: v.nullish(v.string()),
2138
3123
  client_secret: v.nullish(v.string()),
2139
3124
  drive_id: v.nullish(v.string()),
@@ -2143,8 +3128,7 @@ export const vSharePointRequestWritable = v.object({
2143
3128
  'library',
2144
3129
  'list'
2145
3130
  ]),
2146
- site_url: v.nullish(v.string()),
2147
- tenant_id: v.string()
3131
+ site_url: v.nullish(v.string())
2148
3132
  });
2149
3133
  /**
2150
3134
  * CloudStorageR2Request
@@ -2159,6 +3143,12 @@ export const vCloudStorageR2RequestWritable = v.object({
2159
3143
  region: v.optional(v.string()),
2160
3144
  secret_access_key: v.string()
2161
3145
  });
3146
+ /**
3147
+ * DataActivationClientSFTPCallResponse
3148
+ */
3149
+ export const vDataActivationClientSftpCallResponseWritable = v.intersect([vSftpCallResponse, v.object({
3150
+ tool_call_type: v.picklist(['sftp_request'])
3151
+ })]);
2162
3152
  /**
2163
3153
  * S3CloudStorageAwsRequest
2164
3154
  */
@@ -2171,12 +3161,85 @@ export const vS3CloudStorageAwsRequestWritable = v.intersect([vCloudStorageAwsRe
2171
3161
  export const vToolS3ResponseWritable = v.intersect([vS3ResponseWritable, v.object({
2172
3162
  tool_body_type: v.picklist(['s3'])
2173
3163
  })]);
3164
+ /**
3165
+ * DataActivationClientS3CallRequest
3166
+ */
3167
+ export const vDataActivationClientS3CallRequestWritable = v.intersect([vS3CallRequest, v.object({
3168
+ tool_call_type: v.picklist(['s3_request'])
3169
+ })]);
2174
3170
  /**
2175
3171
  * ToolCloudWatchLogGroupRequest
2176
3172
  */
2177
3173
  export const vToolCloudWatchLogGroupRequestWritable = v.intersect([vCloudWatchLogGroupRequestWritable, v.object({
2178
3174
  tool_body_type: v.picklist(['cloud_watch_log_group'])
2179
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
+ })]);
2180
3243
  /**
2181
3244
  * ToolSQLDatabaseResponse
2182
3245
  */
@@ -2213,6 +3276,12 @@ export const vGenericTableRequestWritable = v.object({
2213
3276
  description: v.optional(v.string()),
2214
3277
  title: v.optional(v.string())
2215
3278
  });
3279
+ /**
3280
+ * ActionRESTCallRequest
3281
+ */
3282
+ export const vActionRestCallRequestWritable = v.intersect([vRestCallRequestWritable, v.object({
3283
+ tool_call_type: v.picklist(['restapi_request'])
3284
+ })]);
2216
3285
  /**
2217
3286
  * GenericTableListResponse
2218
3287
  *
@@ -2228,6 +3297,15 @@ export const vGenericTableListResponseWritable = v.object({
2228
3297
  export const vToolSqlDatabaseRequestWritable = v.intersect([vSqlDatabaseRequestWritable, v.object({
2229
3298
  tool_body_type: v.picklist(['sql_database'])
2230
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
+ });
2231
3309
  /**
2232
3310
  * S3CloudStorageR2Request
2233
3311
  */
@@ -2252,6 +3330,12 @@ export const vS3RequestWritable = v.object({
2252
3330
  export const vToolS3RequestWritable = v.intersect([vS3RequestWritable, v.object({
2253
3331
  tool_body_type: v.picklist(['s3'])
2254
3332
  })]);
3333
+ /**
3334
+ * ActionSQLQueryCallResponse
3335
+ */
3336
+ export const vActionSqlQueryCallResponseWritable = v.intersect([vSqlQueryCallResponseWritable, v.object({
3337
+ tool_call_type: v.picklist(['sql_query'])
3338
+ })]);
2255
3339
  /**
2256
3340
  * ConnectedAppListResponse
2257
3341
  *
@@ -2292,6 +3376,12 @@ export const vEmailRequestWritable = v.object({
2292
3376
  export const vToolEmailRequestWritable = v.intersect([vEmailRequestWritable, v.object({
2293
3377
  tool_body_type: v.picklist(['email'])
2294
3378
  })]);
3379
+ /**
3380
+ * DataActivationClientS3CallResponse
3381
+ */
3382
+ export const vDataActivationClientS3CallResponseWritable = v.intersect([vS3CallResponse, v.object({
3383
+ tool_call_type: v.picklist(['s3_request'])
3384
+ })]);
2295
3385
  /**
2296
3386
  * RESTAPIResponse
2297
3387
  *
@@ -2345,6 +3435,7 @@ export const vToolRestapiResponseWritable = v.intersect([vRestapiResponseWritabl
2345
3435
  */
2346
3436
  export const vSharePointResponseWritable = v.pipe(v.object({
2347
3437
  auth_method: v.picklist(['client_credentials', 'managed_identity']),
3438
+ azure_tenant_id: v.string(),
2348
3439
  client_id: v.nullish(v.string()),
2349
3440
  drive_id: v.nullish(v.string()),
2350
3441
  drive_path: v.nullish(v.string()),
@@ -2353,8 +3444,7 @@ export const vSharePointResponseWritable = v.pipe(v.object({
2353
3444
  'library',
2354
3445
  'list'
2355
3446
  ]),
2356
- site_url: v.nullish(v.string()),
2357
- tenant_id: v.string()
3447
+ site_url: v.nullish(v.string())
2358
3448
  }), v.readonly());
2359
3449
  /**
2360
3450
  * ToolSharePointResponse
@@ -2382,25 +3472,30 @@ export const vAiAgentRequestWritable = v.object({
2382
3472
  updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
2383
3473
  });
2384
3474
  /**
2385
- * 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
2386
3482
  *
2387
- * 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.
2388
3484
  */
2389
- export const vRestCallResponseWritable = v.pipe(v.object({
2390
- method: v.picklist([
2391
- 'head',
2392
- 'get',
2393
- 'put',
2394
- 'post',
2395
- 'delete',
2396
- 'patch'
2397
- ])
3485
+ export const vAwsLambdaCallResponseWritable = v.pipe(v.object({
3486
+ timeout_ms: v.optional(v.pipe(v.number(), v.integer()))
2398
3487
  }), v.readonly());
2399
3488
  /**
2400
- * ActionStatusUpdaterRESTCallResponse
3489
+ * DataActivationClientAWSLambdaCallResponse
2401
3490
  */
2402
- export const vActionStatusUpdaterRestCallResponseWritable = v.intersect([vRestCallResponseWritable, v.object({
2403
- 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'])
2404
3499
  })]);
2405
3500
  /**
2406
3501
  * ToolSQSRequest
@@ -2439,6 +3534,157 @@ export const vToolAwsLambdaRequestWritable = v.intersect([vAwsLambdaRequestWrita
2439
3534
  export const vToolSharePointRequestWritable = v.intersect([vSharePointRequestWritable, v.object({
2440
3535
  tool_body_type: v.picklist(['sharepoint'])
2441
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
+ })]);
2442
3688
  /**
2443
3689
  * AWSLambdaResponse
2444
3690
  *
@@ -2463,6 +3709,86 @@ export const vAwsLambdaResponseWritable = v.pipe(v.object({
2463
3709
  export const vToolAwsLambdaResponseWritable = v.intersect([vAwsLambdaResponseWritable, v.object({
2464
3710
  tool_body_type: v.picklist(['aws_lambda'])
2465
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
+ });
2466
3792
  /**
2467
3793
  * ActionStatusUpdaterResponse
2468
3794
  *
@@ -2485,6 +3811,34 @@ export const vActionStatusUpdaterListResponseWritable = v.object({
2485
3811
  data: v.array(vActionStatusUpdaterResponseWritable),
2486
3812
  meta: vPaginationMeta
2487
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
+ })]);
2488
3842
  /**
2489
3843
  * CloudflarePagesConfigResponse
2490
3844
  *
@@ -2520,6 +3874,81 @@ export const vCloudWatchLogGroupResponseWritable = v.pipe(v.object({
2520
3874
  export const vToolCloudWatchLogGroupResponseWritable = v.intersect([vCloudWatchLogGroupResponseWritable, v.object({
2521
3875
  tool_body_type: v.picklist(['cloud_watch_log_group'])
2522
3876
  })]);
3877
+ /**
3878
+ * EmailCallRequest
3879
+ *
3880
+ * Email tool-call config — Liquid-templated recipient, subject, and body. Request
3881
+ */
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'])
3892
+ })]);
3893
+ /**
3894
+ * ActionRequest
3895
+ *
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
3897
+ */
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([
3915
+ v.intersect([v.object({
3916
+ tool_call_type: v.literal('sms_request')
3917
+ }), vActionSmsCallRequestWritable]),
3918
+ v.intersect([v.object({
3919
+ tool_call_type: v.literal('email_request')
3920
+ }), vActionEmailCallRequestWritable]),
3921
+ v.intersect([v.object({
3922
+ tool_call_type: v.literal('sql_query')
3923
+ }), vActionSqlQueryCallRequestWritable]),
3924
+ v.intersect([v.object({
3925
+ tool_call_type: v.literal('restapi_request')
3926
+ }), vActionRestCallRequestWritable]),
3927
+ v.intersect([v.object({
3928
+ tool_call_type: v.literal('sftp_request')
3929
+ }), vActionSftpCallRequestWritable]),
3930
+ v.intersect([v.object({
3931
+ tool_call_type: v.literal('microsoft_share_point_excel_request')
3932
+ }), vActionSharePointExcelCallRequestWritable]),
3933
+ v.intersect([v.object({
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
+ });
2523
3952
  /**
2524
3953
  * ToolRESTAPIRequest
2525
3954
  */
@@ -2641,481 +4070,2433 @@ export const vDatalakeRequestWritable = v.object({
2641
4070
  slug: v.optional(v.string()),
2642
4071
  unregulated_db_writer_pass: v.optional(v.string())
2643
4072
  });
2644
- export const vPlatformApiPingControllerPingData = v.object({
2645
- body: v.optional(v.never()),
2646
- path: v.optional(v.never()),
2647
- query: v.optional(v.never())
2648
- });
2649
4073
  /**
2650
- * 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.
2651
4077
  */
2652
- export const vPlatformApiPingControllerPingResponse = vPingResponse;
2653
- export const vPlatformApiDatasetControllerSearchData = v.object({
2654
- body: v.optional(v.never()),
2655
- path: v.object({
2656
- dataset: v.string()
2657
- }),
2658
- query: v.optional(v.object({
2659
- datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
2660
- page: v.optional(v.pipe(v.number(), v.integer())),
2661
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2662
- }))
2663
- });
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());
2664
4085
  /**
2665
- * Dataset search results
4086
+ * AgenticWorkflowRequest
4087
+ *
4088
+ * Agentic Workflow — event-driven automation pipeline Request
2666
4089
  */
2667
- export const vPlatformApiDatasetControllerSearchResponse = vDatasetSearchResponse;
2668
- export const vPlatformApiSessionControllerDeleteData = v.object({
2669
- body: v.optional(v.never()),
2670
- path: v.optional(v.never()),
2671
- query: v.optional(v.never())
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()))
2672
4106
  });
2673
- export const vPlatformApiSessionControllerCreateData = v.object({
2674
- body: vSessionRequest,
2675
- path: v.optional(v.never()),
2676
- query: v.optional(v.never())
4107
+ /**
4108
+ * AgenticWorkflowResponse
4109
+ *
4110
+ * Agentic Workflow — event-driven automation pipeline
4111
+ */
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
2677
4134
  });
2678
4135
  /**
2679
- * Session created
4136
+ * Page resolution request
2680
4137
  */
2681
- export const vPlatformApiSessionControllerCreateResponse = vSessionResponse;
2682
- export const vPlatformApiSessionControllerVerifyData = v.object({
2683
- body: v.optional(v.never()),
2684
- path: v.optional(v.never()),
2685
- query: v.optional(v.never())
4138
+ export const vPlatformApiConnectedAppControllerResolvePageBody = vResolvePageRequest;
4139
+ export const vPlatformApiConnectedAppControllerResolvePagePath = v.object({
4140
+ tenant_slug: v.string(),
4141
+ slug: v.string()
2686
4142
  });
2687
4143
  /**
2688
- * Session details
4144
+ * Resolved page details
2689
4145
  */
2690
- export const vPlatformApiSessionControllerVerifyResponse = vSessionResponse;
2691
- export const vPlatformApiTenantControllerIndexData = v.object({
2692
- body: v.optional(v.never()),
2693
- path: v.optional(v.never()),
2694
- query: v.optional(v.object({
2695
- page: v.optional(v.pipe(v.number(), v.integer())),
2696
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2697
- }))
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
+ })))
2698
4185
  });
2699
4186
  /**
2700
- * Tenant list
4187
+ * Pipeline output
2701
4188
  */
2702
- export const vPlatformApiTenantControllerIndexResponse = vTenantListResponse;
2703
- export const vPlatformApiActionStatusUpdaterControllerIndexData = v.object({
2704
- body: v.optional(v.never()),
2705
- path: v.object({
2706
- tenant_slug: v.string()
2707
- }),
2708
- query: v.optional(v.object({
2709
- page: v.optional(v.pipe(v.number(), v.integer())),
2710
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2711
- }))
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
+ })))
2712
4222
  });
2713
4223
  /**
2714
4224
  * Action status updater list
2715
4225
  */
2716
4226
  export const vPlatformApiActionStatusUpdaterControllerIndexResponse = vActionStatusUpdaterListResponse;
2717
- export const vPlatformApiActionStatusUpdaterControllerCreateData = v.object({
2718
- body: v.optional(vActionStatusUpdaterRequestWritable),
2719
- path: v.object({
2720
- tenant_slug: v.string()
2721
- }),
2722
- 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
+ })))
2723
4263
  });
2724
4264
  /**
2725
4265
  * Action status updater created
2726
4266
  */
2727
4267
  export const vPlatformApiActionStatusUpdaterControllerCreateResponse = vActionStatusUpdaterResponse;
2728
- export const vPlatformApiActionStatusUpdaterControllerUpdateData = v.object({
2729
- body: v.optional(vActionStatusUpdaterRequestWritable),
2730
- path: v.object({
2731
- tenant_slug: v.string(),
2732
- id: v.pipe(v.string(), v.uuid())
2733
- }),
2734
- 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
+ })))
2735
4301
  });
2736
4302
  /**
2737
- * Action status updater updated
4303
+ * Batch log list
2738
4304
  */
2739
- export const vPlatformApiActionStatusUpdaterControllerUpdateResponse = vActionStatusUpdaterResponse;
2740
- export const vPlatformApiWorkflowControllerExecuteData = v.object({
2741
- body: vExecuteActionRequest,
2742
- path: v.object({
2743
- tenant_slug: v.string(),
2744
- workflow_slug: v.string()
2745
- }),
2746
- 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()))
2747
4313
  });
2748
4314
  /**
2749
- * Execution result
4315
+ * Dataset search results
2750
4316
  */
2751
- export const vPlatformApiWorkflowControllerExecuteResponse = vExecuteActionResponse;
2752
- export const vPlatformApiConnectedAppControllerResolvePageData = v.object({
2753
- body: vResolvePageRequest,
2754
- path: v.object({
2755
- tenant_slug: v.string(),
2756
- slug: v.string()
2757
- }),
2758
- 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
+ })))
2759
4351
  });
2760
4352
  /**
2761
- * Resolved page details
4353
+ * Execution log list
2762
4354
  */
2763
- export const vPlatformApiConnectedAppControllerResolvePageResponse = vResolvePageResponse;
2764
- export const vPlatformApiConnectedAppControllerUpdatePageData = v.object({
2765
- body: vUpdatePageRequest,
2766
- path: v.object({
2767
- tenant_slug: v.string(),
2768
- slug: v.string()
2769
- }),
2770
- 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
+ })))
2771
4391
  });
2772
4392
  /**
2773
- * Updated message details
4393
+ * Presigned URL
2774
4394
  */
2775
- export const vPlatformApiConnectedAppControllerUpdatePageResponse = vUpdatePageResponse;
2776
- export const vPlatformApiDataActivationClientControllerIngestData = v.object({
2777
- body: vIngestRequest,
2778
- path: v.object({
2779
- tenant_slug: v.string(),
2780
- slug: v.string()
2781
- }),
2782
- 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
+ })))
2783
4430
  });
2784
4431
  /**
2785
- * Ingest response
4432
+ * Connected app
2786
4433
  */
2787
- export const vPlatformApiDataActivationClientControllerIngestResponse = vIngestResponse;
2788
- export const vPlatformApiDataActivationClientControllerIngestFileData = v.object({
2789
- body: vIngestFileRequest,
2790
- path: v.object({
2791
- tenant_slug: v.string(),
2792
- slug: v.string()
2793
- }),
2794
- 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
+ })))
2795
4473
  });
2796
4474
  /**
2797
- * Ingest file response
4475
+ * Connected app updated
2798
4476
  */
2799
- export const vPlatformApiDataActivationClientControllerIngestFileResponse = vIngestFileResponse;
2800
- export const vPlatformApiDatalakeControllerIndexData = v.object({
2801
- body: v.optional(v.never()),
2802
- path: v.object({
2803
- tenant_slug: v.string()
2804
- }),
2805
- query: v.optional(v.object({
2806
- page: v.optional(v.pipe(v.number(), v.integer())),
2807
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2808
- }))
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()
2809
4485
  });
2810
4486
  /**
2811
- * Datalake list
4487
+ * Verification result
2812
4488
  */
2813
- export const vPlatformApiDatalakeControllerIndexResponse = vDatalakeListResponse;
2814
- export const vPlatformApiDatalakeControllerCreateData = v.object({
2815
- body: v.optional(vDatalakeRequestWritable),
2816
- path: v.object({
2817
- tenant_slug: v.string()
2818
- }),
2819
- 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
+ })))
2820
4523
  });
2821
4524
  /**
2822
- * Datalake created
4525
+ * DAC list
2823
4526
  */
2824
- export const vPlatformApiDatalakeControllerCreateResponse = vDatalakeResponse;
2825
- export const vPlatformApiAiAgentControllerIndexData = v.object({
2826
- body: v.optional(v.never()),
2827
- path: v.object({
2828
- tenant_slug: v.string(),
2829
- datalake_slug: v.string()
2830
- }),
2831
- query: v.optional(v.object({
2832
- page: v.optional(v.pipe(v.number(), v.integer())),
2833
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2834
- }))
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
+ })))
2835
4565
  });
2836
4566
  /**
2837
- * AI agent list
4567
+ * DAC created
2838
4568
  */
2839
- export const vPlatformApiAiAgentControllerIndexResponse = vAiAgentListResponse;
2840
- export const vPlatformApiAiAgentControllerCreateData = v.object({
2841
- body: v.optional(vAiAgentRequestWritable),
2842
- path: v.object({
2843
- tenant_slug: v.string(),
2844
- datalake_slug: v.string()
2845
- }),
2846
- 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
+ })))
2847
4604
  });
2848
4605
  /**
2849
- * AI agent created
4606
+ * Route sync enqueued
2850
4607
  */
2851
- export const vPlatformApiAiAgentControllerCreateResponse = vAiAgentResponse;
2852
- export const vPlatformApiAiAgentControllerDeleteData = v.object({
2853
- body: v.optional(v.never()),
2854
- path: v.object({
2855
- tenant_slug: v.string(),
2856
- datalake_slug: v.string(),
2857
- id: v.pipe(v.string(), v.uuid())
2858
- }),
2859
- 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
+ })))
2860
4685
  });
2861
4686
  /**
2862
4687
  * No Content
2863
4688
  */
2864
- export const vPlatformApiAiAgentControllerDeleteResponse = v.void();
2865
- export const vPlatformApiAiAgentControllerShowData = v.object({
2866
- body: v.optional(v.never()),
2867
- path: v.object({
2868
- tenant_slug: v.string(),
2869
- datalake_slug: v.string(),
2870
- id: v.pipe(v.string(), v.uuid())
2871
- }),
2872
- 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
+ })))
2873
4723
  });
2874
4724
  /**
2875
- * AI agent
4725
+ * Tool
2876
4726
  */
2877
- export const vPlatformApiAiAgentControllerShowResponse = vAiAgentResponse;
2878
- export const vPlatformApiAiAgentControllerUpdateData = v.object({
2879
- body: v.optional(vAiAgentRequestWritable),
2880
- path: v.object({
2881
- tenant_slug: v.string(),
2882
- datalake_slug: v.string(),
2883
- id: v.pipe(v.string(), v.uuid())
2884
- }),
2885
- 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
+ })))
2886
4765
  });
2887
4766
  /**
2888
- * AI agent updated
4767
+ * Tool updated
2889
4768
  */
2890
- export const vPlatformApiAiAgentControllerUpdateResponse = vAiAgentResponse;
2891
- export const vPlatformApiConnectedAppMgmtControllerIndexData = v.object({
2892
- body: v.optional(v.never()),
2893
- path: v.object({
2894
- tenant_slug: v.string(),
2895
- datalake_slug: v.string()
2896
- }),
2897
- query: v.optional(v.object({
2898
- page: v.optional(v.pipe(v.number(), v.integer())),
2899
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2900
- }))
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
+ })))
2901
4999
  });
2902
5000
  /**
2903
5001
  * Connected app list
2904
5002
  */
2905
5003
  export const vPlatformApiConnectedAppMgmtControllerIndexResponse = vConnectedAppListResponse;
2906
- export const vPlatformApiConnectedAppMgmtControllerCreateData = v.object({
2907
- body: v.optional(vConnectedAppRequestWritable),
2908
- path: v.object({
2909
- tenant_slug: v.string(),
2910
- datalake_slug: v.string()
2911
- }),
2912
- 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
+ })))
2913
5041
  });
2914
5042
  /**
2915
5043
  * Connected app created
2916
5044
  */
2917
5045
  export const vPlatformApiConnectedAppMgmtControllerCreateResponse = vConnectedAppResponse;
2918
- export const vPlatformApiConnectedAppMgmtControllerShowData = v.object({
2919
- body: v.optional(v.never()),
2920
- path: v.object({
2921
- tenant_slug: v.string(),
2922
- datalake_slug: v.string(),
2923
- id: v.pipe(v.string(), v.uuid())
2924
- }),
2925
- 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
+ })))
2926
5080
  });
2927
5081
  /**
2928
- * Connected app
5082
+ * No Content
2929
5083
  */
2930
- export const vPlatformApiConnectedAppMgmtControllerShowResponse = vConnectedAppResponse;
2931
- export const vPlatformApiConnectedAppMgmtControllerUpdateData = v.object({
2932
- body: v.optional(vConnectedAppRequestWritable),
2933
- path: v.object({
2934
- tenant_slug: v.string(),
2935
- datalake_slug: v.string(),
2936
- id: v.pipe(v.string(), v.uuid())
2937
- }),
2938
- 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
+ })))
2939
5119
  });
2940
5120
  /**
2941
- * Connected app updated
5121
+ * AI agent
2942
5122
  */
2943
- export const vPlatformApiConnectedAppMgmtControllerUpdateResponse = vConnectedAppResponse;
2944
- export const vPlatformApiConnectedAppMgmtControllerSyncRoutesData = v.object({
2945
- body: v.optional(v.never()),
2946
- path: v.object({
2947
- tenant_slug: v.string(),
2948
- datalake_slug: v.string(),
2949
- id: v.pipe(v.string(), v.uuid())
2950
- }),
2951
- 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
+ })))
2952
5162
  });
2953
5163
  /**
2954
- * Route sync enqueued
5164
+ * AI agent updated
2955
5165
  */
2956
- export const vPlatformApiConnectedAppMgmtControllerSyncRoutesResponse = vSyncRoutesResponse;
2957
- export const vPlatformApiDataSourceControllerIndexData = v.object({
2958
- body: v.optional(v.never()),
2959
- path: v.object({
2960
- tenant_slug: v.string(),
2961
- datalake_slug: v.string()
2962
- }),
2963
- query: v.optional(v.object({
2964
- page: v.optional(v.pipe(v.number(), v.integer())),
2965
- page_size: v.optional(v.pipe(v.number(), v.integer()))
2966
- }))
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
+ })))
2967
5243
  });
2968
5244
  /**
2969
5245
  * Data source list
2970
5246
  */
2971
5247
  export const vPlatformApiDataSourceControllerIndexResponse = vDataSourceListResponse;
2972
- export const vPlatformApiDataSourceControllerCreateData = v.object({
2973
- body: v.optional(vDataSourceRequest),
2974
- path: v.object({
2975
- tenant_slug: v.string(),
2976
- datalake_slug: v.string()
2977
- }),
2978
- 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
+ })))
2979
5285
  });
2980
5286
  /**
2981
5287
  * Data source created
2982
5288
  */
2983
5289
  export const vPlatformApiDataSourceControllerCreateResponse = vDataSourceResponse;
2984
- export const vPlatformApiDataSourceControllerUpdateData = v.object({
2985
- body: v.optional(vDataSourceRequest),
2986
- path: v.object({
2987
- tenant_slug: v.string(),
2988
- datalake_slug: v.string(),
2989
- id: v.pipe(v.string(), v.uuid())
2990
- }),
2991
- 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
+ })))
2992
5846
  });
2993
5847
  /**
2994
5848
  * Data source updated
2995
5849
  */
2996
5850
  export const vPlatformApiDataSourceControllerUpdateResponse = vDataSourceResponse;
2997
- export const vPlatformApiGenericTableControllerIndexData = v.object({
2998
- body: v.optional(v.never()),
2999
- path: v.object({
3000
- tenant_slug: v.string(),
3001
- datalake_slug: v.string()
3002
- }),
3003
- query: v.optional(v.object({
3004
- page: v.optional(v.pipe(v.number(), v.integer())),
3005
- page_size: v.optional(v.pipe(v.number(), v.integer()))
3006
- }))
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
+ })))
3007
6184
  });
3008
6185
  /**
3009
6186
  * Generic table list
3010
6187
  */
3011
6188
  export const vPlatformApiGenericTableControllerIndexResponse = vGenericTableListResponse;
3012
- export const vPlatformApiGenericTableControllerCreateData = v.object({
3013
- body: v.optional(vGenericTableRequestWritable),
3014
- path: v.object({
3015
- tenant_slug: v.string(),
3016
- datalake_slug: v.string()
3017
- }),
3018
- 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
+ })))
3019
6226
  });
3020
6227
  /**
3021
6228
  * Generic table created
3022
6229
  */
3023
6230
  export const vPlatformApiGenericTableControllerCreateResponse = vGenericTableResponse;
3024
- export const vPlatformApiMdmControllerVerifyData = v.object({
3025
- body: vMdmVerifyRequest,
3026
- path: v.object({
3027
- tenant_slug: v.string(),
3028
- datalake_slug: v.string()
3029
- }),
3030
- 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()))
3031
6234
  });
3032
6235
  /**
3033
- * Verification result
6236
+ * Tenant list
3034
6237
  */
3035
- export const vPlatformApiMdmControllerVerifyResponse = vMdmVerifyResponse;
3036
- export const vPlatformApiDatalakeControllerCreateUploadLinkData = v.object({
3037
- body: vUploadLinkRequest,
3038
- path: v.object({
3039
- tenant_slug: v.string(),
3040
- datalake_slug: v.string()
3041
- }),
3042
- 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()))
3043
6245
  });
3044
6246
  /**
3045
- * Presigned upload link
6247
+ * Markdown document with field definitions
3046
6248
  */
3047
- export const vPlatformApiDatalakeControllerCreateUploadLinkResponse = vUploadLinkResponse;
3048
- export const vPlatformApiDatalakeControllerShowData = v.object({
3049
- body: v.optional(v.never()),
3050
- path: v.object({
3051
- tenant_slug: v.string(),
3052
- id: v.pipe(v.string(), v.uuid())
3053
- }),
3054
- 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
+ })))
3055
6283
  });
3056
6284
  /**
3057
6285
  * Datalake
3058
6286
  */
3059
6287
  export const vPlatformApiDatalakeControllerShowResponse = vDatalakeResponse;
3060
- export const vPlatformApiToolControllerIndexData = v.object({
3061
- body: v.optional(v.never()),
3062
- path: v.object({
3063
- tenant_slug: v.string()
3064
- }),
3065
- query: v.optional(v.object({
3066
- page: v.optional(v.pipe(v.number(), v.integer())),
3067
- page_size: v.optional(v.pipe(v.number(), v.integer()))
3068
- }))
6288
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadPath = v.object({
6289
+ tenant_slug: v.string(),
6290
+ workflow_slug: v.string(),
6291
+ id: v.pipe(v.string(), v.uuid())
3069
6292
  });
3070
6293
  /**
3071
- * Tool list
6294
+ * Presigned download URL
3072
6295
  */
3073
- export const vPlatformApiToolControllerIndexResponse = vToolListResponse;
3074
- export const vPlatformApiToolControllerCreateData = v.object({
3075
- body: v.optional(vToolRequestWritable),
3076
- path: v.object({
3077
- tenant_slug: v.string()
3078
- }),
3079
- query: v.optional(v.never())
6296
+ export const vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadResponse = v.object({
6297
+ url: v.optional(v.pipe(v.string(), v.url()))
3080
6298
  });
3081
6299
  /**
3082
- * Tool created
6300
+ * Session details
3083
6301
  */
3084
- export const vPlatformApiToolControllerCreateResponse = vToolResponse;
3085
- export const vPlatformApiToolControllerDeleteData = v.object({
3086
- body: v.optional(v.never()),
3087
- path: v.object({
3088
- tenant_slug: v.string(),
3089
- id: v.pipe(v.string(), v.uuid())
3090
- }),
3091
- 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
+ })))
3092
6337
  });
3093
6338
  /**
3094
6339
  * No Content
3095
6340
  */
3096
- export const vPlatformApiToolControllerDeleteResponse = v.void();
3097
- export const vPlatformApiToolControllerShowData = v.object({
3098
- body: v.optional(v.never()),
3099
- path: v.object({
3100
- tenant_slug: v.string(),
3101
- id: v.pipe(v.string(), v.uuid())
3102
- }),
3103
- 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
+ })))
3104
6376
  });
3105
6377
  /**
3106
- * Tool
6378
+ * DAC
3107
6379
  */
3108
- export const vPlatformApiToolControllerShowResponse = vToolResponse;
3109
- export const vPlatformApiToolControllerUpdateData = v.object({
3110
- body: v.optional(vToolRequestWritable),
3111
- path: v.object({
3112
- tenant_slug: v.string(),
3113
- id: v.pipe(v.string(), v.uuid())
3114
- }),
3115
- 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
+ })))
3116
6419
  });
3117
6420
  /**
3118
- * Tool updated
6421
+ * DAC updated
3119
6422
  */
3120
- 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;
3121
6502
  //# sourceMappingURL=valibot.gen.js.map