@alvera-ai/platform-sdk 0.1.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -17
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +582 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +139 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +129 -2
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +30 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +129 -0
- package/dist/config.js.map +1 -0
- package/dist/generated/client.gen.d.ts.map +1 -1
- package/dist/generated/client.gen.js +1 -1
- package/dist/generated/client.gen.js.map +1 -1
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/sdk.gen.d.ts +43 -1
- package/dist/generated/sdk.gen.d.ts.map +1 -1
- package/dist/generated/sdk.gen.js +167 -1
- package/dist/generated/sdk.gen.js.map +1 -1
- package/dist/generated/types.gen.d.ts +3864 -1408
- package/dist/generated/types.gen.d.ts.map +1 -1
- package/dist/generated/valibot.gen.d.ts +14576 -0
- package/dist/generated/valibot.gen.d.ts.map +1 -0
- package/dist/generated/valibot.gen.js +3090 -0
- package/dist/generated/valibot.gen.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +12 -5
|
@@ -0,0 +1,3090 @@
|
|
|
1
|
+
// This file is auto-generated by @hey-api/openapi-ts
|
|
2
|
+
import * as v from 'valibot';
|
|
3
|
+
/**
|
|
4
|
+
* SQLDatabaseRequest
|
|
5
|
+
*
|
|
6
|
+
* SQL database connection configuration (PostgreSQL, MySQL, MSSQL, SQLite, Snowflake). Request
|
|
7
|
+
*/
|
|
8
|
+
export const vSqlDatabaseRequest = v.object({
|
|
9
|
+
db_host: v.string(),
|
|
10
|
+
db_name: v.string(),
|
|
11
|
+
db_type: v.picklist([
|
|
12
|
+
'postgres',
|
|
13
|
+
'mysql',
|
|
14
|
+
'mssql',
|
|
15
|
+
'sqlite',
|
|
16
|
+
'snowflake'
|
|
17
|
+
]),
|
|
18
|
+
pool_size: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(99))),
|
|
19
|
+
port: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
20
|
+
ssl: v.nullish(v.boolean()),
|
|
21
|
+
ssl_mode: v.nullish(v.string()),
|
|
22
|
+
user_name: v.string()
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* S3Request
|
|
26
|
+
*
|
|
27
|
+
* S3-compatible storage tool configuration with a nested polymorphic provider config (AWS or R2). Request
|
|
28
|
+
*/
|
|
29
|
+
export const vS3Request = v.record(v.string(), v.unknown());
|
|
30
|
+
/**
|
|
31
|
+
* CloudStorageR2Response
|
|
32
|
+
*
|
|
33
|
+
* Cloudflare R2 cloud storage configuration — S3-compatible with auto region and account-scoped endpoints.
|
|
34
|
+
*/
|
|
35
|
+
export const vCloudStorageR2Response = v.pipe(v.object({
|
|
36
|
+
access_key_id: v.string(),
|
|
37
|
+
base_path: v.optional(v.string()),
|
|
38
|
+
bucket: v.string(),
|
|
39
|
+
endpoint: v.nullish(v.string()),
|
|
40
|
+
region: v.optional(v.string())
|
|
41
|
+
}), v.readonly());
|
|
42
|
+
/**
|
|
43
|
+
* ConnectedAppRequest
|
|
44
|
+
*
|
|
45
|
+
* External web application connected to the platform via M2M API key Request
|
|
46
|
+
*/
|
|
47
|
+
export const vConnectedAppRequest = v.object({
|
|
48
|
+
cloudflare_pages_config: v.nullish(v.object({
|
|
49
|
+
account_id: v.string(),
|
|
50
|
+
build_command: v.nullish(v.string()),
|
|
51
|
+
destination_dir: v.nullish(v.string()),
|
|
52
|
+
github_auth_method: v.optional(v.picklist(['github_app', 'pat'])),
|
|
53
|
+
production_branch: v.nullish(v.string()),
|
|
54
|
+
project_name: v.nullish(v.pipe(v.string(), v.readonly()))
|
|
55
|
+
})),
|
|
56
|
+
description: v.nullish(v.string()),
|
|
57
|
+
mode: v.picklist(['managed', 'self_hosted']),
|
|
58
|
+
name: v.string(),
|
|
59
|
+
repo_url: v.nullish(v.string()),
|
|
60
|
+
urls: v.optional(v.array(v.object({
|
|
61
|
+
is_primary: v.optional(v.boolean()),
|
|
62
|
+
label: v.nullish(v.string()),
|
|
63
|
+
url: v.string()
|
|
64
|
+
})))
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* ConnectedAppUrlRequest
|
|
68
|
+
*
|
|
69
|
+
* URL entry for a Connected App Request
|
|
70
|
+
*/
|
|
71
|
+
export const vConnectedAppUrlRequest = v.object({
|
|
72
|
+
is_primary: v.optional(v.boolean()),
|
|
73
|
+
label: v.nullish(v.string()),
|
|
74
|
+
url: v.string()
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* ActionStatusUpdaterRequest
|
|
78
|
+
*
|
|
79
|
+
* Action Status Updater — automated polling for delivery status updates. Request
|
|
80
|
+
*/
|
|
81
|
+
export const vActionStatusUpdaterRequest = v.object({
|
|
82
|
+
cron_expression: v.optional(v.string()),
|
|
83
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
84
|
+
name: v.optional(v.string()),
|
|
85
|
+
sender_tool_ids: v.nullish(v.array(v.pipe(v.string(), v.uuid()))),
|
|
86
|
+
updater_tool_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
87
|
+
updater_type: v.optional(v.picklist(['cloud_watch', 'restapi']))
|
|
88
|
+
});
|
|
89
|
+
/**
|
|
90
|
+
* CloudWatchQueryResponse
|
|
91
|
+
*
|
|
92
|
+
* CloudWatch log group query descriptor — log group name plus Liquid-templated time window. Reusable across any caller that needs CloudWatch polling (currently ActionStatusUpdater.updater_body). Title is CloudWatchQuery (not CloudWatchRequest) to avoid triple-`Request` stacking in the library-generated parent-contextual sibling module names (e.g. ActionStatusUpdaterCloudWatchQueryRequest).
|
|
93
|
+
*/
|
|
94
|
+
export const vCloudWatchQueryResponse = v.pipe(v.object({
|
|
95
|
+
end_time: v.string(),
|
|
96
|
+
log_group_name: v.string(),
|
|
97
|
+
start_time: v.string()
|
|
98
|
+
}), v.readonly());
|
|
99
|
+
/**
|
|
100
|
+
* ToolS3Request
|
|
101
|
+
*/
|
|
102
|
+
export const vToolS3Request = v.intersect([vS3Request, v.object({
|
|
103
|
+
tool_body_type: v.picklist(['s3'])
|
|
104
|
+
})]);
|
|
105
|
+
/**
|
|
106
|
+
* ConnectedAppResponse
|
|
107
|
+
*
|
|
108
|
+
* External web application connected to the platform via M2M API key
|
|
109
|
+
*/
|
|
110
|
+
export const vConnectedAppResponse = v.pipe(v.object({
|
|
111
|
+
cloudflare_pages_config: v.nullish(v.object({
|
|
112
|
+
account_id: v.string(),
|
|
113
|
+
build_command: v.nullish(v.string()),
|
|
114
|
+
destination_dir: v.nullish(v.string()),
|
|
115
|
+
github_auth_method: v.optional(v.picklist(['github_app', 'pat'])),
|
|
116
|
+
production_branch: v.nullish(v.string()),
|
|
117
|
+
project_name: v.nullish(v.pipe(v.string(), v.readonly()))
|
|
118
|
+
})),
|
|
119
|
+
description: v.nullish(v.string()),
|
|
120
|
+
error: v.nullish(v.pipe(v.string(), v.readonly())),
|
|
121
|
+
id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
122
|
+
inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
123
|
+
last_synced_at: v.nullish(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
124
|
+
mode: v.picklist(['managed', 'self_hosted']),
|
|
125
|
+
name: v.string(),
|
|
126
|
+
repo_url: v.nullish(v.string()),
|
|
127
|
+
routes: v.optional(v.pipe(v.array(v.object({
|
|
128
|
+
description: v.nullish(v.string()),
|
|
129
|
+
name: v.string(),
|
|
130
|
+
path: v.string()
|
|
131
|
+
})), v.readonly())),
|
|
132
|
+
slug: v.optional(v.pipe(v.string(), v.readonly())),
|
|
133
|
+
status: v.optional(v.picklist([
|
|
134
|
+
'pending',
|
|
135
|
+
'deploying',
|
|
136
|
+
'deployed',
|
|
137
|
+
'synced',
|
|
138
|
+
'error'
|
|
139
|
+
])),
|
|
140
|
+
updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
141
|
+
urls: v.optional(v.array(v.object({
|
|
142
|
+
is_primary: v.optional(v.boolean()),
|
|
143
|
+
label: v.nullish(v.string()),
|
|
144
|
+
url: v.string()
|
|
145
|
+
})))
|
|
146
|
+
}), v.readonly());
|
|
147
|
+
/**
|
|
148
|
+
* CloudflarePagesConfigRequest
|
|
149
|
+
*
|
|
150
|
+
* Cloudflare Pages deployment configuration for managed Connected Apps Request
|
|
151
|
+
*/
|
|
152
|
+
export const vCloudflarePagesConfigRequest = v.object({
|
|
153
|
+
account_id: v.string(),
|
|
154
|
+
build_command: v.nullish(v.string()),
|
|
155
|
+
destination_dir: v.nullish(v.string()),
|
|
156
|
+
github_auth_method: v.picklist(['github_app', 'pat']),
|
|
157
|
+
production_branch: v.nullish(v.string())
|
|
158
|
+
});
|
|
159
|
+
/**
|
|
160
|
+
* GenericTableResponse
|
|
161
|
+
*
|
|
162
|
+
* Generic Table — custom or system dataset table with column definitions.
|
|
163
|
+
*/
|
|
164
|
+
export const vGenericTableResponse = v.pipe(v.object({
|
|
165
|
+
columns: v.optional(v.array(v.unknown())),
|
|
166
|
+
data_domain: v.optional(v.picklist([
|
|
167
|
+
'healthcare',
|
|
168
|
+
'core_banking',
|
|
169
|
+
'payment_risk',
|
|
170
|
+
'accounts_receivable',
|
|
171
|
+
'service_commerce',
|
|
172
|
+
'trading'
|
|
173
|
+
])),
|
|
174
|
+
datalake_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
175
|
+
description: v.optional(v.string()),
|
|
176
|
+
id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
177
|
+
inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
178
|
+
name: v.optional(v.pipe(v.string(), v.readonly())),
|
|
179
|
+
status: v.optional(v.picklist([
|
|
180
|
+
'new',
|
|
181
|
+
'stale',
|
|
182
|
+
'processing',
|
|
183
|
+
'deployed'
|
|
184
|
+
])),
|
|
185
|
+
tenant_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
186
|
+
title: v.optional(v.string()),
|
|
187
|
+
type: v.optional(v.picklist(['custom', 'system'])),
|
|
188
|
+
updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly()))
|
|
189
|
+
}), v.readonly());
|
|
190
|
+
/**
|
|
191
|
+
* CloudWatchQueryRequest
|
|
192
|
+
*
|
|
193
|
+
* CloudWatch log group query descriptor — log group name plus Liquid-templated time window. Reusable across any caller that needs CloudWatch polling (currently ActionStatusUpdater.updater_body). Title is CloudWatchQuery (not CloudWatchRequest) to avoid triple-`Request` stacking in the library-generated parent-contextual sibling module names (e.g. ActionStatusUpdaterCloudWatchQueryRequest). Request
|
|
194
|
+
*/
|
|
195
|
+
export const vCloudWatchQueryRequest = v.object({
|
|
196
|
+
end_time: v.string(),
|
|
197
|
+
log_group_name: v.string(),
|
|
198
|
+
start_time: v.string()
|
|
199
|
+
});
|
|
200
|
+
/**
|
|
201
|
+
* IngestFileRequest
|
|
202
|
+
*
|
|
203
|
+
* Request body for ingesting a file that was previously uploaded via a presigned upload link
|
|
204
|
+
*/
|
|
205
|
+
export const vIngestFileRequest = v.object({
|
|
206
|
+
key: v.string()
|
|
207
|
+
});
|
|
208
|
+
/**
|
|
209
|
+
* ExecuteActionResponse
|
|
210
|
+
*
|
|
211
|
+
* Response from executing a workflow action
|
|
212
|
+
*/
|
|
213
|
+
export const vExecuteActionResponse = v.object({
|
|
214
|
+
scheduled_count: v.optional(v.pipe(v.number(), v.integer())),
|
|
215
|
+
status: v.optional(v.picklist([
|
|
216
|
+
'pending',
|
|
217
|
+
'completed',
|
|
218
|
+
'filtered',
|
|
219
|
+
'failed'
|
|
220
|
+
])),
|
|
221
|
+
workflow_execution_log_id: v.nullish(v.pipe(v.string(), v.uuid()))
|
|
222
|
+
});
|
|
223
|
+
/**
|
|
224
|
+
* SFTPRequest
|
|
225
|
+
*
|
|
226
|
+
* SFTP (SSH File Transfer Protocol) server connection configuration with password or SSH key auth. Request
|
|
227
|
+
*/
|
|
228
|
+
export const vSftpRequest = v.object({
|
|
229
|
+
auth_method: v.picklist(['password', 'ssh_key']),
|
|
230
|
+
base_path: v.string(),
|
|
231
|
+
host: v.string(),
|
|
232
|
+
port: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535)),
|
|
233
|
+
user_name: v.string()
|
|
234
|
+
});
|
|
235
|
+
/**
|
|
236
|
+
* SyncRoutesResponse
|
|
237
|
+
*
|
|
238
|
+
* Accepted response for an enqueued route sync job
|
|
239
|
+
*/
|
|
240
|
+
export const vSyncRoutesResponse = v.object({
|
|
241
|
+
connected_app_id: v.pipe(v.string(), v.uuid()),
|
|
242
|
+
enqueued_at: v.pipe(v.string(), v.isoTimestamp()),
|
|
243
|
+
job_id: v.pipe(v.number(), v.integer()),
|
|
244
|
+
status: v.picklist(['enqueued'])
|
|
245
|
+
});
|
|
246
|
+
/**
|
|
247
|
+
* CloudStorageAwsRequest
|
|
248
|
+
*
|
|
249
|
+
* AWS S3 cloud storage configuration supporting access key and IAM role authentication. Request
|
|
250
|
+
*/
|
|
251
|
+
export const vCloudStorageAwsRequest = v.object({
|
|
252
|
+
access_key_id: v.nullish(v.string()),
|
|
253
|
+
auth_method: v.optional(v.picklist(['access_key', 'iam_role'])),
|
|
254
|
+
base_path: v.optional(v.string()),
|
|
255
|
+
bucket: v.string(),
|
|
256
|
+
endpoint: v.nullish(v.string()),
|
|
257
|
+
region: v.string()
|
|
258
|
+
});
|
|
259
|
+
/**
|
|
260
|
+
* EmailResponse
|
|
261
|
+
*
|
|
262
|
+
* Email tool configuration — SES, Mailgun, SendGrid, or SMTP provider plus base Liquid templates.
|
|
263
|
+
*/
|
|
264
|
+
export const vEmailResponse = v.pipe(v.object({
|
|
265
|
+
access_key_id: v.optional(v.string()),
|
|
266
|
+
domain: v.optional(v.string()),
|
|
267
|
+
from_email: v.pipe(v.string(), v.email()),
|
|
268
|
+
from_name: v.nullish(v.string()),
|
|
269
|
+
provider: v.picklist([
|
|
270
|
+
'ses',
|
|
271
|
+
'mailgun',
|
|
272
|
+
'sendgrid',
|
|
273
|
+
'smtp'
|
|
274
|
+
]),
|
|
275
|
+
region: v.optional(v.string()),
|
|
276
|
+
reply_to: v.nullish(v.string()),
|
|
277
|
+
smtp_host: v.optional(v.string()),
|
|
278
|
+
smtp_port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
279
|
+
smtp_username: v.optional(v.string())
|
|
280
|
+
}), v.readonly());
|
|
281
|
+
/**
|
|
282
|
+
* ConnectedAppRouteRequest
|
|
283
|
+
*
|
|
284
|
+
* Discovered route from a Connected App's .well-known/routes.json Request
|
|
285
|
+
*/
|
|
286
|
+
export const vConnectedAppRouteRequest = v.object({
|
|
287
|
+
description: v.nullish(v.string()),
|
|
288
|
+
name: v.string(),
|
|
289
|
+
path: v.string()
|
|
290
|
+
});
|
|
291
|
+
/**
|
|
292
|
+
* PaginationMeta
|
|
293
|
+
*
|
|
294
|
+
* Pagination metadata for list responses
|
|
295
|
+
*/
|
|
296
|
+
export const vPaginationMeta = v.object({
|
|
297
|
+
page: v.pipe(v.number(), v.integer()),
|
|
298
|
+
page_size: v.pipe(v.number(), v.integer()),
|
|
299
|
+
total_count: v.pipe(v.number(), v.integer()),
|
|
300
|
+
total_pages: v.pipe(v.number(), v.integer())
|
|
301
|
+
});
|
|
302
|
+
/**
|
|
303
|
+
* RESTAPIRequest
|
|
304
|
+
*
|
|
305
|
+
* REST API tool configuration with OpenAPI-compliant authentication (API key, basic, bearer, OAuth2, OIDC) plus base Liquid templates. Request
|
|
306
|
+
*/
|
|
307
|
+
export const vRestapiRequest = v.object({
|
|
308
|
+
api_key_location: v.optional(v.picklist(['header', 'query'])),
|
|
309
|
+
api_key_name: v.nullish(v.string()),
|
|
310
|
+
auth_method: v.picklist([
|
|
311
|
+
'none',
|
|
312
|
+
'api_key',
|
|
313
|
+
'basic',
|
|
314
|
+
'bearer',
|
|
315
|
+
'oauth2',
|
|
316
|
+
'oidc'
|
|
317
|
+
]),
|
|
318
|
+
base_url: v.string(),
|
|
319
|
+
oauth2_client_id: v.nullish(v.string()),
|
|
320
|
+
oauth2_grant_type: v.optional(v.picklist(['client_credentials', 'authorization_code'])),
|
|
321
|
+
oauth2_scope: v.nullish(v.string()),
|
|
322
|
+
oauth2_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
323
|
+
oauth2_token_url: v.nullish(v.string()),
|
|
324
|
+
oidc_client_id: v.nullish(v.string()),
|
|
325
|
+
oidc_issuer_url: v.nullish(v.string()),
|
|
326
|
+
oidc_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
327
|
+
request_type: v.picklist([
|
|
328
|
+
'json',
|
|
329
|
+
'xml',
|
|
330
|
+
'form_urlencoded',
|
|
331
|
+
'multipart_form'
|
|
332
|
+
]),
|
|
333
|
+
response_type: v.picklist([
|
|
334
|
+
'json',
|
|
335
|
+
'xml',
|
|
336
|
+
'text',
|
|
337
|
+
'binary'
|
|
338
|
+
]),
|
|
339
|
+
timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
|
|
340
|
+
username: v.nullish(v.string())
|
|
341
|
+
});
|
|
342
|
+
/**
|
|
343
|
+
* SQSResponse
|
|
344
|
+
*
|
|
345
|
+
* AWS SQS (Simple Queue Service) tool configuration for sending and receiving queue messages.
|
|
346
|
+
*/
|
|
347
|
+
export const vSqsResponse = v.pipe(v.object({
|
|
348
|
+
access_key_id: v.nullish(v.string()),
|
|
349
|
+
auth_method: v.picklist(['access_key', 'iam_role']),
|
|
350
|
+
fifo: v.optional(v.boolean()),
|
|
351
|
+
queue_name: v.nullish(v.string()),
|
|
352
|
+
queue_url: v.string(),
|
|
353
|
+
region: v.string()
|
|
354
|
+
}), v.readonly());
|
|
355
|
+
/**
|
|
356
|
+
* ToolSQSResponse
|
|
357
|
+
*/
|
|
358
|
+
export const vToolSqsResponse = v.intersect([vSqsResponse, v.object({
|
|
359
|
+
tool_body_type: v.picklist(['sqs'])
|
|
360
|
+
})]);
|
|
361
|
+
/**
|
|
362
|
+
* ToolEmailResponse
|
|
363
|
+
*/
|
|
364
|
+
export const vToolEmailResponse = v.intersect([vEmailResponse, v.object({
|
|
365
|
+
tool_body_type: v.picklist(['email'])
|
|
366
|
+
})]);
|
|
367
|
+
/**
|
|
368
|
+
* S3CloudStorageR2Response
|
|
369
|
+
*/
|
|
370
|
+
export const vS3CloudStorageR2Response = v.intersect([vCloudStorageR2Response, v.object({
|
|
371
|
+
storage_config_type: v.picklist(['r2'])
|
|
372
|
+
})]);
|
|
373
|
+
/**
|
|
374
|
+
* MDMVerifyResponse
|
|
375
|
+
*
|
|
376
|
+
* Result of MDM subject identity verification
|
|
377
|
+
*/
|
|
378
|
+
export const vMdmVerifyResponse = v.union([v.object({
|
|
379
|
+
status: v.picklist(['verified']),
|
|
380
|
+
subject_id: v.pipe(v.string(), v.uuid()),
|
|
381
|
+
verified_at: v.pipe(v.string(), v.isoTimestamp())
|
|
382
|
+
}), v.object({
|
|
383
|
+
errors: v.record(v.string(), v.array(v.string())),
|
|
384
|
+
status: v.picklist(['not_verified']),
|
|
385
|
+
subject_id: v.pipe(v.string(), v.uuid()),
|
|
386
|
+
verified_at: v.pipe(v.string(), v.isoTimestamp())
|
|
387
|
+
})]);
|
|
388
|
+
/**
|
|
389
|
+
* SQLDatabaseResponse
|
|
390
|
+
*
|
|
391
|
+
* SQL database connection configuration (PostgreSQL, MySQL, MSSQL, SQLite, Snowflake).
|
|
392
|
+
*/
|
|
393
|
+
export const vSqlDatabaseResponse = v.pipe(v.object({
|
|
394
|
+
db_host: v.string(),
|
|
395
|
+
db_name: v.string(),
|
|
396
|
+
db_type: v.picklist([
|
|
397
|
+
'postgres',
|
|
398
|
+
'mysql',
|
|
399
|
+
'mssql',
|
|
400
|
+
'sqlite',
|
|
401
|
+
'snowflake'
|
|
402
|
+
]),
|
|
403
|
+
pool_size: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(99))),
|
|
404
|
+
port: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
405
|
+
ssl: v.nullish(v.boolean()),
|
|
406
|
+
ssl_mode: v.nullish(v.string()),
|
|
407
|
+
user_name: v.string()
|
|
408
|
+
}), v.readonly());
|
|
409
|
+
/**
|
|
410
|
+
* RESTCallRequest
|
|
411
|
+
*
|
|
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
|
|
413
|
+
*/
|
|
414
|
+
export const vRestCallRequest = v.object({
|
|
415
|
+
method: v.picklist([
|
|
416
|
+
'head',
|
|
417
|
+
'get',
|
|
418
|
+
'put',
|
|
419
|
+
'post',
|
|
420
|
+
'delete',
|
|
421
|
+
'patch'
|
|
422
|
+
])
|
|
423
|
+
});
|
|
424
|
+
/**
|
|
425
|
+
* SNSResponse
|
|
426
|
+
*
|
|
427
|
+
* AWS SNS tool configuration for sending SMS messages via the SNS Publish API.
|
|
428
|
+
*/
|
|
429
|
+
export const vSnsResponse = v.pipe(v.object({
|
|
430
|
+
access_key_id: v.nullish(v.string()),
|
|
431
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
432
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
433
|
+
auth_method: v.picklist([
|
|
434
|
+
'access_key',
|
|
435
|
+
'iam_role',
|
|
436
|
+
'assume_role'
|
|
437
|
+
]),
|
|
438
|
+
endpoint_url: v.nullish(v.string()),
|
|
439
|
+
phone_number: v.string(),
|
|
440
|
+
region: v.string()
|
|
441
|
+
}), v.readonly());
|
|
442
|
+
/**
|
|
443
|
+
* SQSRequest
|
|
444
|
+
*
|
|
445
|
+
* AWS SQS (Simple Queue Service) tool configuration for sending and receiving queue messages. Request
|
|
446
|
+
*/
|
|
447
|
+
export const vSqsRequest = v.object({
|
|
448
|
+
access_key_id: v.nullish(v.string()),
|
|
449
|
+
auth_method: v.picklist(['access_key', 'iam_role']),
|
|
450
|
+
fifo: v.optional(v.boolean()),
|
|
451
|
+
queue_name: v.nullish(v.string()),
|
|
452
|
+
queue_url: v.string(),
|
|
453
|
+
region: v.string()
|
|
454
|
+
});
|
|
455
|
+
/**
|
|
456
|
+
* IngestResponse
|
|
457
|
+
*
|
|
458
|
+
* Response from data ingestion
|
|
459
|
+
*/
|
|
460
|
+
export const vIngestResponse = v.object({
|
|
461
|
+
batch_id: v.pipe(v.string(), v.uuid()),
|
|
462
|
+
jobs_count: v.pipe(v.number(), v.integer()),
|
|
463
|
+
key: v.string()
|
|
464
|
+
});
|
|
465
|
+
/**
|
|
466
|
+
* ActionStatusUpdaterRESTCallRequest
|
|
467
|
+
*/
|
|
468
|
+
export const vActionStatusUpdaterRestCallRequest = v.intersect([vRestCallRequest, v.object({
|
|
469
|
+
updater_body_type: v.picklist(['restapi_request'])
|
|
470
|
+
})]);
|
|
471
|
+
/**
|
|
472
|
+
* ActionStatusUpdaterCloudWatchQueryRequest
|
|
473
|
+
*/
|
|
474
|
+
export const vActionStatusUpdaterCloudWatchQueryRequest = v.intersect([vCloudWatchQueryRequest, v.object({
|
|
475
|
+
updater_body_type: v.picklist(['cloud_watch_request'])
|
|
476
|
+
})]);
|
|
477
|
+
/**
|
|
478
|
+
* SessionResponse
|
|
479
|
+
*
|
|
480
|
+
* Session token and metadata returned after successful authentication
|
|
481
|
+
*/
|
|
482
|
+
export const vSessionResponse = v.object({
|
|
483
|
+
api_key: v.nullish(v.object({
|
|
484
|
+
id: v.pipe(v.string(), v.uuid()),
|
|
485
|
+
last_four: v.string(),
|
|
486
|
+
name: v.string()
|
|
487
|
+
})),
|
|
488
|
+
expires_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
489
|
+
role: v.object({
|
|
490
|
+
id: v.pipe(v.string(), v.uuid()),
|
|
491
|
+
name: v.string()
|
|
492
|
+
}),
|
|
493
|
+
session_token: v.nullable(v.string()),
|
|
494
|
+
tenant: v.object({
|
|
495
|
+
id: v.pipe(v.string(), v.uuid()),
|
|
496
|
+
name: v.string(),
|
|
497
|
+
slug: v.string()
|
|
498
|
+
}),
|
|
499
|
+
type: v.picklist(['user', 'api']),
|
|
500
|
+
user: v.nullish(v.object({
|
|
501
|
+
first_name: v.nullish(v.string()),
|
|
502
|
+
id: v.pipe(v.string(), v.uuid()),
|
|
503
|
+
last_name: v.nullish(v.string())
|
|
504
|
+
}))
|
|
505
|
+
});
|
|
506
|
+
/**
|
|
507
|
+
* ConnectedAppRouteResponse
|
|
508
|
+
*
|
|
509
|
+
* Discovered route from a Connected App's .well-known/routes.json
|
|
510
|
+
*/
|
|
511
|
+
export const vConnectedAppRouteResponse = v.pipe(v.object({
|
|
512
|
+
description: v.nullish(v.string()),
|
|
513
|
+
name: v.string(),
|
|
514
|
+
path: v.string()
|
|
515
|
+
}), v.readonly());
|
|
516
|
+
/**
|
|
517
|
+
* UploadLinkResponse
|
|
518
|
+
*
|
|
519
|
+
* Response containing a presigned PUT URL for uploading a file to object storage
|
|
520
|
+
*/
|
|
521
|
+
export const vUploadLinkResponse = v.object({
|
|
522
|
+
expires_in: v.pipe(v.number(), v.integer()),
|
|
523
|
+
key: v.string(),
|
|
524
|
+
url: v.string()
|
|
525
|
+
});
|
|
526
|
+
/**
|
|
527
|
+
* PingResponse
|
|
528
|
+
*
|
|
529
|
+
* Health check response with version and database connectivity status
|
|
530
|
+
*/
|
|
531
|
+
export const vPingResponse = v.object({
|
|
532
|
+
database_status: v.picklist(['connected', 'disconnected']),
|
|
533
|
+
status: v.picklist(['ok', 'error']),
|
|
534
|
+
timestamp: v.pipe(v.string(), v.isoTimestamp()),
|
|
535
|
+
version: v.string()
|
|
536
|
+
});
|
|
537
|
+
/**
|
|
538
|
+
* SNSRequest
|
|
539
|
+
*
|
|
540
|
+
* AWS SNS tool configuration for sending SMS messages via the SNS Publish API. Request
|
|
541
|
+
*/
|
|
542
|
+
export const vSnsRequest = v.object({
|
|
543
|
+
access_key_id: v.nullish(v.string()),
|
|
544
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
545
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
546
|
+
auth_method: v.picklist([
|
|
547
|
+
'access_key',
|
|
548
|
+
'iam_role',
|
|
549
|
+
'assume_role'
|
|
550
|
+
]),
|
|
551
|
+
endpoint_url: v.nullish(v.string()),
|
|
552
|
+
phone_number: v.string(),
|
|
553
|
+
region: v.string()
|
|
554
|
+
});
|
|
555
|
+
/**
|
|
556
|
+
* ToolSNSRequest
|
|
557
|
+
*/
|
|
558
|
+
export const vToolSnsRequest = v.intersect([vSnsRequest, v.object({
|
|
559
|
+
tool_body_type: v.picklist(['sns'])
|
|
560
|
+
})]);
|
|
561
|
+
/**
|
|
562
|
+
* CloudWatchLogGroupRequest
|
|
563
|
+
*
|
|
564
|
+
* AWS CloudWatch Logs authentication credential store. Referenced by ActionStatusUpdater for log-group polling. Request
|
|
565
|
+
*/
|
|
566
|
+
export const vCloudWatchLogGroupRequest = v.object({
|
|
567
|
+
access_key_id: v.nullish(v.string()),
|
|
568
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
569
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
570
|
+
auth_method: v.picklist([
|
|
571
|
+
'access_key',
|
|
572
|
+
'iam_role',
|
|
573
|
+
'assume_role'
|
|
574
|
+
]),
|
|
575
|
+
endpoint_url: v.nullish(v.string()),
|
|
576
|
+
region: v.string()
|
|
577
|
+
});
|
|
578
|
+
/**
|
|
579
|
+
* ManualUploadResponse
|
|
580
|
+
*
|
|
581
|
+
* Manual upload marker tool — no configuration fields, just an identity marker for manual ingestion workflows.
|
|
582
|
+
*/
|
|
583
|
+
export const vManualUploadResponse = v.pipe(v.record(v.string(), v.unknown()), v.readonly());
|
|
584
|
+
/**
|
|
585
|
+
* ToolSNSResponse
|
|
586
|
+
*/
|
|
587
|
+
export const vToolSnsResponse = v.intersect([vSnsResponse, v.object({
|
|
588
|
+
tool_body_type: v.picklist(['sns'])
|
|
589
|
+
})]);
|
|
590
|
+
/**
|
|
591
|
+
* SFTPResponse
|
|
592
|
+
*
|
|
593
|
+
* SFTP (SSH File Transfer Protocol) server connection configuration with password or SSH key auth.
|
|
594
|
+
*/
|
|
595
|
+
export const vSftpResponse = v.pipe(v.object({
|
|
596
|
+
auth_method: v.picklist(['password', 'ssh_key']),
|
|
597
|
+
base_path: v.string(),
|
|
598
|
+
host: v.string(),
|
|
599
|
+
port: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535)),
|
|
600
|
+
user_name: v.string()
|
|
601
|
+
}), v.readonly());
|
|
602
|
+
/**
|
|
603
|
+
* ToolSFTPResponse
|
|
604
|
+
*/
|
|
605
|
+
export const vToolSftpResponse = v.intersect([vSftpResponse, v.object({
|
|
606
|
+
tool_body_type: v.picklist(['sftp'])
|
|
607
|
+
})]);
|
|
608
|
+
/**
|
|
609
|
+
* CloudStorageAwsResponse
|
|
610
|
+
*
|
|
611
|
+
* AWS S3 cloud storage configuration supporting access key and IAM role authentication.
|
|
612
|
+
*/
|
|
613
|
+
export const vCloudStorageAwsResponse = v.pipe(v.object({
|
|
614
|
+
access_key_id: v.nullish(v.string()),
|
|
615
|
+
auth_method: v.optional(v.picklist(['access_key', 'iam_role'])),
|
|
616
|
+
base_path: v.optional(v.string()),
|
|
617
|
+
bucket: v.string(),
|
|
618
|
+
endpoint: v.nullish(v.string()),
|
|
619
|
+
region: v.string()
|
|
620
|
+
}), v.readonly());
|
|
621
|
+
/**
|
|
622
|
+
* S3CloudStorageAwsResponse
|
|
623
|
+
*/
|
|
624
|
+
export const vS3CloudStorageAwsResponse = v.intersect([vCloudStorageAwsResponse, v.object({
|
|
625
|
+
storage_config_type: v.picklist(['aws'])
|
|
626
|
+
})]);
|
|
627
|
+
/**
|
|
628
|
+
* S3Response
|
|
629
|
+
*
|
|
630
|
+
* S3-compatible storage tool configuration with a nested polymorphic provider config (AWS or R2).
|
|
631
|
+
*/
|
|
632
|
+
export const vS3Response = v.pipe(v.object({
|
|
633
|
+
config: v.union([v.intersect([v.object({
|
|
634
|
+
storage_config_type: v.literal('aws')
|
|
635
|
+
}), vS3CloudStorageAwsResponse]), v.intersect([v.object({
|
|
636
|
+
storage_config_type: v.literal('r2')
|
|
637
|
+
}), vS3CloudStorageR2Response])])
|
|
638
|
+
}), v.readonly());
|
|
639
|
+
/**
|
|
640
|
+
* SharePointRequest
|
|
641
|
+
*
|
|
642
|
+
* Microsoft SharePoint integration via the Microsoft Graph API. Supports sites, document libraries, and lists with client-credential or managed-identity auth. Request
|
|
643
|
+
*/
|
|
644
|
+
export const vSharePointRequest = v.object({
|
|
645
|
+
auth_method: v.picklist(['client_credentials', 'managed_identity']),
|
|
646
|
+
client_id: v.nullish(v.string()),
|
|
647
|
+
drive_id: v.nullish(v.string()),
|
|
648
|
+
drive_path: v.nullish(v.string()),
|
|
649
|
+
resource_type: v.picklist([
|
|
650
|
+
'site',
|
|
651
|
+
'library',
|
|
652
|
+
'list'
|
|
653
|
+
]),
|
|
654
|
+
site_url: v.nullish(v.string()),
|
|
655
|
+
tenant_id: v.string()
|
|
656
|
+
});
|
|
657
|
+
/**
|
|
658
|
+
* DataSourceRequest
|
|
659
|
+
*
|
|
660
|
+
* Data source — connection to a third-party system or API Request
|
|
661
|
+
*/
|
|
662
|
+
export const vDataSourceRequest = v.object({
|
|
663
|
+
description: v.nullish(v.string()),
|
|
664
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
665
|
+
image_url: v.nullish(v.string()),
|
|
666
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
667
|
+
is_default: v.boolean(),
|
|
668
|
+
name: v.string(),
|
|
669
|
+
status: v.picklist([
|
|
670
|
+
'draft',
|
|
671
|
+
'active',
|
|
672
|
+
'inactive'
|
|
673
|
+
]),
|
|
674
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
675
|
+
uri: v.string()
|
|
676
|
+
});
|
|
677
|
+
/**
|
|
678
|
+
* CloudStorageR2Request
|
|
679
|
+
*
|
|
680
|
+
* Cloudflare R2 cloud storage configuration — S3-compatible with auto region and account-scoped endpoints. Request
|
|
681
|
+
*/
|
|
682
|
+
export const vCloudStorageR2Request = v.object({
|
|
683
|
+
access_key_id: v.string(),
|
|
684
|
+
base_path: v.optional(v.string()),
|
|
685
|
+
bucket: v.string(),
|
|
686
|
+
endpoint: v.nullish(v.string()),
|
|
687
|
+
region: v.optional(v.string())
|
|
688
|
+
});
|
|
689
|
+
/**
|
|
690
|
+
* S3CloudStorageAwsRequest
|
|
691
|
+
*/
|
|
692
|
+
export const vS3CloudStorageAwsRequest = v.intersect([vCloudStorageAwsRequest, v.object({
|
|
693
|
+
storage_config_type: v.picklist(['aws'])
|
|
694
|
+
})]);
|
|
695
|
+
/**
|
|
696
|
+
* ToolS3Response
|
|
697
|
+
*/
|
|
698
|
+
export const vToolS3Response = v.intersect([vS3Response, v.object({
|
|
699
|
+
tool_body_type: v.picklist(['s3'])
|
|
700
|
+
})]);
|
|
701
|
+
/**
|
|
702
|
+
* DatasetSearchResponse
|
|
703
|
+
*
|
|
704
|
+
* Paginated dataset search results
|
|
705
|
+
*/
|
|
706
|
+
export const vDatasetSearchResponse = v.object({
|
|
707
|
+
data: v.array(v.record(v.string(), v.unknown())),
|
|
708
|
+
meta: vPaginationMeta
|
|
709
|
+
});
|
|
710
|
+
/**
|
|
711
|
+
* ConnectedAppUrlResponse
|
|
712
|
+
*
|
|
713
|
+
* URL entry for a Connected App
|
|
714
|
+
*/
|
|
715
|
+
export const vConnectedAppUrlResponse = v.pipe(v.object({
|
|
716
|
+
is_primary: v.optional(v.boolean()),
|
|
717
|
+
label: v.nullish(v.string()),
|
|
718
|
+
url: v.string()
|
|
719
|
+
}), v.readonly());
|
|
720
|
+
/**
|
|
721
|
+
* ToolCloudWatchLogGroupRequest
|
|
722
|
+
*/
|
|
723
|
+
export const vToolCloudWatchLogGroupRequest = v.intersect([vCloudWatchLogGroupRequest, v.object({
|
|
724
|
+
tool_body_type: v.picklist(['cloud_watch_log_group'])
|
|
725
|
+
})]);
|
|
726
|
+
/**
|
|
727
|
+
* ToolSQLDatabaseResponse
|
|
728
|
+
*/
|
|
729
|
+
export const vToolSqlDatabaseResponse = v.intersect([vSqlDatabaseResponse, v.object({
|
|
730
|
+
tool_body_type: v.picklist(['sql_database'])
|
|
731
|
+
})]);
|
|
732
|
+
/**
|
|
733
|
+
* ActionStatusUpdaterCloudWatchQueryResponse
|
|
734
|
+
*/
|
|
735
|
+
export const vActionStatusUpdaterCloudWatchQueryResponse = v.intersect([vCloudWatchQueryResponse, v.object({
|
|
736
|
+
updater_body_type: v.picklist(['cloud_watch_request'])
|
|
737
|
+
})]);
|
|
738
|
+
/**
|
|
739
|
+
* ToolSFTPRequest
|
|
740
|
+
*/
|
|
741
|
+
export const vToolSftpRequest = v.intersect([vSftpRequest, v.object({
|
|
742
|
+
tool_body_type: v.picklist(['sftp'])
|
|
743
|
+
})]);
|
|
744
|
+
/**
|
|
745
|
+
* UpdatePageResponse
|
|
746
|
+
*
|
|
747
|
+
* Confirmation of message tracking update
|
|
748
|
+
*/
|
|
749
|
+
export const vUpdatePageResponse = v.object({
|
|
750
|
+
message: v.object({
|
|
751
|
+
form_submitted_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
752
|
+
id: v.pipe(v.string(), v.uuid()),
|
|
753
|
+
opened_at: v.nullish(v.pipe(v.string(), v.isoTimestamp()))
|
|
754
|
+
})
|
|
755
|
+
});
|
|
756
|
+
/**
|
|
757
|
+
* GenericTableRequest
|
|
758
|
+
*
|
|
759
|
+
* Generic Table — custom or system dataset table with column definitions. Request
|
|
760
|
+
*/
|
|
761
|
+
export const vGenericTableRequest = v.object({
|
|
762
|
+
columns: v.optional(v.array(v.unknown())),
|
|
763
|
+
data_domain: v.optional(v.picklist([
|
|
764
|
+
'healthcare',
|
|
765
|
+
'core_banking',
|
|
766
|
+
'payment_risk',
|
|
767
|
+
'accounts_receivable',
|
|
768
|
+
'service_commerce',
|
|
769
|
+
'trading'
|
|
770
|
+
])),
|
|
771
|
+
description: v.optional(v.string()),
|
|
772
|
+
title: v.optional(v.string())
|
|
773
|
+
});
|
|
774
|
+
/**
|
|
775
|
+
* SessionRequest
|
|
776
|
+
*
|
|
777
|
+
* Exchange user credentials for a Bearer session token.
|
|
778
|
+
* For M2M authentication, use `X-API-Key` header directly instead.
|
|
779
|
+
*
|
|
780
|
+
*/
|
|
781
|
+
export const vSessionRequest = v.object({
|
|
782
|
+
email: v.pipe(v.string(), v.email()),
|
|
783
|
+
expires_in: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(60), v.maxValue(2592000))),
|
|
784
|
+
password: v.pipe(v.string(), v.minLength(1)),
|
|
785
|
+
tenant_slug: v.string()
|
|
786
|
+
});
|
|
787
|
+
/**
|
|
788
|
+
* GenericTableListResponse
|
|
789
|
+
*
|
|
790
|
+
* Paginated list of generic tables
|
|
791
|
+
*/
|
|
792
|
+
export const vGenericTableListResponse = v.object({
|
|
793
|
+
data: v.array(vGenericTableResponse),
|
|
794
|
+
meta: vPaginationMeta
|
|
795
|
+
});
|
|
796
|
+
/**
|
|
797
|
+
* ToolSQLDatabaseRequest
|
|
798
|
+
*/
|
|
799
|
+
export const vToolSqlDatabaseRequest = v.intersect([vSqlDatabaseRequest, v.object({
|
|
800
|
+
tool_body_type: v.picklist(['sql_database'])
|
|
801
|
+
})]);
|
|
802
|
+
/**
|
|
803
|
+
* S3CloudStorageR2Request
|
|
804
|
+
*/
|
|
805
|
+
export const vS3CloudStorageR2Request = v.intersect([vCloudStorageR2Request, v.object({
|
|
806
|
+
storage_config_type: v.picklist(['r2'])
|
|
807
|
+
})]);
|
|
808
|
+
/**
|
|
809
|
+
* ConnectedAppListResponse
|
|
810
|
+
*
|
|
811
|
+
* Paginated list of connected apps
|
|
812
|
+
*/
|
|
813
|
+
export const vConnectedAppListResponse = v.object({
|
|
814
|
+
data: v.array(vConnectedAppResponse),
|
|
815
|
+
meta: vPaginationMeta
|
|
816
|
+
});
|
|
817
|
+
/**
|
|
818
|
+
* EmailRequest
|
|
819
|
+
*
|
|
820
|
+
* Email tool configuration — SES, Mailgun, SendGrid, or SMTP provider plus base Liquid templates. Request
|
|
821
|
+
*/
|
|
822
|
+
export const vEmailRequest = v.object({
|
|
823
|
+
access_key_id: v.optional(v.string()),
|
|
824
|
+
domain: v.optional(v.string()),
|
|
825
|
+
from_email: v.pipe(v.string(), v.email()),
|
|
826
|
+
from_name: v.nullish(v.string()),
|
|
827
|
+
provider: v.picklist([
|
|
828
|
+
'ses',
|
|
829
|
+
'mailgun',
|
|
830
|
+
'sendgrid',
|
|
831
|
+
'smtp'
|
|
832
|
+
]),
|
|
833
|
+
region: v.optional(v.string()),
|
|
834
|
+
reply_to: v.nullish(v.string()),
|
|
835
|
+
smtp_host: v.optional(v.string()),
|
|
836
|
+
smtp_port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
837
|
+
smtp_username: v.optional(v.string())
|
|
838
|
+
});
|
|
839
|
+
/**
|
|
840
|
+
* ToolEmailRequest
|
|
841
|
+
*/
|
|
842
|
+
export const vToolEmailRequest = v.intersect([vEmailRequest, v.object({
|
|
843
|
+
tool_body_type: v.picklist(['email'])
|
|
844
|
+
})]);
|
|
845
|
+
/**
|
|
846
|
+
* RESTAPIResponse
|
|
847
|
+
*
|
|
848
|
+
* REST API tool configuration with OpenAPI-compliant authentication (API key, basic, bearer, OAuth2, OIDC) plus base Liquid templates.
|
|
849
|
+
*/
|
|
850
|
+
export const vRestapiResponse = v.pipe(v.object({
|
|
851
|
+
api_key_location: v.optional(v.picklist(['header', 'query'])),
|
|
852
|
+
api_key_name: v.nullish(v.string()),
|
|
853
|
+
auth_method: v.picklist([
|
|
854
|
+
'none',
|
|
855
|
+
'api_key',
|
|
856
|
+
'basic',
|
|
857
|
+
'bearer',
|
|
858
|
+
'oauth2',
|
|
859
|
+
'oidc'
|
|
860
|
+
]),
|
|
861
|
+
base_url: v.string(),
|
|
862
|
+
oauth2_client_id: v.nullish(v.string()),
|
|
863
|
+
oauth2_grant_type: v.optional(v.picklist(['client_credentials', 'authorization_code'])),
|
|
864
|
+
oauth2_scope: v.nullish(v.string()),
|
|
865
|
+
oauth2_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
866
|
+
oauth2_token_url: v.nullish(v.string()),
|
|
867
|
+
oidc_client_id: v.nullish(v.string()),
|
|
868
|
+
oidc_issuer_url: v.nullish(v.string()),
|
|
869
|
+
oidc_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
870
|
+
request_type: v.picklist([
|
|
871
|
+
'json',
|
|
872
|
+
'xml',
|
|
873
|
+
'form_urlencoded',
|
|
874
|
+
'multipart_form'
|
|
875
|
+
]),
|
|
876
|
+
response_type: v.picklist([
|
|
877
|
+
'json',
|
|
878
|
+
'xml',
|
|
879
|
+
'text',
|
|
880
|
+
'binary'
|
|
881
|
+
]),
|
|
882
|
+
timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
|
|
883
|
+
username: v.nullish(v.string())
|
|
884
|
+
}), v.readonly());
|
|
885
|
+
/**
|
|
886
|
+
* ToolRESTAPIResponse
|
|
887
|
+
*/
|
|
888
|
+
export const vToolRestapiResponse = v.intersect([vRestapiResponse, v.object({
|
|
889
|
+
tool_body_type: v.picklist(['rest_api'])
|
|
890
|
+
})]);
|
|
891
|
+
/**
|
|
892
|
+
* SharePointResponse
|
|
893
|
+
*
|
|
894
|
+
* Microsoft SharePoint integration via the Microsoft Graph API. Supports sites, document libraries, and lists with client-credential or managed-identity auth.
|
|
895
|
+
*/
|
|
896
|
+
export const vSharePointResponse = v.pipe(v.object({
|
|
897
|
+
auth_method: v.picklist(['client_credentials', 'managed_identity']),
|
|
898
|
+
client_id: v.nullish(v.string()),
|
|
899
|
+
drive_id: v.nullish(v.string()),
|
|
900
|
+
drive_path: v.nullish(v.string()),
|
|
901
|
+
resource_type: v.picklist([
|
|
902
|
+
'site',
|
|
903
|
+
'library',
|
|
904
|
+
'list'
|
|
905
|
+
]),
|
|
906
|
+
site_url: v.nullish(v.string()),
|
|
907
|
+
tenant_id: v.string()
|
|
908
|
+
}), v.readonly());
|
|
909
|
+
/**
|
|
910
|
+
* ToolSharePointResponse
|
|
911
|
+
*/
|
|
912
|
+
export const vToolSharePointResponse = v.intersect([vSharePointResponse, v.object({
|
|
913
|
+
tool_body_type: v.picklist(['sharepoint'])
|
|
914
|
+
})]);
|
|
915
|
+
/**
|
|
916
|
+
* UploadLinkRequest
|
|
917
|
+
*
|
|
918
|
+
* Request body for creating a presigned upload link for bulk ingest
|
|
919
|
+
*/
|
|
920
|
+
export const vUploadLinkRequest = v.object({
|
|
921
|
+
content_type: v.picklist(['application/x-ndjson', 'text/csv']),
|
|
922
|
+
filename: v.pipe(v.string(), v.minLength(1), v.maxLength(255))
|
|
923
|
+
});
|
|
924
|
+
/**
|
|
925
|
+
* AiAgentRequest
|
|
926
|
+
*
|
|
927
|
+
* AI Agent configuration — reusable chat-completion resource Request
|
|
928
|
+
*/
|
|
929
|
+
export const vAiAgentRequest = v.object({
|
|
930
|
+
data_access: v.picklist(['regulated', 'unregulated']),
|
|
931
|
+
description: v.nullish(v.string()),
|
|
932
|
+
enabled: v.boolean(),
|
|
933
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
934
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
935
|
+
max_tokens: v.pipe(v.number(), v.integer()),
|
|
936
|
+
model: v.string(),
|
|
937
|
+
name: v.string(),
|
|
938
|
+
slug: v.optional(v.string()),
|
|
939
|
+
temperature: v.number(),
|
|
940
|
+
tool_id: v.pipe(v.string(), v.uuid()),
|
|
941
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
|
|
942
|
+
});
|
|
943
|
+
/**
|
|
944
|
+
* RESTCallResponse
|
|
945
|
+
*
|
|
946
|
+
* 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).
|
|
947
|
+
*/
|
|
948
|
+
export const vRestCallResponse = v.pipe(v.object({
|
|
949
|
+
method: v.picklist([
|
|
950
|
+
'head',
|
|
951
|
+
'get',
|
|
952
|
+
'put',
|
|
953
|
+
'post',
|
|
954
|
+
'delete',
|
|
955
|
+
'patch'
|
|
956
|
+
])
|
|
957
|
+
}), v.readonly());
|
|
958
|
+
/**
|
|
959
|
+
* ActionStatusUpdaterRESTCallResponse
|
|
960
|
+
*/
|
|
961
|
+
export const vActionStatusUpdaterRestCallResponse = v.intersect([vRestCallResponse, v.object({
|
|
962
|
+
updater_body_type: v.picklist(['restapi_request'])
|
|
963
|
+
})]);
|
|
964
|
+
/**
|
|
965
|
+
* ResolvePageRequest
|
|
966
|
+
*
|
|
967
|
+
* Request body for resolving a connected app page from a short URL token
|
|
968
|
+
*/
|
|
969
|
+
export const vResolvePageRequest = v.object({
|
|
970
|
+
country: v.optional(v.string()),
|
|
971
|
+
ip: v.optional(v.string()),
|
|
972
|
+
metadata: v.optional(v.record(v.string(), v.unknown())),
|
|
973
|
+
short_path: v.string(),
|
|
974
|
+
user_agent: v.optional(v.string())
|
|
975
|
+
});
|
|
976
|
+
/**
|
|
977
|
+
* MDMVerified
|
|
978
|
+
*/
|
|
979
|
+
export const vMdmVerified = v.object({
|
|
980
|
+
status: v.picklist(['verified']),
|
|
981
|
+
subject_id: v.pipe(v.string(), v.uuid()),
|
|
982
|
+
verified_at: v.pipe(v.string(), v.isoTimestamp())
|
|
983
|
+
});
|
|
984
|
+
/**
|
|
985
|
+
* ToolSQSRequest
|
|
986
|
+
*/
|
|
987
|
+
export const vToolSqsRequest = v.intersect([vSqsRequest, v.object({
|
|
988
|
+
tool_body_type: v.picklist(['sqs'])
|
|
989
|
+
})]);
|
|
990
|
+
/**
|
|
991
|
+
* AWSLambdaRequest
|
|
992
|
+
*
|
|
993
|
+
* AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes. Request
|
|
994
|
+
*/
|
|
995
|
+
export const vAwsLambdaRequest = v.object({
|
|
996
|
+
access_key_id: v.nullish(v.string()),
|
|
997
|
+
auth_method: v.optional(v.picklist([
|
|
998
|
+
'access_key',
|
|
999
|
+
'iam_role',
|
|
1000
|
+
'cloudformation'
|
|
1001
|
+
])),
|
|
1002
|
+
env_vars: v.optional(v.array(v.unknown())),
|
|
1003
|
+
function_arn: v.nullish(v.string()),
|
|
1004
|
+
secrets: v.optional(v.array(v.unknown())),
|
|
1005
|
+
ssm_config_key: v.nullish(v.string()),
|
|
1006
|
+
type: v.picklist(['managed', 'external'])
|
|
1007
|
+
});
|
|
1008
|
+
/**
|
|
1009
|
+
* ToolAWSLambdaRequest
|
|
1010
|
+
*/
|
|
1011
|
+
export const vToolAwsLambdaRequest = v.intersect([vAwsLambdaRequest, v.object({
|
|
1012
|
+
tool_body_type: v.picklist(['aws_lambda'])
|
|
1013
|
+
})]);
|
|
1014
|
+
/**
|
|
1015
|
+
* ToolRequest
|
|
1016
|
+
*
|
|
1017
|
+
* Tool — a configurable capability reference for external services. Request
|
|
1018
|
+
*/
|
|
1019
|
+
export const vToolRequest = v.object({
|
|
1020
|
+
data_source_id: v.nullish(v.pipe(v.string(), v.uuid())),
|
|
1021
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1022
|
+
description: v.nullish(v.string()),
|
|
1023
|
+
intent: v.optional(v.picklist([
|
|
1024
|
+
'sms',
|
|
1025
|
+
'email',
|
|
1026
|
+
'export',
|
|
1027
|
+
'voice',
|
|
1028
|
+
'data_exchange',
|
|
1029
|
+
'status_poller',
|
|
1030
|
+
'chat_completion',
|
|
1031
|
+
'context_extraction'
|
|
1032
|
+
])),
|
|
1033
|
+
name: v.optional(v.string()),
|
|
1034
|
+
status: v.optional(v.picklist([
|
|
1035
|
+
'draft',
|
|
1036
|
+
'active',
|
|
1037
|
+
'inactive',
|
|
1038
|
+
'error',
|
|
1039
|
+
'marked_for_deletion'
|
|
1040
|
+
]))
|
|
1041
|
+
});
|
|
1042
|
+
/**
|
|
1043
|
+
* UpdatePageRequest
|
|
1044
|
+
*
|
|
1045
|
+
* Request body for updating message tracking fields on a resolved page
|
|
1046
|
+
*/
|
|
1047
|
+
export const vUpdatePageRequest = v.object({
|
|
1048
|
+
form_submitted_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1049
|
+
opened_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1050
|
+
short_path: v.string()
|
|
1051
|
+
});
|
|
1052
|
+
/**
|
|
1053
|
+
* ToolManualUploadResponse
|
|
1054
|
+
*/
|
|
1055
|
+
export const vToolManualUploadResponse = v.intersect([vManualUploadResponse, v.object({
|
|
1056
|
+
tool_body_type: v.picklist(['manual_upload'])
|
|
1057
|
+
})]);
|
|
1058
|
+
/**
|
|
1059
|
+
* ChangesetErrors
|
|
1060
|
+
*
|
|
1061
|
+
* Validation error response in JSON:API format (from OpenApiSpex v2)
|
|
1062
|
+
*/
|
|
1063
|
+
export const vChangesetErrors = v.object({
|
|
1064
|
+
errors: v.optional(v.array(v.object({
|
|
1065
|
+
detail: v.optional(v.string()),
|
|
1066
|
+
source: v.optional(v.object({
|
|
1067
|
+
pointer: v.optional(v.string())
|
|
1068
|
+
})),
|
|
1069
|
+
title: v.optional(v.string())
|
|
1070
|
+
})))
|
|
1071
|
+
});
|
|
1072
|
+
/**
|
|
1073
|
+
* ToolSharePointRequest
|
|
1074
|
+
*/
|
|
1075
|
+
export const vToolSharePointRequest = v.intersect([vSharePointRequest, v.object({
|
|
1076
|
+
tool_body_type: v.picklist(['sharepoint'])
|
|
1077
|
+
})]);
|
|
1078
|
+
/**
|
|
1079
|
+
* MDMVerifyRequest
|
|
1080
|
+
*
|
|
1081
|
+
* Request body for MDM subject identity verification
|
|
1082
|
+
*/
|
|
1083
|
+
export const vMdmVerifyRequest = v.object({
|
|
1084
|
+
birth_date: v.optional(v.pipe(v.string(), v.isoDate())),
|
|
1085
|
+
family_name: v.optional(v.string()),
|
|
1086
|
+
given_name: v.optional(v.string()),
|
|
1087
|
+
identifiers: v.optional(v.array(v.object({
|
|
1088
|
+
system: v.string(),
|
|
1089
|
+
value: v.string()
|
|
1090
|
+
}))),
|
|
1091
|
+
subject_id: v.pipe(v.string(), v.uuid())
|
|
1092
|
+
});
|
|
1093
|
+
/**
|
|
1094
|
+
* ResolvePageResponse
|
|
1095
|
+
*
|
|
1096
|
+
* Resolved page token details for the connected app to render
|
|
1097
|
+
*/
|
|
1098
|
+
export const vResolvePageResponse = v.object({
|
|
1099
|
+
additional_context: v.nullish(v.record(v.string(), v.unknown())),
|
|
1100
|
+
expires_at: v.pipe(v.string(), v.isoTimestamp()),
|
|
1101
|
+
message: v.nullish(v.object({
|
|
1102
|
+
body: v.nullish(v.string()),
|
|
1103
|
+
channel: v.picklist([
|
|
1104
|
+
'sms',
|
|
1105
|
+
'email',
|
|
1106
|
+
'voice',
|
|
1107
|
+
'web_form',
|
|
1108
|
+
'push'
|
|
1109
|
+
]),
|
|
1110
|
+
delivered_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1111
|
+
external_id: v.nullish(v.string()),
|
|
1112
|
+
failure_reason: v.nullish(v.string()),
|
|
1113
|
+
form_submitted_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1114
|
+
id: v.pipe(v.string(), v.uuid()),
|
|
1115
|
+
metadata: v.nullish(v.record(v.string(), v.unknown())),
|
|
1116
|
+
opened_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1117
|
+
queued_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1118
|
+
read_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1119
|
+
sent_at: v.nullish(v.pipe(v.string(), v.isoTimestamp())),
|
|
1120
|
+
sms_carrier: v.nullish(v.string()),
|
|
1121
|
+
status: v.picklist([
|
|
1122
|
+
'pending',
|
|
1123
|
+
'queued',
|
|
1124
|
+
'sent',
|
|
1125
|
+
'delivered',
|
|
1126
|
+
'failed',
|
|
1127
|
+
'received',
|
|
1128
|
+
'clicked'
|
|
1129
|
+
]),
|
|
1130
|
+
subject: v.nullish(v.string())
|
|
1131
|
+
})),
|
|
1132
|
+
route_path: v.string(),
|
|
1133
|
+
subject_id: v.pipe(v.string(), v.uuid()),
|
|
1134
|
+
url_hash: v.string(),
|
|
1135
|
+
user_agent: v.nullish(v.string())
|
|
1136
|
+
});
|
|
1137
|
+
/**
|
|
1138
|
+
* ErrorResponse
|
|
1139
|
+
*
|
|
1140
|
+
* Error response
|
|
1141
|
+
*/
|
|
1142
|
+
export const vErrorResponse = v.object({
|
|
1143
|
+
errors: v.optional(v.object({}))
|
|
1144
|
+
});
|
|
1145
|
+
/**
|
|
1146
|
+
* MDMNotVerified
|
|
1147
|
+
*/
|
|
1148
|
+
export const vMdmNotVerified = v.object({
|
|
1149
|
+
errors: v.record(v.string(), v.array(v.string())),
|
|
1150
|
+
status: v.picklist(['not_verified']),
|
|
1151
|
+
subject_id: v.pipe(v.string(), v.uuid()),
|
|
1152
|
+
verified_at: v.pipe(v.string(), v.isoTimestamp())
|
|
1153
|
+
});
|
|
1154
|
+
/**
|
|
1155
|
+
* ExecuteActionRequest
|
|
1156
|
+
*
|
|
1157
|
+
* Request body for executing a workflow action for a dataset record
|
|
1158
|
+
*/
|
|
1159
|
+
export const vExecuteActionRequest = v.object({
|
|
1160
|
+
dataset_id: v.pipe(v.string(), v.uuid()),
|
|
1161
|
+
decision_key: v.string(),
|
|
1162
|
+
mode: v.optional(v.picklist(['live', 'dry_run']))
|
|
1163
|
+
});
|
|
1164
|
+
/**
|
|
1165
|
+
* AWSLambdaResponse
|
|
1166
|
+
*
|
|
1167
|
+
* AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes.
|
|
1168
|
+
*/
|
|
1169
|
+
export const vAwsLambdaResponse = v.pipe(v.object({
|
|
1170
|
+
access_key_id: v.nullish(v.string()),
|
|
1171
|
+
auth_method: v.optional(v.picklist([
|
|
1172
|
+
'access_key',
|
|
1173
|
+
'iam_role',
|
|
1174
|
+
'cloudformation'
|
|
1175
|
+
])),
|
|
1176
|
+
env_vars: v.optional(v.array(v.unknown())),
|
|
1177
|
+
error: v.nullish(v.pipe(v.string(), v.readonly())),
|
|
1178
|
+
function_arn: v.nullish(v.string()),
|
|
1179
|
+
secrets: v.optional(v.array(v.unknown())),
|
|
1180
|
+
secrets_manager_secret_arn: v.nullish(v.pipe(v.string(), v.readonly())),
|
|
1181
|
+
ssm_config_key: v.nullish(v.string()),
|
|
1182
|
+
stack_id: v.nullish(v.pipe(v.string(), v.readonly())),
|
|
1183
|
+
stack_name: v.nullish(v.pipe(v.string(), v.readonly())),
|
|
1184
|
+
stack_status: v.optional(v.picklist([
|
|
1185
|
+
'create_in_progress',
|
|
1186
|
+
'create_complete',
|
|
1187
|
+
'create_failed',
|
|
1188
|
+
'rollback_in_progress',
|
|
1189
|
+
'rollback_complete',
|
|
1190
|
+
'rollback_failed',
|
|
1191
|
+
'delete_in_progress',
|
|
1192
|
+
'delete_complete',
|
|
1193
|
+
'delete_failed',
|
|
1194
|
+
'update_in_progress',
|
|
1195
|
+
'update_complete',
|
|
1196
|
+
'update_failed',
|
|
1197
|
+
'update_rollback_complete',
|
|
1198
|
+
'update_rollback_failed'
|
|
1199
|
+
])),
|
|
1200
|
+
type: v.picklist(['managed', 'external'])
|
|
1201
|
+
}), v.readonly());
|
|
1202
|
+
/**
|
|
1203
|
+
* ToolAWSLambdaResponse
|
|
1204
|
+
*/
|
|
1205
|
+
export const vToolAwsLambdaResponse = v.intersect([vAwsLambdaResponse, v.object({
|
|
1206
|
+
tool_body_type: v.picklist(['aws_lambda'])
|
|
1207
|
+
})]);
|
|
1208
|
+
/**
|
|
1209
|
+
* IngestRequest
|
|
1210
|
+
*
|
|
1211
|
+
* Request body for data ingestion
|
|
1212
|
+
*/
|
|
1213
|
+
export const vIngestRequest = v.object({
|
|
1214
|
+
data: v.record(v.string(), v.unknown())
|
|
1215
|
+
});
|
|
1216
|
+
/**
|
|
1217
|
+
* ActionStatusUpdaterResponse
|
|
1218
|
+
*
|
|
1219
|
+
* Action Status Updater — automated polling for delivery status updates.
|
|
1220
|
+
*/
|
|
1221
|
+
export const vActionStatusUpdaterResponse = v.pipe(v.object({
|
|
1222
|
+
cron_expression: v.optional(v.string()),
|
|
1223
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1224
|
+
id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
1225
|
+
inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
1226
|
+
name: v.optional(v.string()),
|
|
1227
|
+
sender_tool_ids: v.nullish(v.array(v.pipe(v.string(), v.uuid()))),
|
|
1228
|
+
tenant_id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
1229
|
+
updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
1230
|
+
updater_body: v.optional(v.union([v.intersect([v.object({
|
|
1231
|
+
updater_body_type: v.literal('cloud_watch_request')
|
|
1232
|
+
}), vActionStatusUpdaterCloudWatchQueryResponse]), v.intersect([v.object({
|
|
1233
|
+
updater_body_type: v.literal('restapi_request')
|
|
1234
|
+
}), vActionStatusUpdaterRestCallResponse])])),
|
|
1235
|
+
updater_tool_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1236
|
+
updater_type: v.optional(v.picklist(['cloud_watch', 'restapi']))
|
|
1237
|
+
}), v.readonly());
|
|
1238
|
+
/**
|
|
1239
|
+
* ActionStatusUpdaterListResponse
|
|
1240
|
+
*
|
|
1241
|
+
* Paginated list of action status updaters
|
|
1242
|
+
*/
|
|
1243
|
+
export const vActionStatusUpdaterListResponse = v.object({
|
|
1244
|
+
data: v.array(vActionStatusUpdaterResponse),
|
|
1245
|
+
meta: vPaginationMeta
|
|
1246
|
+
});
|
|
1247
|
+
/**
|
|
1248
|
+
* TenantResponse
|
|
1249
|
+
*
|
|
1250
|
+
* Lean tenant reference — id, slug, and name only
|
|
1251
|
+
*/
|
|
1252
|
+
export const vTenantResponse = v.pipe(v.object({
|
|
1253
|
+
id: v.pipe(v.pipe(v.string(), v.uuid()), v.readonly()),
|
|
1254
|
+
name: v.pipe(v.string(), v.readonly()),
|
|
1255
|
+
slug: v.pipe(v.string(), v.readonly())
|
|
1256
|
+
}), v.readonly());
|
|
1257
|
+
/**
|
|
1258
|
+
* DatalakeResponse
|
|
1259
|
+
*
|
|
1260
|
+
* Datalake configuration. Secrets (DB passwords, credentials) are write-only — accepted on create but never returned in responses.
|
|
1261
|
+
*/
|
|
1262
|
+
export const vDatalakeResponse = v.pipe(v.object({
|
|
1263
|
+
data_domain: v.picklist([
|
|
1264
|
+
'healthcare',
|
|
1265
|
+
'core_banking',
|
|
1266
|
+
'payment_risk',
|
|
1267
|
+
'accounts_receivable',
|
|
1268
|
+
'service_commerce',
|
|
1269
|
+
'trading'
|
|
1270
|
+
]),
|
|
1271
|
+
timezone: v.nullable(v.string()),
|
|
1272
|
+
regulated_data_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
1273
|
+
regulated_data_db_writer_host: v.string(),
|
|
1274
|
+
inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
1275
|
+
regulated_data_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
1276
|
+
regulated_data_db_writer_schema: v.string(),
|
|
1277
|
+
regulated_data_db_writer_enable_ssl: v.boolean(),
|
|
1278
|
+
unregulated_db_reader_schema: v.string(),
|
|
1279
|
+
unregulated_db_writer_enable_ssl: v.boolean(),
|
|
1280
|
+
unregulated_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
1281
|
+
regulated_data_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
1282
|
+
unregulated_db_reader_enable_ssl: v.boolean(),
|
|
1283
|
+
regulated_data_db_reader_enable_ssl: v.boolean(),
|
|
1284
|
+
unregulated_db_reader_host: v.string(),
|
|
1285
|
+
unregulated_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
1286
|
+
status: v.optional(v.picklist([
|
|
1287
|
+
'new',
|
|
1288
|
+
'processing',
|
|
1289
|
+
'ready'
|
|
1290
|
+
])),
|
|
1291
|
+
updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
1292
|
+
pool_size: v.nullable(v.pipe(v.number(), v.integer())),
|
|
1293
|
+
description: v.nullish(v.string()),
|
|
1294
|
+
name: v.string(),
|
|
1295
|
+
id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
1296
|
+
tenant: v.optional(vTenantResponse),
|
|
1297
|
+
unregulated_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
1298
|
+
unregulated_db_reader_name: v.string(),
|
|
1299
|
+
regulated_data_db_writer_name: v.string(),
|
|
1300
|
+
unregulated_db_writer_host: v.string(),
|
|
1301
|
+
regulated_data_db_reader_schema: v.string(),
|
|
1302
|
+
unregulated_db_writer_name: v.string(),
|
|
1303
|
+
unregulated_db_writer_schema: v.string(),
|
|
1304
|
+
regulated_data_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
1305
|
+
regulated_data_db_reader_name: v.string(),
|
|
1306
|
+
regulated_data_db_reader_host: v.string(),
|
|
1307
|
+
unregulated_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
1308
|
+
slug: v.optional(v.string())
|
|
1309
|
+
}), v.readonly());
|
|
1310
|
+
/**
|
|
1311
|
+
* DataSourceResponse
|
|
1312
|
+
*
|
|
1313
|
+
* Data source — connection to a third-party system or API
|
|
1314
|
+
*/
|
|
1315
|
+
export const vDataSourceResponse = v.pipe(v.object({
|
|
1316
|
+
datalake: v.optional(vDatalakeResponse),
|
|
1317
|
+
description: v.nullish(v.string()),
|
|
1318
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1319
|
+
image_url: v.nullish(v.string()),
|
|
1320
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
1321
|
+
is_default: v.boolean(),
|
|
1322
|
+
name: v.string(),
|
|
1323
|
+
status: v.picklist([
|
|
1324
|
+
'draft',
|
|
1325
|
+
'active',
|
|
1326
|
+
'inactive'
|
|
1327
|
+
]),
|
|
1328
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
1329
|
+
uri: v.string()
|
|
1330
|
+
}), v.readonly());
|
|
1331
|
+
/**
|
|
1332
|
+
* DatalakeListResponse
|
|
1333
|
+
*
|
|
1334
|
+
* Paginated list of datalakes
|
|
1335
|
+
*/
|
|
1336
|
+
export const vDatalakeListResponse = v.object({
|
|
1337
|
+
data: v.array(vDatalakeResponse),
|
|
1338
|
+
meta: vPaginationMeta
|
|
1339
|
+
});
|
|
1340
|
+
/**
|
|
1341
|
+
* DataSourceListResponse
|
|
1342
|
+
*
|
|
1343
|
+
* Paginated list of data sources
|
|
1344
|
+
*/
|
|
1345
|
+
export const vDataSourceListResponse = v.object({
|
|
1346
|
+
data: v.array(vDataSourceResponse),
|
|
1347
|
+
meta: vPaginationMeta
|
|
1348
|
+
});
|
|
1349
|
+
/**
|
|
1350
|
+
* CloudflarePagesConfigResponse
|
|
1351
|
+
*
|
|
1352
|
+
* Cloudflare Pages deployment configuration for managed Connected Apps
|
|
1353
|
+
*/
|
|
1354
|
+
export const vCloudflarePagesConfigResponse = v.pipe(v.object({
|
|
1355
|
+
account_id: v.string(),
|
|
1356
|
+
build_command: v.nullish(v.string()),
|
|
1357
|
+
destination_dir: v.nullish(v.string()),
|
|
1358
|
+
github_auth_method: v.picklist(['github_app', 'pat']),
|
|
1359
|
+
production_branch: v.nullish(v.string()),
|
|
1360
|
+
project_name: v.nullish(v.pipe(v.string(), v.readonly()))
|
|
1361
|
+
}), v.readonly());
|
|
1362
|
+
/**
|
|
1363
|
+
* CloudWatchLogGroupResponse
|
|
1364
|
+
*
|
|
1365
|
+
* AWS CloudWatch Logs authentication credential store. Referenced by ActionStatusUpdater for log-group polling.
|
|
1366
|
+
*/
|
|
1367
|
+
export const vCloudWatchLogGroupResponse = v.pipe(v.object({
|
|
1368
|
+
access_key_id: v.nullish(v.string()),
|
|
1369
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
1370
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
1371
|
+
auth_method: v.picklist([
|
|
1372
|
+
'access_key',
|
|
1373
|
+
'iam_role',
|
|
1374
|
+
'assume_role'
|
|
1375
|
+
]),
|
|
1376
|
+
endpoint_url: v.nullish(v.string()),
|
|
1377
|
+
region: v.string()
|
|
1378
|
+
}), v.readonly());
|
|
1379
|
+
/**
|
|
1380
|
+
* ToolCloudWatchLogGroupResponse
|
|
1381
|
+
*/
|
|
1382
|
+
export const vToolCloudWatchLogGroupResponse = v.intersect([vCloudWatchLogGroupResponse, v.object({
|
|
1383
|
+
tool_body_type: v.picklist(['cloud_watch_log_group'])
|
|
1384
|
+
})]);
|
|
1385
|
+
/**
|
|
1386
|
+
* ToolResponse
|
|
1387
|
+
*
|
|
1388
|
+
* Tool — a configurable capability reference for external services.
|
|
1389
|
+
*/
|
|
1390
|
+
export const vToolResponse = v.pipe(v.object({
|
|
1391
|
+
body: v.optional(v.union([
|
|
1392
|
+
v.intersect([v.object({
|
|
1393
|
+
tool_body_type: v.literal('email')
|
|
1394
|
+
}), vToolEmailResponse]),
|
|
1395
|
+
v.intersect([v.object({
|
|
1396
|
+
tool_body_type: v.literal('sns')
|
|
1397
|
+
}), vToolSnsResponse]),
|
|
1398
|
+
v.intersect([v.object({
|
|
1399
|
+
tool_body_type: v.literal('rest_api')
|
|
1400
|
+
}), vToolRestapiResponse]),
|
|
1401
|
+
v.intersect([v.object({
|
|
1402
|
+
tool_body_type: v.literal('s3')
|
|
1403
|
+
}), vToolS3Response]),
|
|
1404
|
+
v.intersect([v.object({
|
|
1405
|
+
tool_body_type: v.literal('aws_lambda')
|
|
1406
|
+
}), vToolAwsLambdaResponse]),
|
|
1407
|
+
v.intersect([v.object({
|
|
1408
|
+
tool_body_type: v.literal('sql_database')
|
|
1409
|
+
}), vToolSqlDatabaseResponse]),
|
|
1410
|
+
v.intersect([v.object({
|
|
1411
|
+
tool_body_type: v.literal('sqs')
|
|
1412
|
+
}), vToolSqsResponse]),
|
|
1413
|
+
v.intersect([v.object({
|
|
1414
|
+
tool_body_type: v.literal('sftp')
|
|
1415
|
+
}), vToolSftpResponse]),
|
|
1416
|
+
v.intersect([v.object({
|
|
1417
|
+
tool_body_type: v.literal('sharepoint')
|
|
1418
|
+
}), vToolSharePointResponse]),
|
|
1419
|
+
v.intersect([v.object({
|
|
1420
|
+
tool_body_type: v.literal('cloud_watch_log_group')
|
|
1421
|
+
}), vToolCloudWatchLogGroupResponse]),
|
|
1422
|
+
v.intersect([v.object({
|
|
1423
|
+
tool_body_type: v.literal('manual_upload')
|
|
1424
|
+
}), vToolManualUploadResponse])
|
|
1425
|
+
])),
|
|
1426
|
+
data_source_id: v.nullish(v.pipe(v.string(), v.uuid())),
|
|
1427
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1428
|
+
description: v.nullish(v.string()),
|
|
1429
|
+
id: v.optional(v.pipe(v.pipe(v.string(), v.uuid()), v.readonly())),
|
|
1430
|
+
inserted_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())),
|
|
1431
|
+
intent: v.optional(v.picklist([
|
|
1432
|
+
'sms',
|
|
1433
|
+
'email',
|
|
1434
|
+
'export',
|
|
1435
|
+
'voice',
|
|
1436
|
+
'data_exchange',
|
|
1437
|
+
'status_poller',
|
|
1438
|
+
'chat_completion',
|
|
1439
|
+
'context_extraction'
|
|
1440
|
+
])),
|
|
1441
|
+
name: v.optional(v.string()),
|
|
1442
|
+
status: v.optional(v.picklist([
|
|
1443
|
+
'draft',
|
|
1444
|
+
'active',
|
|
1445
|
+
'inactive',
|
|
1446
|
+
'error',
|
|
1447
|
+
'marked_for_deletion'
|
|
1448
|
+
])),
|
|
1449
|
+
updated_at: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly()))
|
|
1450
|
+
}), v.readonly());
|
|
1451
|
+
/**
|
|
1452
|
+
* AiAgentResponse
|
|
1453
|
+
*
|
|
1454
|
+
* AI Agent configuration — reusable chat-completion resource
|
|
1455
|
+
*/
|
|
1456
|
+
export const vAiAgentResponse = v.pipe(v.object({
|
|
1457
|
+
data_access: v.picklist(['regulated', 'unregulated']),
|
|
1458
|
+
datalake: v.optional(vDatalakeResponse),
|
|
1459
|
+
description: v.nullish(v.string()),
|
|
1460
|
+
enabled: v.boolean(),
|
|
1461
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1462
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
1463
|
+
max_tokens: v.pipe(v.number(), v.integer()),
|
|
1464
|
+
model: v.string(),
|
|
1465
|
+
name: v.string(),
|
|
1466
|
+
slug: v.optional(v.string()),
|
|
1467
|
+
temperature: v.number(),
|
|
1468
|
+
tenant: v.optional(vTenantResponse),
|
|
1469
|
+
tool: v.optional(vToolResponse),
|
|
1470
|
+
tool_id: v.pipe(v.string(), v.uuid()),
|
|
1471
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
|
|
1472
|
+
}), v.readonly());
|
|
1473
|
+
/**
|
|
1474
|
+
* AiAgentListResponse
|
|
1475
|
+
*
|
|
1476
|
+
* Paginated list of AI agents
|
|
1477
|
+
*/
|
|
1478
|
+
export const vAiAgentListResponse = v.object({
|
|
1479
|
+
data: v.array(vAiAgentResponse),
|
|
1480
|
+
meta: vPaginationMeta
|
|
1481
|
+
});
|
|
1482
|
+
/**
|
|
1483
|
+
* ToolListResponse
|
|
1484
|
+
*
|
|
1485
|
+
* Paginated list of tools
|
|
1486
|
+
*/
|
|
1487
|
+
export const vToolListResponse = v.object({
|
|
1488
|
+
data: v.array(vToolResponse),
|
|
1489
|
+
meta: vPaginationMeta
|
|
1490
|
+
});
|
|
1491
|
+
/**
|
|
1492
|
+
* ToolRESTAPIRequest
|
|
1493
|
+
*/
|
|
1494
|
+
export const vToolRestapiRequest = v.intersect([vRestapiRequest, v.object({
|
|
1495
|
+
tool_body_type: v.picklist(['rest_api'])
|
|
1496
|
+
})]);
|
|
1497
|
+
/**
|
|
1498
|
+
* DatalakeRequest
|
|
1499
|
+
*
|
|
1500
|
+
* Datalake configuration. Secrets (DB passwords, credentials) are write-only — accepted on create but never returned in responses. Request
|
|
1501
|
+
*/
|
|
1502
|
+
export const vDatalakeRequest = v.object({
|
|
1503
|
+
data_domain: v.picklist([
|
|
1504
|
+
'healthcare',
|
|
1505
|
+
'core_banking',
|
|
1506
|
+
'payment_risk',
|
|
1507
|
+
'accounts_receivable',
|
|
1508
|
+
'service_commerce',
|
|
1509
|
+
'trading'
|
|
1510
|
+
]),
|
|
1511
|
+
timezone: v.nullable(v.string()),
|
|
1512
|
+
regulated_data_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
1513
|
+
regulated_data_db_writer_host: v.string(),
|
|
1514
|
+
regulated_data_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
1515
|
+
regulated_data_db_writer_schema: v.string(),
|
|
1516
|
+
regulated_data_db_writer_enable_ssl: v.boolean(),
|
|
1517
|
+
unregulated_db_reader_schema: v.string(),
|
|
1518
|
+
unregulated_db_writer_enable_ssl: v.boolean(),
|
|
1519
|
+
unregulated_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
1520
|
+
regulated_data_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
1521
|
+
unregulated_db_reader_enable_ssl: v.boolean(),
|
|
1522
|
+
regulated_data_db_reader_enable_ssl: v.boolean(),
|
|
1523
|
+
unregulated_db_reader_host: v.string(),
|
|
1524
|
+
unregulated_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
1525
|
+
pool_size: v.nullable(v.pipe(v.number(), v.integer())),
|
|
1526
|
+
description: v.nullish(v.string()),
|
|
1527
|
+
name: v.string(),
|
|
1528
|
+
unregulated_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
1529
|
+
unregulated_db_reader_name: v.string(),
|
|
1530
|
+
regulated_data_db_writer_name: v.string(),
|
|
1531
|
+
unregulated_db_writer_host: v.string(),
|
|
1532
|
+
regulated_data_db_reader_schema: v.string(),
|
|
1533
|
+
unregulated_db_writer_name: v.string(),
|
|
1534
|
+
unregulated_db_writer_schema: v.string(),
|
|
1535
|
+
regulated_data_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
1536
|
+
regulated_data_db_reader_name: v.string(),
|
|
1537
|
+
regulated_data_db_reader_host: v.string(),
|
|
1538
|
+
unregulated_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
1539
|
+
slug: v.optional(v.string())
|
|
1540
|
+
});
|
|
1541
|
+
/**
|
|
1542
|
+
* ManualUploadRequest
|
|
1543
|
+
*
|
|
1544
|
+
* Manual upload marker tool — no configuration fields, just an identity marker for manual ingestion workflows. Request
|
|
1545
|
+
*/
|
|
1546
|
+
export const vManualUploadRequest = v.record(v.string(), v.unknown());
|
|
1547
|
+
/**
|
|
1548
|
+
* ToolManualUploadRequest
|
|
1549
|
+
*/
|
|
1550
|
+
export const vToolManualUploadRequest = v.intersect([vManualUploadRequest, v.object({
|
|
1551
|
+
tool_body_type: v.picklist(['manual_upload'])
|
|
1552
|
+
})]);
|
|
1553
|
+
/**
|
|
1554
|
+
* SQLDatabaseRequest
|
|
1555
|
+
*
|
|
1556
|
+
* SQL database connection configuration (PostgreSQL, MySQL, MSSQL, SQLite, Snowflake). Request
|
|
1557
|
+
*/
|
|
1558
|
+
export const vSqlDatabaseRequestWritable = v.object({
|
|
1559
|
+
db_host: v.string(),
|
|
1560
|
+
db_name: v.string(),
|
|
1561
|
+
db_type: v.picklist([
|
|
1562
|
+
'postgres',
|
|
1563
|
+
'mysql',
|
|
1564
|
+
'mssql',
|
|
1565
|
+
'sqlite',
|
|
1566
|
+
'snowflake'
|
|
1567
|
+
]),
|
|
1568
|
+
password: v.string(),
|
|
1569
|
+
pool_size: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(99))),
|
|
1570
|
+
port: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
1571
|
+
ssl: v.nullish(v.boolean()),
|
|
1572
|
+
ssl_mode: v.nullish(v.string()),
|
|
1573
|
+
user_name: v.string()
|
|
1574
|
+
});
|
|
1575
|
+
/**
|
|
1576
|
+
* ConnectedAppRequest
|
|
1577
|
+
*
|
|
1578
|
+
* External web application connected to the platform via M2M API key Request
|
|
1579
|
+
*/
|
|
1580
|
+
export const vConnectedAppRequestWritable = v.object({
|
|
1581
|
+
cloudflare_pages_config: v.nullish(v.object({
|
|
1582
|
+
account_id: v.string(),
|
|
1583
|
+
api_token: v.optional(v.string()),
|
|
1584
|
+
build_command: v.nullish(v.string()),
|
|
1585
|
+
destination_dir: v.nullish(v.string()),
|
|
1586
|
+
github_auth_method: v.optional(v.picklist(['github_app', 'pat'])),
|
|
1587
|
+
github_pat: v.nullish(v.string()),
|
|
1588
|
+
production_branch: v.nullish(v.string())
|
|
1589
|
+
})),
|
|
1590
|
+
description: v.nullish(v.string()),
|
|
1591
|
+
mode: v.picklist(['managed', 'self_hosted']),
|
|
1592
|
+
name: v.string(),
|
|
1593
|
+
repo_url: v.nullish(v.string()),
|
|
1594
|
+
urls: v.optional(v.array(v.object({
|
|
1595
|
+
is_primary: v.optional(v.boolean()),
|
|
1596
|
+
label: v.nullish(v.string()),
|
|
1597
|
+
url: v.string()
|
|
1598
|
+
})))
|
|
1599
|
+
});
|
|
1600
|
+
/**
|
|
1601
|
+
* ConnectedAppResponse
|
|
1602
|
+
*
|
|
1603
|
+
* External web application connected to the platform via M2M API key
|
|
1604
|
+
*/
|
|
1605
|
+
export const vConnectedAppResponseWritable = v.pipe(v.object({
|
|
1606
|
+
cloudflare_pages_config: v.nullish(v.object({
|
|
1607
|
+
account_id: v.string(),
|
|
1608
|
+
api_token: v.optional(v.string()),
|
|
1609
|
+
build_command: v.nullish(v.string()),
|
|
1610
|
+
destination_dir: v.nullish(v.string()),
|
|
1611
|
+
github_auth_method: v.optional(v.picklist(['github_app', 'pat'])),
|
|
1612
|
+
github_pat: v.nullish(v.string()),
|
|
1613
|
+
production_branch: v.nullish(v.string())
|
|
1614
|
+
})),
|
|
1615
|
+
description: v.nullish(v.string()),
|
|
1616
|
+
mode: v.picklist(['managed', 'self_hosted']),
|
|
1617
|
+
name: v.string(),
|
|
1618
|
+
repo_url: v.nullish(v.string()),
|
|
1619
|
+
urls: v.optional(v.array(v.object({
|
|
1620
|
+
is_primary: v.optional(v.boolean()),
|
|
1621
|
+
label: v.nullish(v.string()),
|
|
1622
|
+
url: v.string()
|
|
1623
|
+
})))
|
|
1624
|
+
}), v.readonly());
|
|
1625
|
+
/**
|
|
1626
|
+
* CloudflarePagesConfigRequest
|
|
1627
|
+
*
|
|
1628
|
+
* Cloudflare Pages deployment configuration for managed Connected Apps Request
|
|
1629
|
+
*/
|
|
1630
|
+
export const vCloudflarePagesConfigRequestWritable = v.object({
|
|
1631
|
+
account_id: v.string(),
|
|
1632
|
+
api_token: v.string(),
|
|
1633
|
+
build_command: v.nullish(v.string()),
|
|
1634
|
+
destination_dir: v.nullish(v.string()),
|
|
1635
|
+
github_auth_method: v.picklist(['github_app', 'pat']),
|
|
1636
|
+
github_pat: v.nullish(v.string()),
|
|
1637
|
+
production_branch: v.nullish(v.string())
|
|
1638
|
+
});
|
|
1639
|
+
/**
|
|
1640
|
+
* GenericTableResponse
|
|
1641
|
+
*
|
|
1642
|
+
* Generic Table — custom or system dataset table with column definitions.
|
|
1643
|
+
*/
|
|
1644
|
+
export const vGenericTableResponseWritable = v.pipe(v.object({
|
|
1645
|
+
columns: v.optional(v.array(v.unknown())),
|
|
1646
|
+
data_domain: v.optional(v.picklist([
|
|
1647
|
+
'healthcare',
|
|
1648
|
+
'core_banking',
|
|
1649
|
+
'payment_risk',
|
|
1650
|
+
'accounts_receivable',
|
|
1651
|
+
'service_commerce',
|
|
1652
|
+
'trading'
|
|
1653
|
+
])),
|
|
1654
|
+
description: v.optional(v.string()),
|
|
1655
|
+
title: v.optional(v.string())
|
|
1656
|
+
}), v.readonly());
|
|
1657
|
+
/**
|
|
1658
|
+
* SFTPRequest
|
|
1659
|
+
*
|
|
1660
|
+
* SFTP (SSH File Transfer Protocol) server connection configuration with password or SSH key auth. Request
|
|
1661
|
+
*/
|
|
1662
|
+
export const vSftpRequestWritable = v.object({
|
|
1663
|
+
auth_method: v.picklist(['password', 'ssh_key']),
|
|
1664
|
+
base_path: v.string(),
|
|
1665
|
+
host: v.string(),
|
|
1666
|
+
password: v.nullish(v.string()),
|
|
1667
|
+
port: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535)),
|
|
1668
|
+
private_key: v.nullish(v.string()),
|
|
1669
|
+
private_key_passphrase: v.nullish(v.string()),
|
|
1670
|
+
user_name: v.string()
|
|
1671
|
+
});
|
|
1672
|
+
/**
|
|
1673
|
+
* CloudStorageAwsRequest
|
|
1674
|
+
*
|
|
1675
|
+
* AWS S3 cloud storage configuration supporting access key and IAM role authentication. Request
|
|
1676
|
+
*/
|
|
1677
|
+
export const vCloudStorageAwsRequestWritable = v.object({
|
|
1678
|
+
access_key_id: v.nullish(v.string()),
|
|
1679
|
+
auth_method: v.optional(v.picklist(['access_key', 'iam_role'])),
|
|
1680
|
+
base_path: v.optional(v.string()),
|
|
1681
|
+
bucket: v.string(),
|
|
1682
|
+
endpoint: v.nullish(v.string()),
|
|
1683
|
+
region: v.string(),
|
|
1684
|
+
secret_access_key: v.nullish(v.string())
|
|
1685
|
+
});
|
|
1686
|
+
/**
|
|
1687
|
+
* EmailResponse
|
|
1688
|
+
*
|
|
1689
|
+
* Email tool configuration — SES, Mailgun, SendGrid, or SMTP provider plus base Liquid templates.
|
|
1690
|
+
*/
|
|
1691
|
+
export const vEmailResponseWritable = v.pipe(v.object({
|
|
1692
|
+
access_key_id: v.optional(v.string()),
|
|
1693
|
+
domain: v.optional(v.string()),
|
|
1694
|
+
from_email: v.pipe(v.string(), v.email()),
|
|
1695
|
+
from_name: v.nullish(v.string()),
|
|
1696
|
+
provider: v.picklist([
|
|
1697
|
+
'ses',
|
|
1698
|
+
'mailgun',
|
|
1699
|
+
'sendgrid',
|
|
1700
|
+
'smtp'
|
|
1701
|
+
]),
|
|
1702
|
+
region: v.optional(v.string()),
|
|
1703
|
+
reply_to: v.nullish(v.string()),
|
|
1704
|
+
smtp_host: v.optional(v.string()),
|
|
1705
|
+
smtp_port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
1706
|
+
smtp_username: v.optional(v.string())
|
|
1707
|
+
}), v.readonly());
|
|
1708
|
+
/**
|
|
1709
|
+
* RESTAPIRequest
|
|
1710
|
+
*
|
|
1711
|
+
* REST API tool configuration with OpenAPI-compliant authentication (API key, basic, bearer, OAuth2, OIDC) plus base Liquid templates. Request
|
|
1712
|
+
*/
|
|
1713
|
+
export const vRestapiRequestWritable = v.object({
|
|
1714
|
+
api_key: v.nullish(v.string()),
|
|
1715
|
+
api_key_location: v.optional(v.picklist(['header', 'query'])),
|
|
1716
|
+
api_key_name: v.nullish(v.string()),
|
|
1717
|
+
auth_method: v.picklist([
|
|
1718
|
+
'none',
|
|
1719
|
+
'api_key',
|
|
1720
|
+
'basic',
|
|
1721
|
+
'bearer',
|
|
1722
|
+
'oauth2',
|
|
1723
|
+
'oidc'
|
|
1724
|
+
]),
|
|
1725
|
+
base_url: v.string(),
|
|
1726
|
+
bearer_token: v.nullish(v.string()),
|
|
1727
|
+
oauth2_client_id: v.nullish(v.string()),
|
|
1728
|
+
oauth2_client_secret: v.nullish(v.string()),
|
|
1729
|
+
oauth2_grant_type: v.optional(v.picklist(['client_credentials', 'authorization_code'])),
|
|
1730
|
+
oauth2_scope: v.nullish(v.string()),
|
|
1731
|
+
oauth2_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
1732
|
+
oauth2_token_url: v.nullish(v.string()),
|
|
1733
|
+
oidc_client_id: v.nullish(v.string()),
|
|
1734
|
+
oidc_client_secret: v.nullish(v.string()),
|
|
1735
|
+
oidc_issuer_url: v.nullish(v.string()),
|
|
1736
|
+
oidc_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
1737
|
+
password: v.nullish(v.string()),
|
|
1738
|
+
request_type: v.picklist([
|
|
1739
|
+
'json',
|
|
1740
|
+
'xml',
|
|
1741
|
+
'form_urlencoded',
|
|
1742
|
+
'multipart_form'
|
|
1743
|
+
]),
|
|
1744
|
+
response_type: v.picklist([
|
|
1745
|
+
'json',
|
|
1746
|
+
'xml',
|
|
1747
|
+
'text',
|
|
1748
|
+
'binary'
|
|
1749
|
+
]),
|
|
1750
|
+
timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
|
|
1751
|
+
username: v.nullish(v.string())
|
|
1752
|
+
});
|
|
1753
|
+
/**
|
|
1754
|
+
* SQSResponse
|
|
1755
|
+
*
|
|
1756
|
+
* AWS SQS (Simple Queue Service) tool configuration for sending and receiving queue messages.
|
|
1757
|
+
*/
|
|
1758
|
+
export const vSqsResponseWritable = v.pipe(v.object({
|
|
1759
|
+
access_key_id: v.nullish(v.string()),
|
|
1760
|
+
auth_method: v.picklist(['access_key', 'iam_role']),
|
|
1761
|
+
fifo: v.optional(v.boolean()),
|
|
1762
|
+
queue_name: v.nullish(v.string()),
|
|
1763
|
+
queue_url: v.string(),
|
|
1764
|
+
region: v.string()
|
|
1765
|
+
}), v.readonly());
|
|
1766
|
+
/**
|
|
1767
|
+
* ToolSQSResponse
|
|
1768
|
+
*/
|
|
1769
|
+
export const vToolSqsResponseWritable = v.intersect([vSqsResponseWritable, v.object({
|
|
1770
|
+
tool_body_type: v.picklist(['sqs'])
|
|
1771
|
+
})]);
|
|
1772
|
+
/**
|
|
1773
|
+
* ToolEmailResponse
|
|
1774
|
+
*/
|
|
1775
|
+
export const vToolEmailResponseWritable = v.intersect([vEmailResponseWritable, v.object({
|
|
1776
|
+
tool_body_type: v.picklist(['email'])
|
|
1777
|
+
})]);
|
|
1778
|
+
/**
|
|
1779
|
+
* S3CloudStorageR2Response
|
|
1780
|
+
*/
|
|
1781
|
+
export const vS3CloudStorageR2ResponseWritable = v.intersect([vCloudStorageR2Response, v.object({
|
|
1782
|
+
storage_config_type: v.picklist(['r2'])
|
|
1783
|
+
})]);
|
|
1784
|
+
/**
|
|
1785
|
+
* S3CloudStorageAwsResponse
|
|
1786
|
+
*/
|
|
1787
|
+
export const vS3CloudStorageAwsResponseWritable = v.intersect([vCloudStorageAwsResponse, v.object({
|
|
1788
|
+
storage_config_type: v.picklist(['aws'])
|
|
1789
|
+
})]);
|
|
1790
|
+
/**
|
|
1791
|
+
* SQLDatabaseResponse
|
|
1792
|
+
*
|
|
1793
|
+
* SQL database connection configuration (PostgreSQL, MySQL, MSSQL, SQLite, Snowflake).
|
|
1794
|
+
*/
|
|
1795
|
+
export const vSqlDatabaseResponseWritable = v.pipe(v.object({
|
|
1796
|
+
db_host: v.string(),
|
|
1797
|
+
db_name: v.string(),
|
|
1798
|
+
db_type: v.picklist([
|
|
1799
|
+
'postgres',
|
|
1800
|
+
'mysql',
|
|
1801
|
+
'mssql',
|
|
1802
|
+
'sqlite',
|
|
1803
|
+
'snowflake'
|
|
1804
|
+
]),
|
|
1805
|
+
pool_size: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(99))),
|
|
1806
|
+
port: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
1807
|
+
ssl: v.nullish(v.boolean()),
|
|
1808
|
+
ssl_mode: v.nullish(v.string()),
|
|
1809
|
+
user_name: v.string()
|
|
1810
|
+
}), v.readonly());
|
|
1811
|
+
/**
|
|
1812
|
+
* RESTCallRequest
|
|
1813
|
+
*
|
|
1814
|
+
* 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
|
|
1815
|
+
*/
|
|
1816
|
+
export const vRestCallRequestWritable = v.object({
|
|
1817
|
+
method: v.picklist([
|
|
1818
|
+
'head',
|
|
1819
|
+
'get',
|
|
1820
|
+
'put',
|
|
1821
|
+
'post',
|
|
1822
|
+
'delete',
|
|
1823
|
+
'patch'
|
|
1824
|
+
])
|
|
1825
|
+
});
|
|
1826
|
+
/**
|
|
1827
|
+
* SNSResponse
|
|
1828
|
+
*
|
|
1829
|
+
* AWS SNS tool configuration for sending SMS messages via the SNS Publish API.
|
|
1830
|
+
*/
|
|
1831
|
+
export const vSnsResponseWritable = v.pipe(v.object({
|
|
1832
|
+
access_key_id: v.nullish(v.string()),
|
|
1833
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
1834
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
1835
|
+
auth_method: v.picklist([
|
|
1836
|
+
'access_key',
|
|
1837
|
+
'iam_role',
|
|
1838
|
+
'assume_role'
|
|
1839
|
+
]),
|
|
1840
|
+
endpoint_url: v.nullish(v.string()),
|
|
1841
|
+
phone_number: v.string(),
|
|
1842
|
+
region: v.string()
|
|
1843
|
+
}), v.readonly());
|
|
1844
|
+
/**
|
|
1845
|
+
* ToolResponse
|
|
1846
|
+
*
|
|
1847
|
+
* Tool — a configurable capability reference for external services.
|
|
1848
|
+
*/
|
|
1849
|
+
export const vToolResponseWritable = v.pipe(v.object({
|
|
1850
|
+
data_source_id: v.nullish(v.pipe(v.string(), v.uuid())),
|
|
1851
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1852
|
+
description: v.nullish(v.string()),
|
|
1853
|
+
intent: v.optional(v.picklist([
|
|
1854
|
+
'sms',
|
|
1855
|
+
'email',
|
|
1856
|
+
'export',
|
|
1857
|
+
'voice',
|
|
1858
|
+
'data_exchange',
|
|
1859
|
+
'status_poller',
|
|
1860
|
+
'chat_completion',
|
|
1861
|
+
'context_extraction'
|
|
1862
|
+
])),
|
|
1863
|
+
name: v.optional(v.string()),
|
|
1864
|
+
status: v.optional(v.picklist([
|
|
1865
|
+
'draft',
|
|
1866
|
+
'active',
|
|
1867
|
+
'inactive',
|
|
1868
|
+
'error',
|
|
1869
|
+
'marked_for_deletion'
|
|
1870
|
+
]))
|
|
1871
|
+
}), v.readonly());
|
|
1872
|
+
/**
|
|
1873
|
+
* ToolListResponse
|
|
1874
|
+
*
|
|
1875
|
+
* Paginated list of tools
|
|
1876
|
+
*/
|
|
1877
|
+
export const vToolListResponseWritable = v.object({
|
|
1878
|
+
data: v.array(vToolResponseWritable),
|
|
1879
|
+
meta: vPaginationMeta
|
|
1880
|
+
});
|
|
1881
|
+
/**
|
|
1882
|
+
* SQSRequest
|
|
1883
|
+
*
|
|
1884
|
+
* AWS SQS (Simple Queue Service) tool configuration for sending and receiving queue messages. Request
|
|
1885
|
+
*/
|
|
1886
|
+
export const vSqsRequestWritable = v.object({
|
|
1887
|
+
access_key_id: v.nullish(v.string()),
|
|
1888
|
+
auth_method: v.picklist(['access_key', 'iam_role']),
|
|
1889
|
+
fifo: v.optional(v.boolean()),
|
|
1890
|
+
queue_name: v.nullish(v.string()),
|
|
1891
|
+
queue_url: v.string(),
|
|
1892
|
+
region: v.string(),
|
|
1893
|
+
secret_access_key: v.nullish(v.string())
|
|
1894
|
+
});
|
|
1895
|
+
/**
|
|
1896
|
+
* ActionStatusUpdaterRESTCallRequest
|
|
1897
|
+
*/
|
|
1898
|
+
export const vActionStatusUpdaterRestCallRequestWritable = v.intersect([vRestCallRequestWritable, v.object({
|
|
1899
|
+
updater_body_type: v.picklist(['restapi_request'])
|
|
1900
|
+
})]);
|
|
1901
|
+
/**
|
|
1902
|
+
* ActionStatusUpdaterCloudWatchQueryRequest
|
|
1903
|
+
*/
|
|
1904
|
+
export const vActionStatusUpdaterCloudWatchQueryRequestWritable = v.intersect([vCloudWatchQueryRequest, v.object({
|
|
1905
|
+
updater_body_type: v.picklist(['cloud_watch_request'])
|
|
1906
|
+
})]);
|
|
1907
|
+
/**
|
|
1908
|
+
* ActionStatusUpdaterRequest
|
|
1909
|
+
*
|
|
1910
|
+
* Action Status Updater — automated polling for delivery status updates. Request
|
|
1911
|
+
*/
|
|
1912
|
+
export const vActionStatusUpdaterRequestWritable = v.object({
|
|
1913
|
+
cron_expression: v.optional(v.string()),
|
|
1914
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1915
|
+
name: v.optional(v.string()),
|
|
1916
|
+
sender_tool_ids: v.nullish(v.array(v.pipe(v.string(), v.uuid()))),
|
|
1917
|
+
updater_body: v.optional(v.union([v.intersect([v.object({
|
|
1918
|
+
updater_body_type: v.literal('cloud_watch_request')
|
|
1919
|
+
}), vActionStatusUpdaterCloudWatchQueryRequestWritable]), v.intersect([v.object({
|
|
1920
|
+
updater_body_type: v.literal('restapi_request')
|
|
1921
|
+
}), vActionStatusUpdaterRestCallRequestWritable])])),
|
|
1922
|
+
updater_tool_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
1923
|
+
updater_type: v.optional(v.picklist(['cloud_watch', 'restapi']))
|
|
1924
|
+
});
|
|
1925
|
+
/**
|
|
1926
|
+
* S3Response
|
|
1927
|
+
*
|
|
1928
|
+
* S3-compatible storage tool configuration with a nested polymorphic provider config (AWS or R2).
|
|
1929
|
+
*/
|
|
1930
|
+
export const vS3ResponseWritable = v.pipe(v.record(v.string(), v.unknown()), v.readonly());
|
|
1931
|
+
/**
|
|
1932
|
+
* SNSRequest
|
|
1933
|
+
*
|
|
1934
|
+
* AWS SNS tool configuration for sending SMS messages via the SNS Publish API. Request
|
|
1935
|
+
*/
|
|
1936
|
+
export const vSnsRequestWritable = v.object({
|
|
1937
|
+
access_key_id: v.nullish(v.string()),
|
|
1938
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
1939
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
1940
|
+
auth_method: v.picklist([
|
|
1941
|
+
'access_key',
|
|
1942
|
+
'iam_role',
|
|
1943
|
+
'assume_role'
|
|
1944
|
+
]),
|
|
1945
|
+
endpoint_url: v.nullish(v.string()),
|
|
1946
|
+
phone_number: v.string(),
|
|
1947
|
+
region: v.string(),
|
|
1948
|
+
secret_access_key: v.nullish(v.string())
|
|
1949
|
+
});
|
|
1950
|
+
/**
|
|
1951
|
+
* ToolSNSRequest
|
|
1952
|
+
*/
|
|
1953
|
+
export const vToolSnsRequestWritable = v.intersect([vSnsRequestWritable, v.object({
|
|
1954
|
+
tool_body_type: v.picklist(['sns'])
|
|
1955
|
+
})]);
|
|
1956
|
+
/**
|
|
1957
|
+
* CloudWatchLogGroupRequest
|
|
1958
|
+
*
|
|
1959
|
+
* AWS CloudWatch Logs authentication credential store. Referenced by ActionStatusUpdater for log-group polling. Request
|
|
1960
|
+
*/
|
|
1961
|
+
export const vCloudWatchLogGroupRequestWritable = v.object({
|
|
1962
|
+
access_key_id: v.nullish(v.string()),
|
|
1963
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
1964
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
1965
|
+
auth_method: v.picklist([
|
|
1966
|
+
'access_key',
|
|
1967
|
+
'iam_role',
|
|
1968
|
+
'assume_role'
|
|
1969
|
+
]),
|
|
1970
|
+
endpoint_url: v.nullish(v.string()),
|
|
1971
|
+
region: v.string(),
|
|
1972
|
+
secret_access_key: v.nullish(v.string())
|
|
1973
|
+
});
|
|
1974
|
+
/**
|
|
1975
|
+
* ToolSNSResponse
|
|
1976
|
+
*/
|
|
1977
|
+
export const vToolSnsResponseWritable = v.intersect([vSnsResponseWritable, v.object({
|
|
1978
|
+
tool_body_type: v.picklist(['sns'])
|
|
1979
|
+
})]);
|
|
1980
|
+
/**
|
|
1981
|
+
* SFTPResponse
|
|
1982
|
+
*
|
|
1983
|
+
* SFTP (SSH File Transfer Protocol) server connection configuration with password or SSH key auth.
|
|
1984
|
+
*/
|
|
1985
|
+
export const vSftpResponseWritable = v.pipe(v.object({
|
|
1986
|
+
auth_method: v.picklist(['password', 'ssh_key']),
|
|
1987
|
+
base_path: v.string(),
|
|
1988
|
+
host: v.string(),
|
|
1989
|
+
port: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535)),
|
|
1990
|
+
user_name: v.string()
|
|
1991
|
+
}), v.readonly());
|
|
1992
|
+
/**
|
|
1993
|
+
* ToolSFTPResponse
|
|
1994
|
+
*/
|
|
1995
|
+
export const vToolSftpResponseWritable = v.intersect([vSftpResponseWritable, v.object({
|
|
1996
|
+
tool_body_type: v.picklist(['sftp'])
|
|
1997
|
+
})]);
|
|
1998
|
+
/**
|
|
1999
|
+
* DatalakeResponse
|
|
2000
|
+
*
|
|
2001
|
+
* Datalake configuration. Secrets (DB passwords, credentials) are write-only — accepted on create but never returned in responses.
|
|
2002
|
+
*/
|
|
2003
|
+
export const vDatalakeResponseWritable = v.pipe(v.object({
|
|
2004
|
+
data_domain: v.picklist([
|
|
2005
|
+
'healthcare',
|
|
2006
|
+
'core_banking',
|
|
2007
|
+
'payment_risk',
|
|
2008
|
+
'accounts_receivable',
|
|
2009
|
+
'service_commerce',
|
|
2010
|
+
'trading'
|
|
2011
|
+
]),
|
|
2012
|
+
timezone: v.nullable(v.string()),
|
|
2013
|
+
regulated_data_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
2014
|
+
regulated_data_db_writer_host: v.string(),
|
|
2015
|
+
regulated_data_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
2016
|
+
regulated_data_db_writer_schema: v.string(),
|
|
2017
|
+
regulated_data_db_writer_enable_ssl: v.boolean(),
|
|
2018
|
+
unregulated_db_reader_schema: v.string(),
|
|
2019
|
+
unregulated_db_writer_enable_ssl: v.boolean(),
|
|
2020
|
+
unregulated_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
2021
|
+
regulated_data_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
2022
|
+
unregulated_db_reader_enable_ssl: v.boolean(),
|
|
2023
|
+
regulated_data_db_reader_enable_ssl: v.boolean(),
|
|
2024
|
+
unregulated_db_reader_host: v.string(),
|
|
2025
|
+
unregulated_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
2026
|
+
pool_size: v.nullable(v.pipe(v.number(), v.integer())),
|
|
2027
|
+
description: v.nullish(v.string()),
|
|
2028
|
+
name: v.string(),
|
|
2029
|
+
unregulated_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
2030
|
+
unregulated_db_reader_name: v.string(),
|
|
2031
|
+
regulated_data_db_writer_name: v.string(),
|
|
2032
|
+
unregulated_db_writer_host: v.string(),
|
|
2033
|
+
regulated_data_db_reader_schema: v.string(),
|
|
2034
|
+
unregulated_db_writer_name: v.string(),
|
|
2035
|
+
unregulated_db_writer_schema: v.string(),
|
|
2036
|
+
regulated_data_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
2037
|
+
regulated_data_db_reader_name: v.string(),
|
|
2038
|
+
regulated_data_db_reader_host: v.string(),
|
|
2039
|
+
unregulated_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
2040
|
+
slug: v.optional(v.string())
|
|
2041
|
+
}), v.readonly());
|
|
2042
|
+
/**
|
|
2043
|
+
* DataSourceResponse
|
|
2044
|
+
*
|
|
2045
|
+
* Data source — connection to a third-party system or API
|
|
2046
|
+
*/
|
|
2047
|
+
export const vDataSourceResponseWritable = v.pipe(v.object({
|
|
2048
|
+
datalake: v.optional(vDatalakeResponseWritable),
|
|
2049
|
+
description: v.nullish(v.string()),
|
|
2050
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2051
|
+
image_url: v.nullish(v.string()),
|
|
2052
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
2053
|
+
is_default: v.boolean(),
|
|
2054
|
+
name: v.string(),
|
|
2055
|
+
status: v.picklist([
|
|
2056
|
+
'draft',
|
|
2057
|
+
'active',
|
|
2058
|
+
'inactive'
|
|
2059
|
+
]),
|
|
2060
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
2061
|
+
uri: v.string()
|
|
2062
|
+
}), v.readonly());
|
|
2063
|
+
/**
|
|
2064
|
+
* AiAgentResponse
|
|
2065
|
+
*
|
|
2066
|
+
* AI Agent configuration — reusable chat-completion resource
|
|
2067
|
+
*/
|
|
2068
|
+
export const vAiAgentResponseWritable = v.pipe(v.object({
|
|
2069
|
+
data_access: v.picklist(['regulated', 'unregulated']),
|
|
2070
|
+
datalake: v.optional(vDatalakeResponseWritable),
|
|
2071
|
+
description: v.nullish(v.string()),
|
|
2072
|
+
enabled: v.boolean(),
|
|
2073
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2074
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
2075
|
+
max_tokens: v.pipe(v.number(), v.integer()),
|
|
2076
|
+
model: v.string(),
|
|
2077
|
+
name: v.string(),
|
|
2078
|
+
slug: v.optional(v.string()),
|
|
2079
|
+
temperature: v.number(),
|
|
2080
|
+
tool: v.optional(vToolResponseWritable),
|
|
2081
|
+
tool_id: v.pipe(v.string(), v.uuid()),
|
|
2082
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
|
|
2083
|
+
}), v.readonly());
|
|
2084
|
+
/**
|
|
2085
|
+
* AiAgentListResponse
|
|
2086
|
+
*
|
|
2087
|
+
* Paginated list of AI agents
|
|
2088
|
+
*/
|
|
2089
|
+
export const vAiAgentListResponseWritable = v.object({
|
|
2090
|
+
data: v.array(vAiAgentResponseWritable),
|
|
2091
|
+
meta: vPaginationMeta
|
|
2092
|
+
});
|
|
2093
|
+
/**
|
|
2094
|
+
* DatalakeListResponse
|
|
2095
|
+
*
|
|
2096
|
+
* Paginated list of datalakes
|
|
2097
|
+
*/
|
|
2098
|
+
export const vDatalakeListResponseWritable = v.object({
|
|
2099
|
+
data: v.array(vDatalakeResponseWritable),
|
|
2100
|
+
meta: vPaginationMeta
|
|
2101
|
+
});
|
|
2102
|
+
/**
|
|
2103
|
+
* DataSourceListResponse
|
|
2104
|
+
*
|
|
2105
|
+
* Paginated list of data sources
|
|
2106
|
+
*/
|
|
2107
|
+
export const vDataSourceListResponseWritable = v.object({
|
|
2108
|
+
data: v.array(vDataSourceResponseWritable),
|
|
2109
|
+
meta: vPaginationMeta
|
|
2110
|
+
});
|
|
2111
|
+
/**
|
|
2112
|
+
* SharePointRequest
|
|
2113
|
+
*
|
|
2114
|
+
* Microsoft SharePoint integration via the Microsoft Graph API. Supports sites, document libraries, and lists with client-credential or managed-identity auth. Request
|
|
2115
|
+
*/
|
|
2116
|
+
export const vSharePointRequestWritable = v.object({
|
|
2117
|
+
auth_method: v.picklist(['client_credentials', 'managed_identity']),
|
|
2118
|
+
client_id: v.nullish(v.string()),
|
|
2119
|
+
client_secret: v.nullish(v.string()),
|
|
2120
|
+
drive_id: v.nullish(v.string()),
|
|
2121
|
+
drive_path: v.nullish(v.string()),
|
|
2122
|
+
resource_type: v.picklist([
|
|
2123
|
+
'site',
|
|
2124
|
+
'library',
|
|
2125
|
+
'list'
|
|
2126
|
+
]),
|
|
2127
|
+
site_url: v.nullish(v.string()),
|
|
2128
|
+
tenant_id: v.string()
|
|
2129
|
+
});
|
|
2130
|
+
/**
|
|
2131
|
+
* CloudStorageR2Request
|
|
2132
|
+
*
|
|
2133
|
+
* Cloudflare R2 cloud storage configuration — S3-compatible with auto region and account-scoped endpoints. Request
|
|
2134
|
+
*/
|
|
2135
|
+
export const vCloudStorageR2RequestWritable = v.object({
|
|
2136
|
+
access_key_id: v.string(),
|
|
2137
|
+
base_path: v.optional(v.string()),
|
|
2138
|
+
bucket: v.string(),
|
|
2139
|
+
endpoint: v.nullish(v.string()),
|
|
2140
|
+
region: v.optional(v.string()),
|
|
2141
|
+
secret_access_key: v.string()
|
|
2142
|
+
});
|
|
2143
|
+
/**
|
|
2144
|
+
* S3CloudStorageAwsRequest
|
|
2145
|
+
*/
|
|
2146
|
+
export const vS3CloudStorageAwsRequestWritable = v.intersect([vCloudStorageAwsRequestWritable, v.object({
|
|
2147
|
+
storage_config_type: v.picklist(['aws'])
|
|
2148
|
+
})]);
|
|
2149
|
+
/**
|
|
2150
|
+
* ToolS3Response
|
|
2151
|
+
*/
|
|
2152
|
+
export const vToolS3ResponseWritable = v.intersect([vS3ResponseWritable, v.object({
|
|
2153
|
+
tool_body_type: v.picklist(['s3'])
|
|
2154
|
+
})]);
|
|
2155
|
+
/**
|
|
2156
|
+
* ToolCloudWatchLogGroupRequest
|
|
2157
|
+
*/
|
|
2158
|
+
export const vToolCloudWatchLogGroupRequestWritable = v.intersect([vCloudWatchLogGroupRequestWritable, v.object({
|
|
2159
|
+
tool_body_type: v.picklist(['cloud_watch_log_group'])
|
|
2160
|
+
})]);
|
|
2161
|
+
/**
|
|
2162
|
+
* ToolSQLDatabaseResponse
|
|
2163
|
+
*/
|
|
2164
|
+
export const vToolSqlDatabaseResponseWritable = v.intersect([vSqlDatabaseResponseWritable, v.object({
|
|
2165
|
+
tool_body_type: v.picklist(['sql_database'])
|
|
2166
|
+
})]);
|
|
2167
|
+
/**
|
|
2168
|
+
* ActionStatusUpdaterCloudWatchQueryResponse
|
|
2169
|
+
*/
|
|
2170
|
+
export const vActionStatusUpdaterCloudWatchQueryResponseWritable = v.intersect([vCloudWatchQueryResponse, v.object({
|
|
2171
|
+
updater_body_type: v.picklist(['cloud_watch_request'])
|
|
2172
|
+
})]);
|
|
2173
|
+
/**
|
|
2174
|
+
* ToolSFTPRequest
|
|
2175
|
+
*/
|
|
2176
|
+
export const vToolSftpRequestWritable = v.intersect([vSftpRequestWritable, v.object({
|
|
2177
|
+
tool_body_type: v.picklist(['sftp'])
|
|
2178
|
+
})]);
|
|
2179
|
+
/**
|
|
2180
|
+
* GenericTableRequest
|
|
2181
|
+
*
|
|
2182
|
+
* Generic Table — custom or system dataset table with column definitions. Request
|
|
2183
|
+
*/
|
|
2184
|
+
export const vGenericTableRequestWritable = v.object({
|
|
2185
|
+
columns: v.optional(v.array(v.unknown())),
|
|
2186
|
+
data_domain: v.optional(v.picklist([
|
|
2187
|
+
'healthcare',
|
|
2188
|
+
'core_banking',
|
|
2189
|
+
'payment_risk',
|
|
2190
|
+
'accounts_receivable',
|
|
2191
|
+
'service_commerce',
|
|
2192
|
+
'trading'
|
|
2193
|
+
])),
|
|
2194
|
+
description: v.optional(v.string()),
|
|
2195
|
+
title: v.optional(v.string())
|
|
2196
|
+
});
|
|
2197
|
+
/**
|
|
2198
|
+
* GenericTableListResponse
|
|
2199
|
+
*
|
|
2200
|
+
* Paginated list of generic tables
|
|
2201
|
+
*/
|
|
2202
|
+
export const vGenericTableListResponseWritable = v.object({
|
|
2203
|
+
data: v.array(vGenericTableResponseWritable),
|
|
2204
|
+
meta: vPaginationMeta
|
|
2205
|
+
});
|
|
2206
|
+
/**
|
|
2207
|
+
* ToolSQLDatabaseRequest
|
|
2208
|
+
*/
|
|
2209
|
+
export const vToolSqlDatabaseRequestWritable = v.intersect([vSqlDatabaseRequestWritable, v.object({
|
|
2210
|
+
tool_body_type: v.picklist(['sql_database'])
|
|
2211
|
+
})]);
|
|
2212
|
+
/**
|
|
2213
|
+
* S3CloudStorageR2Request
|
|
2214
|
+
*/
|
|
2215
|
+
export const vS3CloudStorageR2RequestWritable = v.intersect([vCloudStorageR2RequestWritable, v.object({
|
|
2216
|
+
storage_config_type: v.picklist(['r2'])
|
|
2217
|
+
})]);
|
|
2218
|
+
/**
|
|
2219
|
+
* S3Request
|
|
2220
|
+
*
|
|
2221
|
+
* S3-compatible storage tool configuration with a nested polymorphic provider config (AWS or R2). Request
|
|
2222
|
+
*/
|
|
2223
|
+
export const vS3RequestWritable = v.object({
|
|
2224
|
+
config: v.union([v.intersect([v.object({
|
|
2225
|
+
storage_config_type: v.literal('aws')
|
|
2226
|
+
}), vS3CloudStorageAwsRequestWritable]), v.intersect([v.object({
|
|
2227
|
+
storage_config_type: v.literal('r2')
|
|
2228
|
+
}), vS3CloudStorageR2RequestWritable])])
|
|
2229
|
+
});
|
|
2230
|
+
/**
|
|
2231
|
+
* ToolS3Request
|
|
2232
|
+
*/
|
|
2233
|
+
export const vToolS3RequestWritable = v.intersect([vS3RequestWritable, v.object({
|
|
2234
|
+
tool_body_type: v.picklist(['s3'])
|
|
2235
|
+
})]);
|
|
2236
|
+
/**
|
|
2237
|
+
* ConnectedAppListResponse
|
|
2238
|
+
*
|
|
2239
|
+
* Paginated list of connected apps
|
|
2240
|
+
*/
|
|
2241
|
+
export const vConnectedAppListResponseWritable = v.object({
|
|
2242
|
+
data: v.array(vConnectedAppResponseWritable),
|
|
2243
|
+
meta: vPaginationMeta
|
|
2244
|
+
});
|
|
2245
|
+
/**
|
|
2246
|
+
* EmailRequest
|
|
2247
|
+
*
|
|
2248
|
+
* Email tool configuration — SES, Mailgun, SendGrid, or SMTP provider plus base Liquid templates. Request
|
|
2249
|
+
*/
|
|
2250
|
+
export const vEmailRequestWritable = v.object({
|
|
2251
|
+
access_key_id: v.optional(v.string()),
|
|
2252
|
+
api_key: v.optional(v.string()),
|
|
2253
|
+
domain: v.optional(v.string()),
|
|
2254
|
+
from_email: v.pipe(v.string(), v.email()),
|
|
2255
|
+
from_name: v.nullish(v.string()),
|
|
2256
|
+
provider: v.picklist([
|
|
2257
|
+
'ses',
|
|
2258
|
+
'mailgun',
|
|
2259
|
+
'sendgrid',
|
|
2260
|
+
'smtp'
|
|
2261
|
+
]),
|
|
2262
|
+
region: v.optional(v.string()),
|
|
2263
|
+
reply_to: v.nullish(v.string()),
|
|
2264
|
+
secret_access_key: v.optional(v.string()),
|
|
2265
|
+
smtp_host: v.optional(v.string()),
|
|
2266
|
+
smtp_password: v.optional(v.string()),
|
|
2267
|
+
smtp_port: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(65535))),
|
|
2268
|
+
smtp_username: v.optional(v.string())
|
|
2269
|
+
});
|
|
2270
|
+
/**
|
|
2271
|
+
* ToolEmailRequest
|
|
2272
|
+
*/
|
|
2273
|
+
export const vToolEmailRequestWritable = v.intersect([vEmailRequestWritable, v.object({
|
|
2274
|
+
tool_body_type: v.picklist(['email'])
|
|
2275
|
+
})]);
|
|
2276
|
+
/**
|
|
2277
|
+
* RESTAPIResponse
|
|
2278
|
+
*
|
|
2279
|
+
* REST API tool configuration with OpenAPI-compliant authentication (API key, basic, bearer, OAuth2, OIDC) plus base Liquid templates.
|
|
2280
|
+
*/
|
|
2281
|
+
export const vRestapiResponseWritable = v.pipe(v.object({
|
|
2282
|
+
api_key_location: v.optional(v.picklist(['header', 'query'])),
|
|
2283
|
+
api_key_name: v.nullish(v.string()),
|
|
2284
|
+
auth_method: v.picklist([
|
|
2285
|
+
'none',
|
|
2286
|
+
'api_key',
|
|
2287
|
+
'basic',
|
|
2288
|
+
'bearer',
|
|
2289
|
+
'oauth2',
|
|
2290
|
+
'oidc'
|
|
2291
|
+
]),
|
|
2292
|
+
base_url: v.string(),
|
|
2293
|
+
oauth2_client_id: v.nullish(v.string()),
|
|
2294
|
+
oauth2_grant_type: v.optional(v.picklist(['client_credentials', 'authorization_code'])),
|
|
2295
|
+
oauth2_scope: v.nullish(v.string()),
|
|
2296
|
+
oauth2_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
2297
|
+
oauth2_token_url: v.nullish(v.string()),
|
|
2298
|
+
oidc_client_id: v.nullish(v.string()),
|
|
2299
|
+
oidc_issuer_url: v.nullish(v.string()),
|
|
2300
|
+
oidc_token_ttl: v.nullish(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
2301
|
+
request_type: v.picklist([
|
|
2302
|
+
'json',
|
|
2303
|
+
'xml',
|
|
2304
|
+
'form_urlencoded',
|
|
2305
|
+
'multipart_form'
|
|
2306
|
+
]),
|
|
2307
|
+
response_type: v.picklist([
|
|
2308
|
+
'json',
|
|
2309
|
+
'xml',
|
|
2310
|
+
'text',
|
|
2311
|
+
'binary'
|
|
2312
|
+
]),
|
|
2313
|
+
timeout_ms: v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(300000)),
|
|
2314
|
+
username: v.nullish(v.string())
|
|
2315
|
+
}), v.readonly());
|
|
2316
|
+
/**
|
|
2317
|
+
* ToolRESTAPIResponse
|
|
2318
|
+
*/
|
|
2319
|
+
export const vToolRestapiResponseWritable = v.intersect([vRestapiResponseWritable, v.object({
|
|
2320
|
+
tool_body_type: v.picklist(['rest_api'])
|
|
2321
|
+
})]);
|
|
2322
|
+
/**
|
|
2323
|
+
* SharePointResponse
|
|
2324
|
+
*
|
|
2325
|
+
* Microsoft SharePoint integration via the Microsoft Graph API. Supports sites, document libraries, and lists with client-credential or managed-identity auth.
|
|
2326
|
+
*/
|
|
2327
|
+
export const vSharePointResponseWritable = v.pipe(v.object({
|
|
2328
|
+
auth_method: v.picklist(['client_credentials', 'managed_identity']),
|
|
2329
|
+
client_id: v.nullish(v.string()),
|
|
2330
|
+
drive_id: v.nullish(v.string()),
|
|
2331
|
+
drive_path: v.nullish(v.string()),
|
|
2332
|
+
resource_type: v.picklist([
|
|
2333
|
+
'site',
|
|
2334
|
+
'library',
|
|
2335
|
+
'list'
|
|
2336
|
+
]),
|
|
2337
|
+
site_url: v.nullish(v.string()),
|
|
2338
|
+
tenant_id: v.string()
|
|
2339
|
+
}), v.readonly());
|
|
2340
|
+
/**
|
|
2341
|
+
* ToolSharePointResponse
|
|
2342
|
+
*/
|
|
2343
|
+
export const vToolSharePointResponseWritable = v.intersect([vSharePointResponseWritable, v.object({
|
|
2344
|
+
tool_body_type: v.picklist(['sharepoint'])
|
|
2345
|
+
})]);
|
|
2346
|
+
/**
|
|
2347
|
+
* AiAgentRequest
|
|
2348
|
+
*
|
|
2349
|
+
* AI Agent configuration — reusable chat-completion resource Request
|
|
2350
|
+
*/
|
|
2351
|
+
export const vAiAgentRequestWritable = v.object({
|
|
2352
|
+
data_access: v.picklist(['regulated', 'unregulated']),
|
|
2353
|
+
description: v.nullish(v.string()),
|
|
2354
|
+
enabled: v.boolean(),
|
|
2355
|
+
id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2356
|
+
inserted_at: v.optional(v.pipe(v.string(), v.isoTimestamp())),
|
|
2357
|
+
max_tokens: v.pipe(v.number(), v.integer()),
|
|
2358
|
+
model: v.string(),
|
|
2359
|
+
name: v.string(),
|
|
2360
|
+
slug: v.optional(v.string()),
|
|
2361
|
+
temperature: v.number(),
|
|
2362
|
+
tool_id: v.pipe(v.string(), v.uuid()),
|
|
2363
|
+
updated_at: v.optional(v.pipe(v.string(), v.isoTimestamp()))
|
|
2364
|
+
});
|
|
2365
|
+
/**
|
|
2366
|
+
* RESTCallResponse
|
|
2367
|
+
*
|
|
2368
|
+
* 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).
|
|
2369
|
+
*/
|
|
2370
|
+
export const vRestCallResponseWritable = v.pipe(v.object({
|
|
2371
|
+
method: v.picklist([
|
|
2372
|
+
'head',
|
|
2373
|
+
'get',
|
|
2374
|
+
'put',
|
|
2375
|
+
'post',
|
|
2376
|
+
'delete',
|
|
2377
|
+
'patch'
|
|
2378
|
+
])
|
|
2379
|
+
}), v.readonly());
|
|
2380
|
+
/**
|
|
2381
|
+
* ActionStatusUpdaterRESTCallResponse
|
|
2382
|
+
*/
|
|
2383
|
+
export const vActionStatusUpdaterRestCallResponseWritable = v.intersect([vRestCallResponseWritable, v.object({
|
|
2384
|
+
updater_body_type: v.picklist(['restapi_request'])
|
|
2385
|
+
})]);
|
|
2386
|
+
/**
|
|
2387
|
+
* ToolSQSRequest
|
|
2388
|
+
*/
|
|
2389
|
+
export const vToolSqsRequestWritable = v.intersect([vSqsRequestWritable, v.object({
|
|
2390
|
+
tool_body_type: v.picklist(['sqs'])
|
|
2391
|
+
})]);
|
|
2392
|
+
/**
|
|
2393
|
+
* AWSLambdaRequest
|
|
2394
|
+
*
|
|
2395
|
+
* AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes. Request
|
|
2396
|
+
*/
|
|
2397
|
+
export const vAwsLambdaRequestWritable = v.object({
|
|
2398
|
+
access_key_id: v.nullish(v.string()),
|
|
2399
|
+
auth_method: v.optional(v.picklist([
|
|
2400
|
+
'access_key',
|
|
2401
|
+
'iam_role',
|
|
2402
|
+
'cloudformation'
|
|
2403
|
+
])),
|
|
2404
|
+
env_vars: v.optional(v.array(v.unknown())),
|
|
2405
|
+
function_arn: v.nullish(v.string()),
|
|
2406
|
+
secret_access_key: v.nullish(v.string()),
|
|
2407
|
+
secrets: v.optional(v.array(v.unknown())),
|
|
2408
|
+
ssm_config_key: v.nullish(v.string()),
|
|
2409
|
+
type: v.picklist(['managed', 'external'])
|
|
2410
|
+
});
|
|
2411
|
+
/**
|
|
2412
|
+
* ToolAWSLambdaRequest
|
|
2413
|
+
*/
|
|
2414
|
+
export const vToolAwsLambdaRequestWritable = v.intersect([vAwsLambdaRequestWritable, v.object({
|
|
2415
|
+
tool_body_type: v.picklist(['aws_lambda'])
|
|
2416
|
+
})]);
|
|
2417
|
+
/**
|
|
2418
|
+
* ToolSharePointRequest
|
|
2419
|
+
*/
|
|
2420
|
+
export const vToolSharePointRequestWritable = v.intersect([vSharePointRequestWritable, v.object({
|
|
2421
|
+
tool_body_type: v.picklist(['sharepoint'])
|
|
2422
|
+
})]);
|
|
2423
|
+
/**
|
|
2424
|
+
* AWSLambdaResponse
|
|
2425
|
+
*
|
|
2426
|
+
* AWS Lambda tool configuration supporting managed (CloudFormation-deployed) and external (user-provided ARN) modes.
|
|
2427
|
+
*/
|
|
2428
|
+
export const vAwsLambdaResponseWritable = v.pipe(v.object({
|
|
2429
|
+
access_key_id: v.nullish(v.string()),
|
|
2430
|
+
auth_method: v.optional(v.picklist([
|
|
2431
|
+
'access_key',
|
|
2432
|
+
'iam_role',
|
|
2433
|
+
'cloudformation'
|
|
2434
|
+
])),
|
|
2435
|
+
env_vars: v.optional(v.array(v.unknown())),
|
|
2436
|
+
function_arn: v.nullish(v.string()),
|
|
2437
|
+
secrets: v.optional(v.array(v.unknown())),
|
|
2438
|
+
ssm_config_key: v.nullish(v.string()),
|
|
2439
|
+
type: v.picklist(['managed', 'external'])
|
|
2440
|
+
}), v.readonly());
|
|
2441
|
+
/**
|
|
2442
|
+
* ToolAWSLambdaResponse
|
|
2443
|
+
*/
|
|
2444
|
+
export const vToolAwsLambdaResponseWritable = v.intersect([vAwsLambdaResponseWritable, v.object({
|
|
2445
|
+
tool_body_type: v.picklist(['aws_lambda'])
|
|
2446
|
+
})]);
|
|
2447
|
+
/**
|
|
2448
|
+
* ActionStatusUpdaterResponse
|
|
2449
|
+
*
|
|
2450
|
+
* Action Status Updater — automated polling for delivery status updates.
|
|
2451
|
+
*/
|
|
2452
|
+
export const vActionStatusUpdaterResponseWritable = v.pipe(v.object({
|
|
2453
|
+
cron_expression: v.optional(v.string()),
|
|
2454
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2455
|
+
name: v.optional(v.string()),
|
|
2456
|
+
sender_tool_ids: v.nullish(v.array(v.pipe(v.string(), v.uuid()))),
|
|
2457
|
+
updater_tool_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2458
|
+
updater_type: v.optional(v.picklist(['cloud_watch', 'restapi']))
|
|
2459
|
+
}), v.readonly());
|
|
2460
|
+
/**
|
|
2461
|
+
* ActionStatusUpdaterListResponse
|
|
2462
|
+
*
|
|
2463
|
+
* Paginated list of action status updaters
|
|
2464
|
+
*/
|
|
2465
|
+
export const vActionStatusUpdaterListResponseWritable = v.object({
|
|
2466
|
+
data: v.array(vActionStatusUpdaterResponseWritable),
|
|
2467
|
+
meta: vPaginationMeta
|
|
2468
|
+
});
|
|
2469
|
+
/**
|
|
2470
|
+
* CloudflarePagesConfigResponse
|
|
2471
|
+
*
|
|
2472
|
+
* Cloudflare Pages deployment configuration for managed Connected Apps
|
|
2473
|
+
*/
|
|
2474
|
+
export const vCloudflarePagesConfigResponseWritable = v.pipe(v.object({
|
|
2475
|
+
account_id: v.string(),
|
|
2476
|
+
build_command: v.nullish(v.string()),
|
|
2477
|
+
destination_dir: v.nullish(v.string()),
|
|
2478
|
+
github_auth_method: v.picklist(['github_app', 'pat']),
|
|
2479
|
+
production_branch: v.nullish(v.string())
|
|
2480
|
+
}), v.readonly());
|
|
2481
|
+
/**
|
|
2482
|
+
* CloudWatchLogGroupResponse
|
|
2483
|
+
*
|
|
2484
|
+
* AWS CloudWatch Logs authentication credential store. Referenced by ActionStatusUpdater for log-group polling.
|
|
2485
|
+
*/
|
|
2486
|
+
export const vCloudWatchLogGroupResponseWritable = v.pipe(v.object({
|
|
2487
|
+
access_key_id: v.nullish(v.string()),
|
|
2488
|
+
assume_role_arn: v.nullish(v.pipe(v.string(), v.regex(/^arn:aws:iam::\d{12}:role\/.+$/))),
|
|
2489
|
+
assume_role_external_id: v.nullish(v.string()),
|
|
2490
|
+
auth_method: v.picklist([
|
|
2491
|
+
'access_key',
|
|
2492
|
+
'iam_role',
|
|
2493
|
+
'assume_role'
|
|
2494
|
+
]),
|
|
2495
|
+
endpoint_url: v.nullish(v.string()),
|
|
2496
|
+
region: v.string()
|
|
2497
|
+
}), v.readonly());
|
|
2498
|
+
/**
|
|
2499
|
+
* ToolCloudWatchLogGroupResponse
|
|
2500
|
+
*/
|
|
2501
|
+
export const vToolCloudWatchLogGroupResponseWritable = v.intersect([vCloudWatchLogGroupResponseWritable, v.object({
|
|
2502
|
+
tool_body_type: v.picklist(['cloud_watch_log_group'])
|
|
2503
|
+
})]);
|
|
2504
|
+
/**
|
|
2505
|
+
* ToolRESTAPIRequest
|
|
2506
|
+
*/
|
|
2507
|
+
export const vToolRestapiRequestWritable = v.intersect([vRestapiRequestWritable, v.object({
|
|
2508
|
+
tool_body_type: v.picklist(['rest_api'])
|
|
2509
|
+
})]);
|
|
2510
|
+
/**
|
|
2511
|
+
* ToolRequest
|
|
2512
|
+
*
|
|
2513
|
+
* Tool — a configurable capability reference for external services. Request
|
|
2514
|
+
*/
|
|
2515
|
+
export const vToolRequestWritable = v.object({
|
|
2516
|
+
body: v.optional(v.union([
|
|
2517
|
+
v.intersect([v.object({
|
|
2518
|
+
tool_body_type: v.literal('email')
|
|
2519
|
+
}), vToolEmailRequestWritable]),
|
|
2520
|
+
v.intersect([v.object({
|
|
2521
|
+
tool_body_type: v.literal('sns')
|
|
2522
|
+
}), vToolSnsRequestWritable]),
|
|
2523
|
+
v.intersect([v.object({
|
|
2524
|
+
tool_body_type: v.literal('rest_api')
|
|
2525
|
+
}), vToolRestapiRequestWritable]),
|
|
2526
|
+
v.intersect([v.object({
|
|
2527
|
+
tool_body_type: v.literal('s3')
|
|
2528
|
+
}), vToolS3RequestWritable]),
|
|
2529
|
+
v.intersect([v.object({
|
|
2530
|
+
tool_body_type: v.literal('aws_lambda')
|
|
2531
|
+
}), vToolAwsLambdaRequestWritable]),
|
|
2532
|
+
v.intersect([v.object({
|
|
2533
|
+
tool_body_type: v.literal('sql_database')
|
|
2534
|
+
}), vToolSqlDatabaseRequestWritable]),
|
|
2535
|
+
v.intersect([v.object({
|
|
2536
|
+
tool_body_type: v.literal('sqs')
|
|
2537
|
+
}), vToolSqsRequestWritable]),
|
|
2538
|
+
v.intersect([v.object({
|
|
2539
|
+
tool_body_type: v.literal('sftp')
|
|
2540
|
+
}), vToolSftpRequestWritable]),
|
|
2541
|
+
v.intersect([v.object({
|
|
2542
|
+
tool_body_type: v.literal('sharepoint')
|
|
2543
|
+
}), vToolSharePointRequestWritable]),
|
|
2544
|
+
v.intersect([v.object({
|
|
2545
|
+
tool_body_type: v.literal('cloud_watch_log_group')
|
|
2546
|
+
}), vToolCloudWatchLogGroupRequestWritable]),
|
|
2547
|
+
v.intersect([v.object({
|
|
2548
|
+
tool_body_type: v.literal('manual_upload')
|
|
2549
|
+
}), vToolManualUploadRequest])
|
|
2550
|
+
])),
|
|
2551
|
+
data_source_id: v.nullish(v.pipe(v.string(), v.uuid())),
|
|
2552
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2553
|
+
description: v.nullish(v.string()),
|
|
2554
|
+
intent: v.optional(v.picklist([
|
|
2555
|
+
'sms',
|
|
2556
|
+
'email',
|
|
2557
|
+
'export',
|
|
2558
|
+
'voice',
|
|
2559
|
+
'data_exchange',
|
|
2560
|
+
'status_poller',
|
|
2561
|
+
'chat_completion',
|
|
2562
|
+
'context_extraction'
|
|
2563
|
+
])),
|
|
2564
|
+
name: v.optional(v.string()),
|
|
2565
|
+
status: v.optional(v.picklist([
|
|
2566
|
+
'draft',
|
|
2567
|
+
'active',
|
|
2568
|
+
'inactive',
|
|
2569
|
+
'error',
|
|
2570
|
+
'marked_for_deletion'
|
|
2571
|
+
]))
|
|
2572
|
+
});
|
|
2573
|
+
/**
|
|
2574
|
+
* DatalakeRequest
|
|
2575
|
+
*
|
|
2576
|
+
* Datalake configuration. Secrets (DB passwords, credentials) are write-only — accepted on create but never returned in responses. Request
|
|
2577
|
+
*/
|
|
2578
|
+
export const vDatalakeRequestWritable = v.object({
|
|
2579
|
+
data_domain: v.picklist([
|
|
2580
|
+
'healthcare',
|
|
2581
|
+
'core_banking',
|
|
2582
|
+
'payment_risk',
|
|
2583
|
+
'accounts_receivable',
|
|
2584
|
+
'service_commerce',
|
|
2585
|
+
'trading'
|
|
2586
|
+
]),
|
|
2587
|
+
timezone: v.nullable(v.string()),
|
|
2588
|
+
regulated_data_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
2589
|
+
regulated_data_db_writer_host: v.string(),
|
|
2590
|
+
regulated_data_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
2591
|
+
regulated_data_db_writer_schema: v.string(),
|
|
2592
|
+
regulated_data_db_writer_enable_ssl: v.boolean(),
|
|
2593
|
+
unregulated_db_reader_schema: v.string(),
|
|
2594
|
+
unregulated_db_writer_enable_ssl: v.boolean(),
|
|
2595
|
+
unregulated_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
2596
|
+
regulated_data_db_writer_port: v.pipe(v.number(), v.integer()),
|
|
2597
|
+
unregulated_db_reader_pass: v.optional(v.string()),
|
|
2598
|
+
unregulated_db_reader_enable_ssl: v.boolean(),
|
|
2599
|
+
regulated_data_db_reader_enable_ssl: v.boolean(),
|
|
2600
|
+
unregulated_db_reader_host: v.string(),
|
|
2601
|
+
regulated_data_db_writer_pass: v.optional(v.string()),
|
|
2602
|
+
unregulated_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
2603
|
+
pool_size: v.nullable(v.pipe(v.number(), v.integer())),
|
|
2604
|
+
description: v.nullish(v.string()),
|
|
2605
|
+
name: v.string(),
|
|
2606
|
+
unregulated_db_reader_user: v.optional(v.string()),
|
|
2607
|
+
unregulated_db_writer_auth_method: v.picklist(['password', 'iam_role']),
|
|
2608
|
+
unregulated_db_reader_name: v.string(),
|
|
2609
|
+
regulated_data_db_writer_name: v.string(),
|
|
2610
|
+
unregulated_db_writer_host: v.string(),
|
|
2611
|
+
regulated_data_db_reader_user: v.optional(v.string()),
|
|
2612
|
+
regulated_data_db_reader_schema: v.string(),
|
|
2613
|
+
unregulated_db_writer_name: v.string(),
|
|
2614
|
+
unregulated_db_writer_schema: v.string(),
|
|
2615
|
+
regulated_data_db_reader_port: v.pipe(v.number(), v.integer()),
|
|
2616
|
+
regulated_data_db_writer_user: v.optional(v.string()),
|
|
2617
|
+
regulated_data_db_reader_pass: v.optional(v.string()),
|
|
2618
|
+
regulated_data_db_reader_name: v.string(),
|
|
2619
|
+
regulated_data_db_reader_host: v.string(),
|
|
2620
|
+
unregulated_db_writer_user: v.optional(v.string()),
|
|
2621
|
+
unregulated_db_reader_auth_method: v.picklist(['password', 'iam_role']),
|
|
2622
|
+
slug: v.optional(v.string()),
|
|
2623
|
+
unregulated_db_writer_pass: v.optional(v.string())
|
|
2624
|
+
});
|
|
2625
|
+
export const vPlatformApiPingControllerPingData = v.object({
|
|
2626
|
+
body: v.optional(v.never()),
|
|
2627
|
+
path: v.optional(v.never()),
|
|
2628
|
+
query: v.optional(v.never())
|
|
2629
|
+
});
|
|
2630
|
+
/**
|
|
2631
|
+
* API is healthy
|
|
2632
|
+
*/
|
|
2633
|
+
export const vPlatformApiPingControllerPingResponse = vPingResponse;
|
|
2634
|
+
export const vPlatformApiDatasetControllerSearchData = v.object({
|
|
2635
|
+
body: v.optional(v.never()),
|
|
2636
|
+
path: v.object({
|
|
2637
|
+
dataset: v.string()
|
|
2638
|
+
}),
|
|
2639
|
+
query: v.optional(v.object({
|
|
2640
|
+
datalake_id: v.optional(v.pipe(v.string(), v.uuid())),
|
|
2641
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2642
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2643
|
+
}))
|
|
2644
|
+
});
|
|
2645
|
+
/**
|
|
2646
|
+
* Dataset search results
|
|
2647
|
+
*/
|
|
2648
|
+
export const vPlatformApiDatasetControllerSearchResponse = vDatasetSearchResponse;
|
|
2649
|
+
export const vPlatformApiSessionControllerDeleteData = v.object({
|
|
2650
|
+
body: v.optional(v.never()),
|
|
2651
|
+
path: v.optional(v.never()),
|
|
2652
|
+
query: v.optional(v.never())
|
|
2653
|
+
});
|
|
2654
|
+
export const vPlatformApiSessionControllerCreateData = v.object({
|
|
2655
|
+
body: vSessionRequest,
|
|
2656
|
+
path: v.optional(v.never()),
|
|
2657
|
+
query: v.optional(v.never())
|
|
2658
|
+
});
|
|
2659
|
+
/**
|
|
2660
|
+
* Session created
|
|
2661
|
+
*/
|
|
2662
|
+
export const vPlatformApiSessionControllerCreateResponse = vSessionResponse;
|
|
2663
|
+
export const vPlatformApiSessionControllerVerifyData = v.object({
|
|
2664
|
+
body: v.optional(v.never()),
|
|
2665
|
+
path: v.optional(v.never()),
|
|
2666
|
+
query: v.optional(v.never())
|
|
2667
|
+
});
|
|
2668
|
+
/**
|
|
2669
|
+
* Session details
|
|
2670
|
+
*/
|
|
2671
|
+
export const vPlatformApiSessionControllerVerifyResponse = vSessionResponse;
|
|
2672
|
+
export const vPlatformApiActionStatusUpdaterControllerIndexData = v.object({
|
|
2673
|
+
body: v.optional(v.never()),
|
|
2674
|
+
path: v.object({
|
|
2675
|
+
tenant_slug: v.string()
|
|
2676
|
+
}),
|
|
2677
|
+
query: v.optional(v.object({
|
|
2678
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2679
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2680
|
+
}))
|
|
2681
|
+
});
|
|
2682
|
+
/**
|
|
2683
|
+
* Action status updater list
|
|
2684
|
+
*/
|
|
2685
|
+
export const vPlatformApiActionStatusUpdaterControllerIndexResponse = vActionStatusUpdaterListResponse;
|
|
2686
|
+
export const vPlatformApiActionStatusUpdaterControllerCreateData = v.object({
|
|
2687
|
+
body: v.optional(vActionStatusUpdaterRequestWritable),
|
|
2688
|
+
path: v.object({
|
|
2689
|
+
tenant_slug: v.string()
|
|
2690
|
+
}),
|
|
2691
|
+
query: v.optional(v.never())
|
|
2692
|
+
});
|
|
2693
|
+
/**
|
|
2694
|
+
* Action status updater created
|
|
2695
|
+
*/
|
|
2696
|
+
export const vPlatformApiActionStatusUpdaterControllerCreateResponse = vActionStatusUpdaterResponse;
|
|
2697
|
+
export const vPlatformApiActionStatusUpdaterControllerUpdateData = v.object({
|
|
2698
|
+
body: v.optional(vActionStatusUpdaterRequestWritable),
|
|
2699
|
+
path: v.object({
|
|
2700
|
+
tenant_slug: v.string(),
|
|
2701
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2702
|
+
}),
|
|
2703
|
+
query: v.optional(v.never())
|
|
2704
|
+
});
|
|
2705
|
+
/**
|
|
2706
|
+
* Action status updater updated
|
|
2707
|
+
*/
|
|
2708
|
+
export const vPlatformApiActionStatusUpdaterControllerUpdateResponse = vActionStatusUpdaterResponse;
|
|
2709
|
+
export const vPlatformApiWorkflowControllerExecuteData = v.object({
|
|
2710
|
+
body: vExecuteActionRequest,
|
|
2711
|
+
path: v.object({
|
|
2712
|
+
tenant_slug: v.string(),
|
|
2713
|
+
workflow_slug: v.string()
|
|
2714
|
+
}),
|
|
2715
|
+
query: v.optional(v.never())
|
|
2716
|
+
});
|
|
2717
|
+
/**
|
|
2718
|
+
* Execution result
|
|
2719
|
+
*/
|
|
2720
|
+
export const vPlatformApiWorkflowControllerExecuteResponse = vExecuteActionResponse;
|
|
2721
|
+
export const vPlatformApiConnectedAppControllerResolvePageData = v.object({
|
|
2722
|
+
body: vResolvePageRequest,
|
|
2723
|
+
path: v.object({
|
|
2724
|
+
tenant_slug: v.string(),
|
|
2725
|
+
slug: v.string()
|
|
2726
|
+
}),
|
|
2727
|
+
query: v.optional(v.never())
|
|
2728
|
+
});
|
|
2729
|
+
/**
|
|
2730
|
+
* Resolved page details
|
|
2731
|
+
*/
|
|
2732
|
+
export const vPlatformApiConnectedAppControllerResolvePageResponse = vResolvePageResponse;
|
|
2733
|
+
export const vPlatformApiConnectedAppControllerUpdatePageData = v.object({
|
|
2734
|
+
body: vUpdatePageRequest,
|
|
2735
|
+
path: v.object({
|
|
2736
|
+
tenant_slug: v.string(),
|
|
2737
|
+
slug: v.string()
|
|
2738
|
+
}),
|
|
2739
|
+
query: v.optional(v.never())
|
|
2740
|
+
});
|
|
2741
|
+
/**
|
|
2742
|
+
* Updated message details
|
|
2743
|
+
*/
|
|
2744
|
+
export const vPlatformApiConnectedAppControllerUpdatePageResponse = vUpdatePageResponse;
|
|
2745
|
+
export const vPlatformApiDataActivationClientControllerIngestData = v.object({
|
|
2746
|
+
body: vIngestRequest,
|
|
2747
|
+
path: v.object({
|
|
2748
|
+
tenant_slug: v.string(),
|
|
2749
|
+
slug: v.string()
|
|
2750
|
+
}),
|
|
2751
|
+
query: v.optional(v.never())
|
|
2752
|
+
});
|
|
2753
|
+
/**
|
|
2754
|
+
* Ingest response
|
|
2755
|
+
*/
|
|
2756
|
+
export const vPlatformApiDataActivationClientControllerIngestResponse = vIngestResponse;
|
|
2757
|
+
export const vPlatformApiDataActivationClientControllerIngestFileData = v.object({
|
|
2758
|
+
body: vIngestFileRequest,
|
|
2759
|
+
path: v.object({
|
|
2760
|
+
tenant_slug: v.string(),
|
|
2761
|
+
slug: v.string()
|
|
2762
|
+
}),
|
|
2763
|
+
query: v.optional(v.never())
|
|
2764
|
+
});
|
|
2765
|
+
/**
|
|
2766
|
+
* Ingest response
|
|
2767
|
+
*/
|
|
2768
|
+
export const vPlatformApiDataActivationClientControllerIngestFileResponse = vIngestResponse;
|
|
2769
|
+
export const vPlatformApiDataActivationClientControllerCreateUploadLinkData = v.object({
|
|
2770
|
+
body: vUploadLinkRequest,
|
|
2771
|
+
path: v.object({
|
|
2772
|
+
tenant_slug: v.string(),
|
|
2773
|
+
slug: v.string()
|
|
2774
|
+
}),
|
|
2775
|
+
query: v.optional(v.never())
|
|
2776
|
+
});
|
|
2777
|
+
/**
|
|
2778
|
+
* Presigned upload link
|
|
2779
|
+
*/
|
|
2780
|
+
export const vPlatformApiDataActivationClientControllerCreateUploadLinkResponse = vUploadLinkResponse;
|
|
2781
|
+
export const vPlatformApiDatalakeControllerIndexData = v.object({
|
|
2782
|
+
body: v.optional(v.never()),
|
|
2783
|
+
path: v.object({
|
|
2784
|
+
tenant_slug: v.string()
|
|
2785
|
+
}),
|
|
2786
|
+
query: v.optional(v.object({
|
|
2787
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2788
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2789
|
+
}))
|
|
2790
|
+
});
|
|
2791
|
+
/**
|
|
2792
|
+
* Datalake list
|
|
2793
|
+
*/
|
|
2794
|
+
export const vPlatformApiDatalakeControllerIndexResponse = vDatalakeListResponse;
|
|
2795
|
+
export const vPlatformApiDatalakeControllerCreateData = v.object({
|
|
2796
|
+
body: v.optional(vDatalakeRequestWritable),
|
|
2797
|
+
path: v.object({
|
|
2798
|
+
tenant_slug: v.string()
|
|
2799
|
+
}),
|
|
2800
|
+
query: v.optional(v.never())
|
|
2801
|
+
});
|
|
2802
|
+
/**
|
|
2803
|
+
* Datalake created
|
|
2804
|
+
*/
|
|
2805
|
+
export const vPlatformApiDatalakeControllerCreateResponse = vDatalakeResponse;
|
|
2806
|
+
export const vPlatformApiAiAgentControllerIndexData = v.object({
|
|
2807
|
+
body: v.optional(v.never()),
|
|
2808
|
+
path: v.object({
|
|
2809
|
+
tenant_slug: v.string(),
|
|
2810
|
+
datalake_slug: v.string()
|
|
2811
|
+
}),
|
|
2812
|
+
query: v.optional(v.object({
|
|
2813
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2814
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2815
|
+
}))
|
|
2816
|
+
});
|
|
2817
|
+
/**
|
|
2818
|
+
* AI agent list
|
|
2819
|
+
*/
|
|
2820
|
+
export const vPlatformApiAiAgentControllerIndexResponse = vAiAgentListResponse;
|
|
2821
|
+
export const vPlatformApiAiAgentControllerCreateData = v.object({
|
|
2822
|
+
body: v.optional(vAiAgentRequestWritable),
|
|
2823
|
+
path: v.object({
|
|
2824
|
+
tenant_slug: v.string(),
|
|
2825
|
+
datalake_slug: v.string()
|
|
2826
|
+
}),
|
|
2827
|
+
query: v.optional(v.never())
|
|
2828
|
+
});
|
|
2829
|
+
/**
|
|
2830
|
+
* AI agent created
|
|
2831
|
+
*/
|
|
2832
|
+
export const vPlatformApiAiAgentControllerCreateResponse = vAiAgentResponse;
|
|
2833
|
+
export const vPlatformApiAiAgentControllerDeleteData = v.object({
|
|
2834
|
+
body: v.optional(v.never()),
|
|
2835
|
+
path: v.object({
|
|
2836
|
+
tenant_slug: v.string(),
|
|
2837
|
+
datalake_slug: v.string(),
|
|
2838
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2839
|
+
}),
|
|
2840
|
+
query: v.optional(v.never())
|
|
2841
|
+
});
|
|
2842
|
+
/**
|
|
2843
|
+
* No Content
|
|
2844
|
+
*/
|
|
2845
|
+
export const vPlatformApiAiAgentControllerDeleteResponse = v.void();
|
|
2846
|
+
export const vPlatformApiAiAgentControllerShowData = v.object({
|
|
2847
|
+
body: v.optional(v.never()),
|
|
2848
|
+
path: v.object({
|
|
2849
|
+
tenant_slug: v.string(),
|
|
2850
|
+
datalake_slug: v.string(),
|
|
2851
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2852
|
+
}),
|
|
2853
|
+
query: v.optional(v.never())
|
|
2854
|
+
});
|
|
2855
|
+
/**
|
|
2856
|
+
* AI agent
|
|
2857
|
+
*/
|
|
2858
|
+
export const vPlatformApiAiAgentControllerShowResponse = vAiAgentResponse;
|
|
2859
|
+
export const vPlatformApiAiAgentControllerUpdateData = v.object({
|
|
2860
|
+
body: v.optional(vAiAgentRequestWritable),
|
|
2861
|
+
path: v.object({
|
|
2862
|
+
tenant_slug: v.string(),
|
|
2863
|
+
datalake_slug: v.string(),
|
|
2864
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2865
|
+
}),
|
|
2866
|
+
query: v.optional(v.never())
|
|
2867
|
+
});
|
|
2868
|
+
/**
|
|
2869
|
+
* AI agent updated
|
|
2870
|
+
*/
|
|
2871
|
+
export const vPlatformApiAiAgentControllerUpdateResponse = vAiAgentResponse;
|
|
2872
|
+
export const vPlatformApiConnectedAppMgmtControllerIndexData = v.object({
|
|
2873
|
+
body: v.optional(v.never()),
|
|
2874
|
+
path: v.object({
|
|
2875
|
+
tenant_slug: v.string(),
|
|
2876
|
+
datalake_slug: v.string()
|
|
2877
|
+
}),
|
|
2878
|
+
query: v.optional(v.object({
|
|
2879
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2880
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2881
|
+
}))
|
|
2882
|
+
});
|
|
2883
|
+
/**
|
|
2884
|
+
* Connected app list
|
|
2885
|
+
*/
|
|
2886
|
+
export const vPlatformApiConnectedAppMgmtControllerIndexResponse = vConnectedAppListResponse;
|
|
2887
|
+
export const vPlatformApiConnectedAppMgmtControllerCreateData = v.object({
|
|
2888
|
+
body: v.optional(vConnectedAppRequestWritable),
|
|
2889
|
+
path: v.object({
|
|
2890
|
+
tenant_slug: v.string(),
|
|
2891
|
+
datalake_slug: v.string()
|
|
2892
|
+
}),
|
|
2893
|
+
query: v.optional(v.never())
|
|
2894
|
+
});
|
|
2895
|
+
/**
|
|
2896
|
+
* Connected app created
|
|
2897
|
+
*/
|
|
2898
|
+
export const vPlatformApiConnectedAppMgmtControllerCreateResponse = vConnectedAppResponse;
|
|
2899
|
+
export const vPlatformApiConnectedAppMgmtControllerShowData = v.object({
|
|
2900
|
+
body: v.optional(v.never()),
|
|
2901
|
+
path: v.object({
|
|
2902
|
+
tenant_slug: v.string(),
|
|
2903
|
+
datalake_slug: v.string(),
|
|
2904
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2905
|
+
}),
|
|
2906
|
+
query: v.optional(v.never())
|
|
2907
|
+
});
|
|
2908
|
+
/**
|
|
2909
|
+
* Connected app
|
|
2910
|
+
*/
|
|
2911
|
+
export const vPlatformApiConnectedAppMgmtControllerShowResponse = vConnectedAppResponse;
|
|
2912
|
+
export const vPlatformApiConnectedAppMgmtControllerUpdateData = v.object({
|
|
2913
|
+
body: v.optional(vConnectedAppRequestWritable),
|
|
2914
|
+
path: v.object({
|
|
2915
|
+
tenant_slug: v.string(),
|
|
2916
|
+
datalake_slug: v.string(),
|
|
2917
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2918
|
+
}),
|
|
2919
|
+
query: v.optional(v.never())
|
|
2920
|
+
});
|
|
2921
|
+
/**
|
|
2922
|
+
* Connected app updated
|
|
2923
|
+
*/
|
|
2924
|
+
export const vPlatformApiConnectedAppMgmtControllerUpdateResponse = vConnectedAppResponse;
|
|
2925
|
+
export const vPlatformApiConnectedAppMgmtControllerSyncRoutesData = v.object({
|
|
2926
|
+
body: v.optional(v.never()),
|
|
2927
|
+
path: v.object({
|
|
2928
|
+
tenant_slug: v.string(),
|
|
2929
|
+
datalake_slug: v.string(),
|
|
2930
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2931
|
+
}),
|
|
2932
|
+
query: v.optional(v.never())
|
|
2933
|
+
});
|
|
2934
|
+
/**
|
|
2935
|
+
* Route sync enqueued
|
|
2936
|
+
*/
|
|
2937
|
+
export const vPlatformApiConnectedAppMgmtControllerSyncRoutesResponse = vSyncRoutesResponse;
|
|
2938
|
+
export const vPlatformApiDataSourceControllerIndexData = v.object({
|
|
2939
|
+
body: v.optional(v.never()),
|
|
2940
|
+
path: v.object({
|
|
2941
|
+
tenant_slug: v.string(),
|
|
2942
|
+
datalake_slug: v.string()
|
|
2943
|
+
}),
|
|
2944
|
+
query: v.optional(v.object({
|
|
2945
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2946
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2947
|
+
}))
|
|
2948
|
+
});
|
|
2949
|
+
/**
|
|
2950
|
+
* Data source list
|
|
2951
|
+
*/
|
|
2952
|
+
export const vPlatformApiDataSourceControllerIndexResponse = vDataSourceListResponse;
|
|
2953
|
+
export const vPlatformApiDataSourceControllerCreateData = v.object({
|
|
2954
|
+
body: v.optional(vDataSourceRequest),
|
|
2955
|
+
path: v.object({
|
|
2956
|
+
tenant_slug: v.string(),
|
|
2957
|
+
datalake_slug: v.string()
|
|
2958
|
+
}),
|
|
2959
|
+
query: v.optional(v.never())
|
|
2960
|
+
});
|
|
2961
|
+
/**
|
|
2962
|
+
* Data source created
|
|
2963
|
+
*/
|
|
2964
|
+
export const vPlatformApiDataSourceControllerCreateResponse = vDataSourceResponse;
|
|
2965
|
+
export const vPlatformApiDataSourceControllerUpdateData = v.object({
|
|
2966
|
+
body: v.optional(vDataSourceRequest),
|
|
2967
|
+
path: v.object({
|
|
2968
|
+
tenant_slug: v.string(),
|
|
2969
|
+
datalake_slug: v.string(),
|
|
2970
|
+
id: v.pipe(v.string(), v.uuid())
|
|
2971
|
+
}),
|
|
2972
|
+
query: v.optional(v.never())
|
|
2973
|
+
});
|
|
2974
|
+
/**
|
|
2975
|
+
* Data source updated
|
|
2976
|
+
*/
|
|
2977
|
+
export const vPlatformApiDataSourceControllerUpdateResponse = vDataSourceResponse;
|
|
2978
|
+
export const vPlatformApiGenericTableControllerIndexData = v.object({
|
|
2979
|
+
body: v.optional(v.never()),
|
|
2980
|
+
path: v.object({
|
|
2981
|
+
tenant_slug: v.string(),
|
|
2982
|
+
datalake_slug: v.string()
|
|
2983
|
+
}),
|
|
2984
|
+
query: v.optional(v.object({
|
|
2985
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
2986
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
2987
|
+
}))
|
|
2988
|
+
});
|
|
2989
|
+
/**
|
|
2990
|
+
* Generic table list
|
|
2991
|
+
*/
|
|
2992
|
+
export const vPlatformApiGenericTableControllerIndexResponse = vGenericTableListResponse;
|
|
2993
|
+
export const vPlatformApiGenericTableControllerCreateData = v.object({
|
|
2994
|
+
body: v.optional(vGenericTableRequestWritable),
|
|
2995
|
+
path: v.object({
|
|
2996
|
+
tenant_slug: v.string(),
|
|
2997
|
+
datalake_slug: v.string()
|
|
2998
|
+
}),
|
|
2999
|
+
query: v.optional(v.never())
|
|
3000
|
+
});
|
|
3001
|
+
/**
|
|
3002
|
+
* Generic table created
|
|
3003
|
+
*/
|
|
3004
|
+
export const vPlatformApiGenericTableControllerCreateResponse = vGenericTableResponse;
|
|
3005
|
+
export const vPlatformApiMdmControllerVerifyData = v.object({
|
|
3006
|
+
body: vMdmVerifyRequest,
|
|
3007
|
+
path: v.object({
|
|
3008
|
+
tenant_slug: v.string(),
|
|
3009
|
+
datalake_slug: v.string()
|
|
3010
|
+
}),
|
|
3011
|
+
query: v.optional(v.never())
|
|
3012
|
+
});
|
|
3013
|
+
/**
|
|
3014
|
+
* Verification result
|
|
3015
|
+
*/
|
|
3016
|
+
export const vPlatformApiMdmControllerVerifyResponse = vMdmVerifyResponse;
|
|
3017
|
+
export const vPlatformApiDatalakeControllerShowData = v.object({
|
|
3018
|
+
body: v.optional(v.never()),
|
|
3019
|
+
path: v.object({
|
|
3020
|
+
tenant_slug: v.string(),
|
|
3021
|
+
id: v.pipe(v.string(), v.uuid())
|
|
3022
|
+
}),
|
|
3023
|
+
query: v.optional(v.never())
|
|
3024
|
+
});
|
|
3025
|
+
/**
|
|
3026
|
+
* Datalake
|
|
3027
|
+
*/
|
|
3028
|
+
export const vPlatformApiDatalakeControllerShowResponse = vDatalakeResponse;
|
|
3029
|
+
export const vPlatformApiToolControllerIndexData = v.object({
|
|
3030
|
+
body: v.optional(v.never()),
|
|
3031
|
+
path: v.object({
|
|
3032
|
+
tenant_slug: v.string()
|
|
3033
|
+
}),
|
|
3034
|
+
query: v.optional(v.object({
|
|
3035
|
+
page: v.optional(v.pipe(v.number(), v.integer())),
|
|
3036
|
+
page_size: v.optional(v.pipe(v.number(), v.integer()))
|
|
3037
|
+
}))
|
|
3038
|
+
});
|
|
3039
|
+
/**
|
|
3040
|
+
* Tool list
|
|
3041
|
+
*/
|
|
3042
|
+
export const vPlatformApiToolControllerIndexResponse = vToolListResponse;
|
|
3043
|
+
export const vPlatformApiToolControllerCreateData = v.object({
|
|
3044
|
+
body: v.optional(vToolRequestWritable),
|
|
3045
|
+
path: v.object({
|
|
3046
|
+
tenant_slug: v.string()
|
|
3047
|
+
}),
|
|
3048
|
+
query: v.optional(v.never())
|
|
3049
|
+
});
|
|
3050
|
+
/**
|
|
3051
|
+
* Tool created
|
|
3052
|
+
*/
|
|
3053
|
+
export const vPlatformApiToolControllerCreateResponse = vToolResponse;
|
|
3054
|
+
export const vPlatformApiToolControllerDeleteData = v.object({
|
|
3055
|
+
body: v.optional(v.never()),
|
|
3056
|
+
path: v.object({
|
|
3057
|
+
tenant_slug: v.string(),
|
|
3058
|
+
id: v.pipe(v.string(), v.uuid())
|
|
3059
|
+
}),
|
|
3060
|
+
query: v.optional(v.never())
|
|
3061
|
+
});
|
|
3062
|
+
/**
|
|
3063
|
+
* No Content
|
|
3064
|
+
*/
|
|
3065
|
+
export const vPlatformApiToolControllerDeleteResponse = v.void();
|
|
3066
|
+
export const vPlatformApiToolControllerShowData = v.object({
|
|
3067
|
+
body: v.optional(v.never()),
|
|
3068
|
+
path: v.object({
|
|
3069
|
+
tenant_slug: v.string(),
|
|
3070
|
+
id: v.pipe(v.string(), v.uuid())
|
|
3071
|
+
}),
|
|
3072
|
+
query: v.optional(v.never())
|
|
3073
|
+
});
|
|
3074
|
+
/**
|
|
3075
|
+
* Tool
|
|
3076
|
+
*/
|
|
3077
|
+
export const vPlatformApiToolControllerShowResponse = vToolResponse;
|
|
3078
|
+
export const vPlatformApiToolControllerUpdateData = v.object({
|
|
3079
|
+
body: v.optional(vToolRequestWritable),
|
|
3080
|
+
path: v.object({
|
|
3081
|
+
tenant_slug: v.string(),
|
|
3082
|
+
id: v.pipe(v.string(), v.uuid())
|
|
3083
|
+
}),
|
|
3084
|
+
query: v.optional(v.never())
|
|
3085
|
+
});
|
|
3086
|
+
/**
|
|
3087
|
+
* Tool updated
|
|
3088
|
+
*/
|
|
3089
|
+
export const vPlatformApiToolControllerUpdateResponse = vToolResponse;
|
|
3090
|
+
//# sourceMappingURL=valibot.gen.js.map
|