@alvera-ai/platform-sdk 0.7.3 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -19
- package/package.json +3 -4
- package/src/cli/auth.ts +174 -0
- package/src/cli/env.ts +49 -0
- package/src/cli/helpers.ts +128 -0
- package/src/cli/init.ts +123 -0
- package/src/cli/raw.ts +65 -0
- package/src/cli/resources.ts +789 -0
- package/src/cli/workflows.ts +246 -0
- package/src/cli.ts +15 -1347
- package/src/client.ts +30 -8
- package/src/config.ts +4 -0
- package/src/generated/sdk.gen.ts +932 -932
- package/src/generated/types.gen.ts +7220 -7220
- package/src/generated/valibot.gen.ts +4349 -4341
- package/src/index.ts +1 -0
package/src/generated/sdk.gen.ts
CHANGED
|
@@ -22,29 +22,37 @@ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* Given a connected app slug and a Puid short URL token, resolves the token to
|
|
28
|
-
* the pre-stored route path and MDM subject ID. The Cloudflare app calls this
|
|
29
|
-
* endpoint when a customer clicks a short URL, forwarding the original client
|
|
30
|
-
* headers (user-agent, IP, country) in the request body.
|
|
31
|
-
*
|
|
32
|
-
* When the page token is linked to a message (via workflow action execution),
|
|
33
|
-
* the regulated message details (raw body, channel, status) are included in
|
|
34
|
-
* the response.
|
|
25
|
+
* List tools
|
|
35
26
|
*
|
|
36
|
-
*
|
|
27
|
+
* Returns a paginated list of tools for the authenticated tenant.
|
|
28
|
+
*/
|
|
29
|
+
export const platformApiToolControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiToolControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiToolControllerIndexResponses, PlatformApiToolControllerIndexErrors, ThrowOnError>({
|
|
30
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
31
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
32
|
+
body: v.optional(v.never()),
|
|
33
|
+
path: vPlatformApiToolControllerIndexPath,
|
|
34
|
+
query: v.optional(vPlatformApiToolControllerIndexQuery)
|
|
35
|
+
}), data),
|
|
36
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiToolControllerIndexResponse, data),
|
|
37
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
38
|
+
url: '/api/v1/tenants/{tenant_slug}/tools',
|
|
39
|
+
...options
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create a tool
|
|
37
44
|
*
|
|
45
|
+
* Creates a new tool for the authenticated tenant.
|
|
38
46
|
*/
|
|
39
|
-
export const
|
|
47
|
+
export const platformApiToolControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiToolControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiToolControllerCreateResponses, PlatformApiToolControllerCreateErrors, ThrowOnError>({
|
|
40
48
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
41
|
-
body:
|
|
42
|
-
path:
|
|
49
|
+
body: v.optional(vPlatformApiToolControllerCreateBody),
|
|
50
|
+
path: vPlatformApiToolControllerCreatePath,
|
|
43
51
|
query: v.optional(v.never())
|
|
44
52
|
}), data),
|
|
45
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
53
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiToolControllerCreateResponse, data),
|
|
46
54
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
47
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
55
|
+
url: '/api/v1/tenants/{tenant_slug}/tools',
|
|
48
56
|
...options,
|
|
49
57
|
headers: {
|
|
50
58
|
'Content-Type': 'application/json',
|
|
@@ -53,60 +61,53 @@ export const platformApiConnectedAppControllerResolvePage = <ThrowOnError extend
|
|
|
53
61
|
});
|
|
54
62
|
|
|
55
63
|
/**
|
|
56
|
-
*
|
|
64
|
+
* Delete a data activation client
|
|
57
65
|
*
|
|
58
|
-
*
|
|
66
|
+
* Deletes a DAC. Returns 422 if the DAC is a platform default (is_default=true). Returns 409 if referenced by other resources.
|
|
59
67
|
*/
|
|
60
|
-
export const
|
|
61
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
68
|
+
export const platformApiDataActivationClientControllerDelete = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerDeleteData, ThrowOnError>) => (options.client ?? client).delete<PlatformApiDataActivationClientControllerDeleteResponses, PlatformApiDataActivationClientControllerDeleteErrors, ThrowOnError>({
|
|
62
69
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
63
|
-
body:
|
|
64
|
-
path:
|
|
65
|
-
query: v.optional(
|
|
70
|
+
body: v.optional(v.never()),
|
|
71
|
+
path: vPlatformApiDataActivationClientControllerDeletePath,
|
|
72
|
+
query: v.optional(v.never())
|
|
66
73
|
}), data),
|
|
67
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
74
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerDeleteResponse, data),
|
|
68
75
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
69
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
70
|
-
...options
|
|
71
|
-
headers: {
|
|
72
|
-
'Content-Type': 'application/json',
|
|
73
|
-
...options.headers
|
|
74
|
-
}
|
|
76
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}',
|
|
77
|
+
...options
|
|
75
78
|
});
|
|
76
79
|
|
|
77
80
|
/**
|
|
78
|
-
*
|
|
81
|
+
* Get a data activation client
|
|
79
82
|
*
|
|
80
|
-
* Returns a
|
|
83
|
+
* Returns a single DAC by datalake-scoped slug.
|
|
81
84
|
*/
|
|
82
|
-
export const
|
|
83
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
85
|
+
export const platformApiDataActivationClientControllerShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDataActivationClientControllerShowResponses, PlatformApiDataActivationClientControllerShowErrors, ThrowOnError>({
|
|
84
86
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
85
87
|
body: v.optional(v.never()),
|
|
86
|
-
path:
|
|
87
|
-
query: v.optional(
|
|
88
|
+
path: vPlatformApiDataActivationClientControllerShowPath,
|
|
89
|
+
query: v.optional(v.never())
|
|
88
90
|
}), data),
|
|
89
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
91
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerShowResponse, data),
|
|
90
92
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
91
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
93
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}',
|
|
92
94
|
...options
|
|
93
95
|
});
|
|
94
96
|
|
|
95
97
|
/**
|
|
96
|
-
*
|
|
98
|
+
* Replace a data activation client
|
|
97
99
|
*
|
|
98
|
-
*
|
|
100
|
+
* Replaces a DAC with the full resource body. PUT semantics — all required fields must be present. `slug` is immutable.
|
|
99
101
|
*/
|
|
100
|
-
export const
|
|
101
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
102
|
+
export const platformApiDataActivationClientControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiDataActivationClientControllerUpdateResponses, PlatformApiDataActivationClientControllerUpdateErrors, ThrowOnError>({
|
|
102
103
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
103
|
-
body: v.optional(
|
|
104
|
-
path:
|
|
105
|
-
query: v.optional(
|
|
104
|
+
body: v.optional(vPlatformApiDataActivationClientControllerUpdateBody),
|
|
105
|
+
path: vPlatformApiDataActivationClientControllerUpdatePath,
|
|
106
|
+
query: v.optional(v.never())
|
|
106
107
|
}), data),
|
|
107
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
108
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerUpdateResponse, data),
|
|
108
109
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
109
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
110
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}',
|
|
110
111
|
...options,
|
|
111
112
|
headers: {
|
|
112
113
|
'Content-Type': 'application/json',
|
|
@@ -115,118 +116,97 @@ export const platformApiActionStatusUpdaterControllerCreate = <ThrowOnError exte
|
|
|
115
116
|
});
|
|
116
117
|
|
|
117
118
|
/**
|
|
118
|
-
*
|
|
119
|
+
* Enqueue datalake migrations
|
|
120
|
+
*
|
|
121
|
+
* Enqueues a `DatalakeMigrationWorker` Oban job that brings the datalake's
|
|
122
|
+
* per-tenant database to the current schema version. Required after
|
|
123
|
+
* `POST /datalakes`, which only persists the metadata row — it does NOT
|
|
124
|
+
* run migrations against the per-tenant DB. Without this step, every
|
|
125
|
+
* downstream resource that touches per-datalake tables
|
|
126
|
+
* (`data_activation_logs`, MDM tables, dataset tables) will fail with
|
|
127
|
+
* `relation … does not exist`.
|
|
128
|
+
*
|
|
129
|
+
* Asynchronous: returns 202 Accepted as soon as the job is enqueued.
|
|
130
|
+
* Callers poll `GET /datalakes/:id` and watch for `status: :ready`.
|
|
131
|
+
* Idempotent at the job level — re-enqueueing on a migrated datalake
|
|
132
|
+
* is a no-op once the worker completes.
|
|
133
|
+
*
|
|
134
|
+
* The LiveView "Migrate Datalake" button calls the same migrator
|
|
135
|
+
* synchronously inside the LiveView process.
|
|
136
|
+
*
|
|
137
|
+
* Requires a tenant-scoped Bearer with membership role `admin`.
|
|
119
138
|
*
|
|
120
|
-
* Returns a paginated list of batch-level workflow run logs.
|
|
121
139
|
*/
|
|
122
|
-
export const
|
|
123
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
140
|
+
export const platformApiDatalakeControllerMigrate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerMigrateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDatalakeControllerMigrateResponses, PlatformApiDatalakeControllerMigrateErrors, ThrowOnError>({
|
|
124
141
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
125
142
|
body: v.optional(v.never()),
|
|
126
|
-
path:
|
|
127
|
-
query: v.optional(
|
|
143
|
+
path: vPlatformApiDatalakeControllerMigratePath,
|
|
144
|
+
query: v.optional(v.never())
|
|
128
145
|
}), data),
|
|
129
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
146
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerMigrateResponse, data),
|
|
130
147
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
131
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
148
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/migrate',
|
|
132
149
|
...options
|
|
133
150
|
});
|
|
134
151
|
|
|
135
152
|
/**
|
|
136
|
-
*
|
|
153
|
+
* Verify current session
|
|
137
154
|
*
|
|
138
|
-
*
|
|
139
|
-
*/
|
|
140
|
-
export const platformApiDatasetControllerCreateUserSearch = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatasetControllerCreateUserSearchData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDatasetControllerCreateUserSearchResponses, PlatformApiDatasetControllerCreateUserSearchErrors, ThrowOnError>({
|
|
141
|
-
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
142
|
-
body: v.optional(vPlatformApiDatasetControllerCreateUserSearchBody),
|
|
143
|
-
path: vPlatformApiDatasetControllerCreateUserSearchPath,
|
|
144
|
-
query: v.optional(vPlatformApiDatasetControllerCreateUserSearchQuery)
|
|
145
|
-
}), data),
|
|
146
|
-
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatasetControllerCreateUserSearchResponse, data),
|
|
147
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
148
|
-
url: '/api/v1/datasets/{dataset}/user-searches',
|
|
149
|
-
...options,
|
|
150
|
-
headers: {
|
|
151
|
-
'Content-Type': 'application/json',
|
|
152
|
-
...options.headers
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Page results from a UserSearch — outer SQL chunk + inner resource Flop
|
|
155
|
+
* Returns the current session's tenant, role, and identity information.
|
|
158
156
|
*
|
|
159
|
-
*
|
|
157
|
+
* Works with both authentication methods:
|
|
158
|
+
* - `X-API-Key` header (M2M)
|
|
159
|
+
* - `Authorization: Bearer <session_token>` (human sessions)
|
|
160
160
|
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
* `search_results`. The cap is dictated by Postgres' `WHERE id IN (^ids)`
|
|
164
|
-
* plan — past ~1k parameters the planner regresses.
|
|
165
|
-
* * **Inner** — `inner_search[page]`, `inner_search[page_size]` (defaults
|
|
166
|
-
* `1` / `20`), `inner_search[order_direction]` (sort on the schema's
|
|
167
|
-
* `:global_search` compound), `inner_search[global_search]` (single
|
|
168
|
-
* ILIKE-OR text-search knob).
|
|
161
|
+
* Use this as a "who am I" endpoint to confirm credentials are valid and
|
|
162
|
+
* inspect the resolved tenant, role, and identity.
|
|
169
163
|
*
|
|
170
|
-
*
|
|
171
|
-
* that only drives the inner page sees `meta.sql.has_next_page=true` when
|
|
172
|
-
* the SQL search isn't exhausted; advancing `outer_pagination[page]`
|
|
173
|
-
* fetches the next chunk.
|
|
164
|
+
* **Requires authentication** (X-API-Key or Bearer token).
|
|
174
165
|
*
|
|
175
166
|
*/
|
|
176
|
-
export const
|
|
167
|
+
export const platformApiSessionControllerVerify = <ThrowOnError extends boolean = false>(options?: Options<PlatformApiSessionControllerVerifyData, ThrowOnError>) => (options?.client ?? client).get<PlatformApiSessionControllerVerifyResponses, PlatformApiSessionControllerVerifyErrors, ThrowOnError>({
|
|
177
168
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
178
169
|
body: v.optional(v.never()),
|
|
179
|
-
path:
|
|
180
|
-
query: v.optional(
|
|
170
|
+
path: v.optional(v.never()),
|
|
171
|
+
query: v.optional(v.never())
|
|
181
172
|
}), data),
|
|
182
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
183
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
184
|
-
url: '/api/v1/
|
|
173
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiSessionControllerVerifyResponse, data),
|
|
174
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],
|
|
175
|
+
url: '/api/v1/sessions/verify',
|
|
185
176
|
...options
|
|
186
177
|
});
|
|
187
178
|
|
|
188
179
|
/**
|
|
189
|
-
*
|
|
180
|
+
* Download execution context
|
|
190
181
|
*
|
|
191
|
-
* Returns a
|
|
182
|
+
* Returns a presigned URL for downloading the execution context JSON from R2.
|
|
192
183
|
*/
|
|
193
|
-
export const
|
|
194
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
184
|
+
export const platformApiAgenticWorkflowOperationsControllerWorkflowLogDownload = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadResponses, PlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadErrors, ThrowOnError>({
|
|
195
185
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
196
186
|
body: v.optional(v.never()),
|
|
197
|
-
path:
|
|
198
|
-
query: v.optional(
|
|
187
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadPath,
|
|
188
|
+
query: v.optional(v.never())
|
|
199
189
|
}), data),
|
|
200
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
190
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogDownloadResponse, data),
|
|
201
191
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
202
|
-
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/workflow-logs',
|
|
192
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/workflow-logs/{id}/download',
|
|
203
193
|
...options
|
|
204
194
|
});
|
|
205
195
|
|
|
206
196
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* Creates a `tenant_admin`-issued invitation. Mirrors the LiveView flow at
|
|
210
|
-
* `/app/team` → "Invite new member". Wraps `Tenants.send_tenant_invitation/3`
|
|
211
|
-
* verbatim, including the email send.
|
|
212
|
-
*
|
|
213
|
-
* The `role` enum is **membership-level** (`member`, `researcher`, `admin`),
|
|
214
|
-
* NOT the platform-wide `User.role` enum — privilege-escalation safe by
|
|
215
|
-
* construction.
|
|
216
|
-
*
|
|
217
|
-
* Requires a tenant-scoped Bearer with membership role `:admin`
|
|
218
|
-
* (`current_role.name == "tenant_admin"`).
|
|
197
|
+
* Create datalake download link
|
|
219
198
|
*
|
|
199
|
+
* Returns a presigned GET URL for an object stored in one of the datalake's cloud storage buckets (regulated or unregulated). Typical use: read a `DACRawLogFile.object_key` (`s3://bucket/key`) off a data-activation log row, split it into `bucket` and `key`, then POST here to obtain a short-lived download URL.
|
|
220
200
|
*/
|
|
221
|
-
export const
|
|
201
|
+
export const platformApiDatalakeControllerCreateDownloadLink = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerCreateDownloadLinkData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDatalakeControllerCreateDownloadLinkResponses, PlatformApiDatalakeControllerCreateDownloadLinkErrors, ThrowOnError>({
|
|
222
202
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
223
|
-
body:
|
|
224
|
-
path:
|
|
203
|
+
body: vPlatformApiDatalakeControllerCreateDownloadLinkBody,
|
|
204
|
+
path: vPlatformApiDatalakeControllerCreateDownloadLinkPath,
|
|
225
205
|
query: v.optional(v.never())
|
|
226
206
|
}), data),
|
|
227
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
228
|
-
security: [{
|
|
229
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
207
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerCreateDownloadLinkResponse, data),
|
|
208
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
209
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link',
|
|
230
210
|
...options,
|
|
231
211
|
headers: {
|
|
232
212
|
'Content-Type': 'application/json',
|
|
@@ -235,36 +215,37 @@ export const platformApiInvitationControllerCreate = <ThrowOnError extends boole
|
|
|
235
215
|
});
|
|
236
216
|
|
|
237
217
|
/**
|
|
238
|
-
* Get a
|
|
218
|
+
* Get a datalake
|
|
239
219
|
*
|
|
240
|
-
* Returns a single
|
|
220
|
+
* Returns a single datalake by ID (non-sensitive metadata only).
|
|
241
221
|
*/
|
|
242
|
-
export const
|
|
222
|
+
export const platformApiDatalakeControllerShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDatalakeControllerShowResponses, PlatformApiDatalakeControllerShowErrors, ThrowOnError>({
|
|
223
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
243
224
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
244
225
|
body: v.optional(v.never()),
|
|
245
|
-
path:
|
|
246
|
-
query: v.optional(
|
|
226
|
+
path: vPlatformApiDatalakeControllerShowPath,
|
|
227
|
+
query: v.optional(vPlatformApiDatalakeControllerShowQuery)
|
|
247
228
|
}), data),
|
|
248
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
229
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerShowResponse, data),
|
|
249
230
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
250
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{
|
|
231
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{id}',
|
|
251
232
|
...options
|
|
252
233
|
});
|
|
253
234
|
|
|
254
235
|
/**
|
|
255
|
-
*
|
|
236
|
+
* Test invoke a tool
|
|
256
237
|
*
|
|
257
|
-
*
|
|
238
|
+
* Manually invokes a tool with caller-supplied parameters — the API equivalent of the 'Try It' panel in the tool form. Records a `ManualToolInvocation` for audit and returns the provider response (or error). Does not access tenant datasets, so no capability ceiling check is applied.
|
|
258
239
|
*/
|
|
259
|
-
export const
|
|
240
|
+
export const platformApiToolControllerTestInvocation = <ThrowOnError extends boolean = false>(options: Options<PlatformApiToolControllerTestInvocationData, ThrowOnError>) => (options.client ?? client).post<PlatformApiToolControllerTestInvocationResponses, PlatformApiToolControllerTestInvocationErrors, ThrowOnError>({
|
|
260
241
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
261
|
-
body: v.optional(
|
|
262
|
-
path:
|
|
242
|
+
body: v.optional(vPlatformApiToolControllerTestInvocationBody),
|
|
243
|
+
path: vPlatformApiToolControllerTestInvocationPath,
|
|
263
244
|
query: v.optional(v.never())
|
|
264
245
|
}), data),
|
|
265
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
246
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiToolControllerTestInvocationResponse, data),
|
|
266
247
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
267
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
248
|
+
url: '/api/v1/tenants/{tenant_slug}/tools/{id}/test-invocation',
|
|
268
249
|
...options,
|
|
269
250
|
headers: {
|
|
270
251
|
'Content-Type': 'application/json',
|
|
@@ -273,60 +254,72 @@ export const platformApiConnectedAppMgmtControllerUpdate = <ThrowOnError extends
|
|
|
273
254
|
});
|
|
274
255
|
|
|
275
256
|
/**
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
* Verify a subject's identity against their master record using fuzzy matching.
|
|
257
|
+
* Get schema metadata for a specific dataset type
|
|
279
258
|
*
|
|
280
|
-
*
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
259
|
+
* Returns a markdown document describing the fields available on a dataset type. For standard datasets (patient, appointment, etc.) returns the schema moduledoc. For generic tables, pass the generic_table_id query parameter.
|
|
260
|
+
*/
|
|
261
|
+
export const platformApiDatasetControllerDatasetMetadata = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatasetControllerDatasetMetadataData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDatasetControllerDatasetMetadataResponses, PlatformApiDatasetControllerDatasetMetadataErrors, ThrowOnError>({
|
|
262
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
263
|
+
body: v.optional(v.never()),
|
|
264
|
+
path: vPlatformApiDatasetControllerDatasetMetadataPath,
|
|
265
|
+
query: v.optional(vPlatformApiDatasetControllerDatasetMetadataQuery)
|
|
266
|
+
}), data),
|
|
267
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatasetControllerDatasetMetadataResponse, data),
|
|
268
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
269
|
+
url: '/api/v1/datasets/{dataset_type}/metadata',
|
|
270
|
+
...options
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* List accessible tenants
|
|
285
275
|
*
|
|
286
|
-
*
|
|
276
|
+
* Returns a paginated list of tenants accessible to the authenticated identity.
|
|
287
277
|
*
|
|
288
|
-
* **
|
|
278
|
+
* - **Bearer token**: returns all tenants the user has membership in.
|
|
279
|
+
* - **X-API-Key**: returns the single tenant the API key is scoped to.
|
|
289
280
|
*
|
|
290
281
|
*/
|
|
291
|
-
export const
|
|
282
|
+
export const platformApiTenantControllerIndex = <ThrowOnError extends boolean = false>(options?: Options<PlatformApiTenantControllerIndexData, ThrowOnError>) => (options?.client ?? client).get<PlatformApiTenantControllerIndexResponses, PlatformApiTenantControllerIndexErrors, ThrowOnError>({
|
|
283
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
292
284
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
293
|
-
body:
|
|
294
|
-
path:
|
|
295
|
-
query: v.optional(
|
|
285
|
+
body: v.optional(v.never()),
|
|
286
|
+
path: v.optional(v.never()),
|
|
287
|
+
query: v.optional(vPlatformApiTenantControllerIndexQuery)
|
|
296
288
|
}), data),
|
|
297
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
298
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
299
|
-
url: '/api/v1/tenants
|
|
300
|
-
...options
|
|
301
|
-
headers: {
|
|
302
|
-
'Content-Type': 'application/json',
|
|
303
|
-
...options.headers
|
|
304
|
-
}
|
|
289
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiTenantControllerIndexResponse, data),
|
|
290
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],
|
|
291
|
+
url: '/api/v1/tenants',
|
|
292
|
+
...options
|
|
305
293
|
});
|
|
306
294
|
|
|
307
295
|
/**
|
|
308
|
-
*
|
|
296
|
+
* Create a tenant
|
|
309
297
|
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
298
|
+
* Creates a new tenant and an `:admin` membership for the authenticated user.
|
|
299
|
+
* Wraps `Platform.Tenants.create_tenant/3` verbatim — same primitive that
|
|
300
|
+
* backs the `/app/tenants/new` LiveView.
|
|
313
301
|
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
302
|
+
* On success returns a regular `SessionResponse` carrying a freshly-minted
|
|
303
|
+
* **tenant-scoped Bearer** (`session_token`), the new tenant, and the
|
|
304
|
+
* membership role. Callers swap their tenant-less Bearer for this token
|
|
305
|
+
* and proceed with tenant-scoped work — no second sign-in round-trip.
|
|
318
306
|
*
|
|
319
|
-
*
|
|
307
|
+
* The user must be confirmed (`confirmed_at IS NOT NULL`); unconfirmed
|
|
308
|
+
* callers receive 403. Duplicate tenant names (slug collision) return 422.
|
|
309
|
+
*
|
|
310
|
+
* Requires `Authorization: Bearer <token>` (X-API-Key cannot create tenants —
|
|
311
|
+
* it carries no platform-user identity to bind the membership to).
|
|
320
312
|
*
|
|
321
313
|
*/
|
|
322
|
-
export const
|
|
314
|
+
export const platformApiTenantControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiTenantControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiTenantControllerCreateResponses, PlatformApiTenantControllerCreateErrors, ThrowOnError>({
|
|
323
315
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
324
|
-
body:
|
|
316
|
+
body: vPlatformApiTenantControllerCreateBody,
|
|
325
317
|
path: v.optional(v.never()),
|
|
326
318
|
query: v.optional(v.never())
|
|
327
319
|
}), data),
|
|
328
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
329
|
-
|
|
320
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiTenantControllerCreateResponse, data),
|
|
321
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],
|
|
322
|
+
url: '/api/v1/tenants',
|
|
330
323
|
...options,
|
|
331
324
|
headers: {
|
|
332
325
|
'Content-Type': 'application/json',
|
|
@@ -335,37 +328,37 @@ export const platformApiAuthControllerSignUp = <ThrowOnError extends boolean = f
|
|
|
335
328
|
});
|
|
336
329
|
|
|
337
330
|
/**
|
|
338
|
-
* List
|
|
331
|
+
* List generic tables
|
|
339
332
|
*
|
|
340
|
-
* Returns a paginated list of
|
|
333
|
+
* Returns a paginated list of generic tables for the datalake (custom tables + system tables for the data domain).
|
|
341
334
|
*/
|
|
342
|
-
export const
|
|
335
|
+
export const platformApiGenericTableControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiGenericTableControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiGenericTableControllerIndexResponses, PlatformApiGenericTableControllerIndexErrors, ThrowOnError>({
|
|
343
336
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
344
337
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
345
338
|
body: v.optional(v.never()),
|
|
346
|
-
path:
|
|
347
|
-
query: v.optional(
|
|
339
|
+
path: vPlatformApiGenericTableControllerIndexPath,
|
|
340
|
+
query: v.optional(vPlatformApiGenericTableControllerIndexQuery)
|
|
348
341
|
}), data),
|
|
349
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
342
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiGenericTableControllerIndexResponse, data),
|
|
350
343
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
351
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
344
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/generic-tables',
|
|
352
345
|
...options
|
|
353
346
|
});
|
|
354
347
|
|
|
355
348
|
/**
|
|
356
|
-
* Create a
|
|
349
|
+
* Create a generic table
|
|
357
350
|
*
|
|
358
|
-
* Creates a new
|
|
351
|
+
* Creates a new custom generic table within the datalake.
|
|
359
352
|
*/
|
|
360
|
-
export const
|
|
353
|
+
export const platformApiGenericTableControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiGenericTableControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiGenericTableControllerCreateResponses, PlatformApiGenericTableControllerCreateErrors, ThrowOnError>({
|
|
361
354
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
362
|
-
body: v.optional(
|
|
363
|
-
path:
|
|
355
|
+
body: v.optional(vPlatformApiGenericTableControllerCreateBody),
|
|
356
|
+
path: vPlatformApiGenericTableControllerCreatePath,
|
|
364
357
|
query: v.optional(v.never())
|
|
365
358
|
}), data),
|
|
366
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
359
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiGenericTableControllerCreateResponse, data),
|
|
367
360
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
368
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
361
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/generic-tables',
|
|
369
362
|
...options,
|
|
370
363
|
headers: {
|
|
371
364
|
'Content-Type': 'application/json',
|
|
@@ -374,109 +367,146 @@ export const platformApiDataActivationClientControllerCreate = <ThrowOnError ext
|
|
|
374
367
|
});
|
|
375
368
|
|
|
376
369
|
/**
|
|
377
|
-
*
|
|
370
|
+
* List the authenticated user's pending invitations
|
|
371
|
+
*
|
|
372
|
+
* Returns invitations addressed to the authenticated user that have not
|
|
373
|
+
* yet been accepted. Mirrors the LiveView at `/app/users/tenant-invitations`
|
|
374
|
+
* that recipients see after sign-in. Wraps `Tenants.list_invitations_by_user/1`
|
|
375
|
+
* verbatim — always filtered to the current user, never accepts a query
|
|
376
|
+
* parameter that could leak another user's invitations.
|
|
377
|
+
*
|
|
378
|
+
* Requires any Bearer (tenant-less is fine — recipients typically don't
|
|
379
|
+
* have tenant scope yet at this point in the bootstrap flow).
|
|
378
380
|
*
|
|
379
|
-
* Enqueues a background job to fetch routes from the connected app's `/.well-known/routes.json` endpoint and update the stored routes.
|
|
380
381
|
*/
|
|
381
|
-
export const
|
|
382
|
+
export const platformApiInvitationControllerIndex = <ThrowOnError extends boolean = false>(options?: Options<PlatformApiInvitationControllerIndexData, ThrowOnError>) => (options?.client ?? client).get<PlatformApiInvitationControllerIndexResponses, PlatformApiInvitationControllerIndexErrors, ThrowOnError>({
|
|
382
383
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
383
384
|
body: v.optional(v.never()),
|
|
384
|
-
path:
|
|
385
|
+
path: v.optional(v.never()),
|
|
385
386
|
query: v.optional(v.never())
|
|
386
387
|
}), data),
|
|
387
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
388
|
-
security: [{
|
|
389
|
-
url: '/api/v1/
|
|
388
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInvitationControllerIndexResponse, data),
|
|
389
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
390
|
+
url: '/api/v1/invitations',
|
|
390
391
|
...options
|
|
391
392
|
});
|
|
392
393
|
|
|
393
394
|
/**
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
* Public health check endpoint that returns:
|
|
397
|
-
* - Application version
|
|
398
|
-
* - Database connectivity status (SELECT 1 query)
|
|
399
|
-
* - Current timestamp
|
|
400
|
-
*
|
|
401
|
-
* **No authentication required.**
|
|
395
|
+
* List interoperability contracts
|
|
402
396
|
*
|
|
397
|
+
* Returns a paginated list of contracts scoped to the datalake.
|
|
403
398
|
*/
|
|
404
|
-
export const
|
|
399
|
+
export const platformApiInteroperabilityContractControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiInteroperabilityContractControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiInteroperabilityContractControllerIndexResponses, PlatformApiInteroperabilityContractControllerIndexErrors, ThrowOnError>({
|
|
400
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
405
401
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
406
402
|
body: v.optional(v.never()),
|
|
407
|
-
path:
|
|
408
|
-
query: v.optional(
|
|
403
|
+
path: vPlatformApiInteroperabilityContractControllerIndexPath,
|
|
404
|
+
query: v.optional(vPlatformApiInteroperabilityContractControllerIndexQuery)
|
|
409
405
|
}), data),
|
|
410
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
411
|
-
|
|
406
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInteroperabilityContractControllerIndexResponse, data),
|
|
407
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
408
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/interoperability-contracts',
|
|
412
409
|
...options
|
|
413
410
|
});
|
|
414
411
|
|
|
415
412
|
/**
|
|
416
|
-
*
|
|
413
|
+
* Create an interoperability contract
|
|
417
414
|
*
|
|
418
|
-
*
|
|
415
|
+
* Creates a new contract. `slug` is auto-generated from `name` on insert.
|
|
419
416
|
*/
|
|
420
|
-
export const
|
|
417
|
+
export const platformApiInteroperabilityContractControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiInteroperabilityContractControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiInteroperabilityContractControllerCreateResponses, PlatformApiInteroperabilityContractControllerCreateErrors, ThrowOnError>({
|
|
418
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
419
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
420
|
+
body: v.optional(vPlatformApiInteroperabilityContractControllerCreateBody),
|
|
421
|
+
path: vPlatformApiInteroperabilityContractControllerCreatePath,
|
|
422
|
+
query: v.optional(vPlatformApiInteroperabilityContractControllerCreateQuery)
|
|
423
|
+
}), data),
|
|
424
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInteroperabilityContractControllerCreateResponse, data),
|
|
425
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
426
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/interoperability-contracts',
|
|
427
|
+
...options,
|
|
428
|
+
headers: {
|
|
429
|
+
'Content-Type': 'application/json',
|
|
430
|
+
...options.headers
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Get contract field metadata
|
|
436
|
+
*
|
|
437
|
+
* Returns a markdown document describing the fields of the contract's target resource type. Combines `@moduledoc` (resource description) and `@typedoc` (field definitions) from the schema.
|
|
438
|
+
*/
|
|
439
|
+
export const platformApiInteroperabilityContractControllerMetadata = <ThrowOnError extends boolean = false>(options: Options<PlatformApiInteroperabilityContractControllerMetadataData, ThrowOnError>) => (options.client ?? client).get<PlatformApiInteroperabilityContractControllerMetadataResponses, PlatformApiInteroperabilityContractControllerMetadataErrors, ThrowOnError>({
|
|
440
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
421
441
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
422
442
|
body: v.optional(v.never()),
|
|
423
|
-
path:
|
|
424
|
-
query: v.optional(
|
|
443
|
+
path: vPlatformApiInteroperabilityContractControllerMetadataPath,
|
|
444
|
+
query: v.optional(vPlatformApiInteroperabilityContractControllerMetadataQuery)
|
|
425
445
|
}), data),
|
|
426
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
446
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInteroperabilityContractControllerMetadataResponse, data),
|
|
427
447
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
428
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
448
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/interoperability-contracts/{slug}/metadata',
|
|
429
449
|
...options
|
|
430
450
|
});
|
|
431
451
|
|
|
432
452
|
/**
|
|
433
|
-
*
|
|
453
|
+
* Get a batch run log
|
|
434
454
|
*
|
|
435
|
-
*
|
|
455
|
+
* Returns a single batch-level workflow run log with merged artifacts.
|
|
436
456
|
*/
|
|
437
|
-
export const
|
|
457
|
+
export const platformApiAgenticWorkflowOperationsControllerBatchLogShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerBatchLogShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowOperationsControllerBatchLogShowResponses, PlatformApiAgenticWorkflowOperationsControllerBatchLogShowErrors, ThrowOnError>({
|
|
438
458
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
439
459
|
body: v.optional(v.never()),
|
|
440
|
-
path:
|
|
460
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerBatchLogShowPath,
|
|
441
461
|
query: v.optional(v.never())
|
|
442
462
|
}), data),
|
|
443
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
463
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerBatchLogShowResponse, data),
|
|
444
464
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
445
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
465
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/batch-logs/{id}',
|
|
446
466
|
...options
|
|
447
467
|
});
|
|
448
468
|
|
|
449
469
|
/**
|
|
450
|
-
*
|
|
470
|
+
* Accept a tenant invitation
|
|
471
|
+
*
|
|
472
|
+
* Accepts a pending invitation addressed to the authenticated user, creating
|
|
473
|
+
* a `Membership` and deleting the invitation. Mirrors the LiveView flow at
|
|
474
|
+
* `/app/users/tenant-invitations` → "Accept" button. Wraps
|
|
475
|
+
* `Tenants.accept_invitation!/2` verbatim.
|
|
476
|
+
*
|
|
477
|
+
* The function-level guard `get_invitation_by_user!/2` ensures the invitation
|
|
478
|
+
* is addressed to the caller — cross-user acceptance returns 404.
|
|
479
|
+
*
|
|
480
|
+
* Requires any Bearer (the recipient often has only a tenant-less Bearer at
|
|
481
|
+
* this point — they just signed up and haven't joined a tenant yet).
|
|
451
482
|
*
|
|
452
|
-
* Returns a single tool by ID.
|
|
453
483
|
*/
|
|
454
|
-
export const
|
|
484
|
+
export const platformApiInvitationControllerAccept = <ThrowOnError extends boolean = false>(options: Options<PlatformApiInvitationControllerAcceptData, ThrowOnError>) => (options.client ?? client).post<PlatformApiInvitationControllerAcceptResponses, PlatformApiInvitationControllerAcceptErrors, ThrowOnError>({
|
|
455
485
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
456
486
|
body: v.optional(v.never()),
|
|
457
|
-
path:
|
|
487
|
+
path: vPlatformApiInvitationControllerAcceptPath,
|
|
458
488
|
query: v.optional(v.never())
|
|
459
489
|
}), data),
|
|
460
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
461
|
-
security: [{
|
|
462
|
-
url: '/api/v1/
|
|
490
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInvitationControllerAcceptResponse, data),
|
|
491
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
492
|
+
url: '/api/v1/invitations/{id}/accept',
|
|
463
493
|
...options
|
|
464
494
|
});
|
|
465
495
|
|
|
466
496
|
/**
|
|
467
|
-
*
|
|
497
|
+
* Execute an individual action for a dataset record
|
|
468
498
|
*
|
|
469
|
-
*
|
|
499
|
+
* Executes a single workflow action identified by decision_key for the given dataset record, bypassing filter and decision evaluation
|
|
470
500
|
*/
|
|
471
|
-
export const
|
|
501
|
+
export const platformApiAgenticWorkflowOperationsControllerExecute = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerExecuteData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAgenticWorkflowOperationsControllerExecuteResponses, PlatformApiAgenticWorkflowOperationsControllerExecuteErrors, ThrowOnError>({
|
|
472
502
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
473
|
-
body:
|
|
474
|
-
path:
|
|
503
|
+
body: vPlatformApiAgenticWorkflowOperationsControllerExecuteBody,
|
|
504
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerExecutePath,
|
|
475
505
|
query: v.optional(v.never())
|
|
476
506
|
}), data),
|
|
477
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
507
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerExecuteResponse, data),
|
|
478
508
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
479
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
509
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/execute',
|
|
480
510
|
...options,
|
|
481
511
|
headers: {
|
|
482
512
|
'Content-Type': 'application/json',
|
|
@@ -485,89 +515,99 @@ export const platformApiToolControllerUpdate = <ThrowOnError extends boolean = f
|
|
|
485
515
|
});
|
|
486
516
|
|
|
487
517
|
/**
|
|
488
|
-
*
|
|
518
|
+
* Create datalake upload link
|
|
489
519
|
*
|
|
490
|
-
* Returns a
|
|
520
|
+
* Returns a presigned PUT URL for uploading a file (NDJSON or CSV) directly to the datalake's regulated cloud storage. The returned key lives under `uploads/<datalake_id>/` and can be passed to downstream endpoints (e.g. data activation client ingest-file) that accept a pre-uploaded storage key.
|
|
491
521
|
*/
|
|
492
|
-
export const
|
|
522
|
+
export const platformApiDatalakeControllerCreateUploadLink = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerCreateUploadLinkData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDatalakeControllerCreateUploadLinkResponses, PlatformApiDatalakeControllerCreateUploadLinkErrors, ThrowOnError>({
|
|
493
523
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
494
524
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
495
|
-
body:
|
|
496
|
-
path:
|
|
497
|
-
query: v.optional(
|
|
525
|
+
body: vPlatformApiDatalakeControllerCreateUploadLinkBody,
|
|
526
|
+
path: vPlatformApiDatalakeControllerCreateUploadLinkPath,
|
|
527
|
+
query: v.optional(vPlatformApiDatalakeControllerCreateUploadLinkQuery)
|
|
498
528
|
}), data),
|
|
499
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
529
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerCreateUploadLinkResponse, data),
|
|
500
530
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
501
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
502
|
-
...options
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
531
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/upload-link',
|
|
532
|
+
...options,
|
|
533
|
+
headers: {
|
|
534
|
+
'Content-Type': 'application/json',
|
|
535
|
+
...options.headers
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* List datalakes
|
|
507
541
|
*
|
|
508
|
-
*
|
|
542
|
+
* Returns a paginated list of datalakes for the authenticated tenant.
|
|
509
543
|
*/
|
|
510
|
-
export const
|
|
544
|
+
export const platformApiDatalakeControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDatalakeControllerIndexResponses, PlatformApiDatalakeControllerIndexErrors, ThrowOnError>({
|
|
545
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
511
546
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
512
547
|
body: v.optional(v.never()),
|
|
513
|
-
path:
|
|
514
|
-
query: v.optional(
|
|
548
|
+
path: vPlatformApiDatalakeControllerIndexPath,
|
|
549
|
+
query: v.optional(vPlatformApiDatalakeControllerIndexQuery)
|
|
515
550
|
}), data),
|
|
516
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
551
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerIndexResponse, data),
|
|
517
552
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
518
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
553
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes',
|
|
519
554
|
...options
|
|
520
555
|
});
|
|
521
556
|
|
|
522
557
|
/**
|
|
523
|
-
*
|
|
558
|
+
* Create a datalake
|
|
524
559
|
*
|
|
525
|
-
*
|
|
560
|
+
* Creates a new datalake for the authenticated tenant.
|
|
526
561
|
*/
|
|
527
|
-
export const
|
|
562
|
+
export const platformApiDatalakeControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDatalakeControllerCreateResponses, PlatformApiDatalakeControllerCreateErrors, ThrowOnError>({
|
|
563
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
528
564
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
529
|
-
body: v.optional(
|
|
530
|
-
path:
|
|
531
|
-
query: v.optional(
|
|
565
|
+
body: v.optional(vPlatformApiDatalakeControllerCreateBody),
|
|
566
|
+
path: vPlatformApiDatalakeControllerCreatePath,
|
|
567
|
+
query: v.optional(vPlatformApiDatalakeControllerCreateQuery)
|
|
532
568
|
}), data),
|
|
533
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
569
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerCreateResponse, data),
|
|
534
570
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
535
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes
|
|
536
|
-
...options
|
|
571
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes',
|
|
572
|
+
...options,
|
|
573
|
+
headers: {
|
|
574
|
+
'Content-Type': 'application/json',
|
|
575
|
+
...options.headers
|
|
576
|
+
}
|
|
537
577
|
});
|
|
538
578
|
|
|
539
579
|
/**
|
|
540
|
-
*
|
|
580
|
+
* Show a single DAC processing log
|
|
541
581
|
*
|
|
542
|
-
* Returns a
|
|
582
|
+
* Returns a single `DataActivationLog` row scoped to this DAC. Returns 404 if the id belongs to a different client.
|
|
543
583
|
*/
|
|
544
|
-
export const
|
|
545
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
584
|
+
export const platformApiDataActivationClientControllerLogShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerLogShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDataActivationClientControllerLogShowResponses, PlatformApiDataActivationClientControllerLogShowErrors, ThrowOnError>({
|
|
546
585
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
547
586
|
body: v.optional(v.never()),
|
|
548
|
-
path:
|
|
549
|
-
query: v.optional(
|
|
587
|
+
path: vPlatformApiDataActivationClientControllerLogShowPath,
|
|
588
|
+
query: v.optional(v.never())
|
|
550
589
|
}), data),
|
|
551
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
590
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerLogShowResponse, data),
|
|
552
591
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
553
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
592
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/logs/{id}',
|
|
554
593
|
...options
|
|
555
594
|
});
|
|
556
595
|
|
|
557
596
|
/**
|
|
558
|
-
*
|
|
597
|
+
* Replace a data source
|
|
559
598
|
*
|
|
560
|
-
*
|
|
599
|
+
* Replaces a data source with the full resource body. PUT semantics — all required fields must be present.
|
|
561
600
|
*/
|
|
562
|
-
export const
|
|
601
|
+
export const platformApiDataSourceControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataSourceControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiDataSourceControllerUpdateResponses, PlatformApiDataSourceControllerUpdateErrors, ThrowOnError>({
|
|
602
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
563
603
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
564
|
-
body: v.optional(
|
|
565
|
-
path:
|
|
566
|
-
query: v.optional(
|
|
604
|
+
body: v.optional(vPlatformApiDataSourceControllerUpdateBody),
|
|
605
|
+
path: vPlatformApiDataSourceControllerUpdatePath,
|
|
606
|
+
query: v.optional(vPlatformApiDataSourceControllerUpdateQuery)
|
|
567
607
|
}), data),
|
|
568
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
608
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataSourceControllerUpdateResponse, data),
|
|
569
609
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
570
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
610
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-sources/{id}',
|
|
571
611
|
...options,
|
|
572
612
|
headers: {
|
|
573
613
|
'Content-Type': 'application/json',
|
|
@@ -576,105 +616,114 @@ export const platformApiAgenticWorkflowControllerCreate = <ThrowOnError extends
|
|
|
576
616
|
});
|
|
577
617
|
|
|
578
618
|
/**
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
* Updates tracking timestamps (opened_at, form_submitted_at) on the message
|
|
582
|
-
* linked to a page token. Called by the connected app when a user opens a page
|
|
583
|
-
* or submits a form.
|
|
584
|
-
*
|
|
585
|
-
* **Requires X-API-Key authentication.**
|
|
619
|
+
* Delete an agentic workflow
|
|
586
620
|
*
|
|
621
|
+
* Deletes a workflow and all associated actions, context datasets, and AI agent attachments.
|
|
587
622
|
*/
|
|
588
|
-
export const
|
|
623
|
+
export const platformApiAgenticWorkflowControllerDelete = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowControllerDeleteData, ThrowOnError>) => (options.client ?? client).delete<PlatformApiAgenticWorkflowControllerDeleteResponses, PlatformApiAgenticWorkflowControllerDeleteErrors, ThrowOnError>({
|
|
589
624
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
590
|
-
body:
|
|
591
|
-
path:
|
|
625
|
+
body: v.optional(v.never()),
|
|
626
|
+
path: vPlatformApiAgenticWorkflowControllerDeletePath,
|
|
592
627
|
query: v.optional(v.never())
|
|
593
628
|
}), data),
|
|
594
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
629
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowControllerDeleteResponse, data),
|
|
595
630
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
596
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
597
|
-
...options
|
|
598
|
-
headers: {
|
|
599
|
-
'Content-Type': 'application/json',
|
|
600
|
-
...options.headers
|
|
601
|
-
}
|
|
631
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/agentic-workflows/{id}',
|
|
632
|
+
...options
|
|
602
633
|
});
|
|
603
634
|
|
|
604
635
|
/**
|
|
605
|
-
*
|
|
636
|
+
* Get an agentic workflow
|
|
606
637
|
*
|
|
607
|
-
*
|
|
638
|
+
* Returns a single workflow by ID with nested AI agents.
|
|
608
639
|
*/
|
|
609
|
-
export const
|
|
640
|
+
export const platformApiAgenticWorkflowControllerShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowControllerShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowControllerShowResponses, PlatformApiAgenticWorkflowControllerShowErrors, ThrowOnError>({
|
|
610
641
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
611
642
|
body: v.optional(v.never()),
|
|
612
|
-
path:
|
|
643
|
+
path: vPlatformApiAgenticWorkflowControllerShowPath,
|
|
613
644
|
query: v.optional(v.never())
|
|
614
645
|
}), data),
|
|
615
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
646
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowControllerShowResponse, data),
|
|
616
647
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
617
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
648
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/agentic-workflows/{id}',
|
|
618
649
|
...options
|
|
619
650
|
});
|
|
620
651
|
|
|
621
652
|
/**
|
|
622
|
-
*
|
|
623
|
-
*
|
|
624
|
-
* Revokes the current Bearer session — deactivates the session and deletes
|
|
625
|
-
* the linked UserToken. The Bearer token becomes immediately invalid.
|
|
626
|
-
*
|
|
627
|
-
* Only works with `Authorization: Bearer <session_token>` (not X-API-Key).
|
|
628
|
-
*
|
|
629
|
-
* **Requires Bearer authentication.**
|
|
653
|
+
* Replace an agentic workflow
|
|
630
654
|
*
|
|
655
|
+
* Replaces a workflow with the full resource body. PUT semantics — all required fields must be present. The `ai_agents` array replaces the current set of attached agents transactionally.
|
|
631
656
|
*/
|
|
632
|
-
export const
|
|
657
|
+
export const platformApiAgenticWorkflowControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiAgenticWorkflowControllerUpdateResponses, PlatformApiAgenticWorkflowControllerUpdateErrors, ThrowOnError>({
|
|
633
658
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
634
|
-
body: v.optional(
|
|
635
|
-
path:
|
|
659
|
+
body: v.optional(vPlatformApiAgenticWorkflowControllerUpdateBody),
|
|
660
|
+
path: vPlatformApiAgenticWorkflowControllerUpdatePath,
|
|
636
661
|
query: v.optional(v.never())
|
|
637
662
|
}), data),
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
663
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowControllerUpdateResponse, data),
|
|
664
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
665
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/agentic-workflows/{id}',
|
|
666
|
+
...options,
|
|
667
|
+
headers: {
|
|
668
|
+
'Content-Type': 'application/json',
|
|
669
|
+
...options.headers
|
|
670
|
+
}
|
|
641
671
|
});
|
|
642
672
|
|
|
643
673
|
/**
|
|
644
|
-
*
|
|
674
|
+
* Run workflow for matching records
|
|
645
675
|
*
|
|
646
|
-
*
|
|
676
|
+
* Executes the workflow for all dataset records matching the SQL WHERE clause.
|
|
677
|
+
* Creates sampled events and enqueues run_workflow jobs. Returns the batch ID
|
|
678
|
+
* and enqueued count. A WorkflowRunLog is created to track batch-level
|
|
679
|
+
* progress, polled by a daily DynamicCron.
|
|
647
680
|
*
|
|
648
|
-
*
|
|
649
|
-
* human user and receive a session token. Use the returned `session_token`
|
|
650
|
-
* as `Authorization: Bearer <session_token>` on subsequent API requests.
|
|
681
|
+
* ## Per-step artifacts (audit trail)
|
|
651
682
|
*
|
|
652
|
-
*
|
|
653
|
-
*
|
|
654
|
-
*
|
|
655
|
-
*
|
|
683
|
+
* Each per-row WorkflowExecutionLog (WEL) writes a fixed set of JSON
|
|
684
|
+
* artifacts to the datalake's regulated cloud-storage bucket. The path is
|
|
685
|
+
* deterministic and convention-driven — there is no separate listing
|
|
686
|
+
* endpoint:
|
|
656
687
|
*
|
|
657
|
-
*
|
|
658
|
-
*
|
|
659
|
-
*
|
|
688
|
+
* workflows/{workflow_id}/executions/{wel_id}/event.json
|
|
689
|
+
* workflows/{workflow_id}/executions/{wel_id}/filter.json
|
|
690
|
+
* workflows/{workflow_id}/executions/{wel_id}/enrichment.json
|
|
691
|
+
* workflows/{workflow_id}/executions/{wel_id}/error.json # only on failure
|
|
660
692
|
*
|
|
661
|
-
*
|
|
662
|
-
*
|
|
693
|
+
* | File | Written by stage | Body |
|
|
694
|
+
* | ----------------- | -------------------------------------- | ------------------------------------------------------------------ |
|
|
695
|
+
* | `event.json` | context build | full WorkflowContext (event_dataset, mdm_output, additional_context)|
|
|
696
|
+
* | `filter.json` | filter eval (both pass and reject) | `{filter_expression, filter_result: bool}` |
|
|
697
|
+
* | `enrichment.json` | enrichment terminal (success / skip / fail) | `{status: "completed" \| "failed" \| "skipped", <agent_slug>: ...}` |
|
|
698
|
+
* | `error.json` | ANY pipeline failure | `{stage, error_code, ai_agent_slug, error_message, detail}` |
|
|
663
699
|
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
700
|
+
* `error.json`'s presence IS the failure signal — `WEL.error_message`
|
|
701
|
+
* carries only a code-grade summary; the rich URL/HTTP-status/transport
|
|
702
|
+
* detail lives ONLY in `error.json["detail"]`. Engineers debugging a
|
|
703
|
+
* failed run should download `error.json` for full context.
|
|
666
704
|
*
|
|
667
|
-
*
|
|
705
|
+
* ### Fetching an artifact
|
|
706
|
+
*
|
|
707
|
+
* Use the standard datalake download-link endpoint
|
|
708
|
+
* (`POST /api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link`)
|
|
709
|
+
* with `bucket = <regulated bucket>` and the convention key above. Example:
|
|
710
|
+
*
|
|
711
|
+
* POST /api/v1/tenants/acme/datalakes/clinical/download-link
|
|
712
|
+
* { "bucket": "clinical-regulated", "key": "workflows/<wf_id>/executions/<wel_id>/error.json" }
|
|
713
|
+
*
|
|
714
|
+
* The response carries a short-lived signed URL. The regulated bucket is
|
|
715
|
+
* exposed on the datalake response as `regulated_cloud_storage.bucket`.
|
|
668
716
|
*
|
|
669
717
|
*/
|
|
670
|
-
export const
|
|
718
|
+
export const platformApiAgenticWorkflowOperationsControllerRunWorkflow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerRunWorkflowData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAgenticWorkflowOperationsControllerRunWorkflowResponses, PlatformApiAgenticWorkflowOperationsControllerRunWorkflowErrors, ThrowOnError>({
|
|
671
719
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
672
|
-
body:
|
|
673
|
-
path:
|
|
720
|
+
body: vPlatformApiAgenticWorkflowOperationsControllerRunWorkflowBody,
|
|
721
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerRunWorkflowPath,
|
|
674
722
|
query: v.optional(v.never())
|
|
675
723
|
}), data),
|
|
676
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
677
|
-
|
|
724
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerRunWorkflowResponse, data),
|
|
725
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
726
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/run-workflow',
|
|
678
727
|
...options,
|
|
679
728
|
headers: {
|
|
680
729
|
'Content-Type': 'application/json',
|
|
@@ -683,122 +732,76 @@ export const platformApiSessionControllerCreate = <ThrowOnError extends boolean
|
|
|
683
732
|
});
|
|
684
733
|
|
|
685
734
|
/**
|
|
686
|
-
*
|
|
735
|
+
* Force-refresh a batch run log
|
|
687
736
|
*
|
|
688
|
-
*
|
|
737
|
+
* Triggers an immediate refresh of the batch run log metrics and merged artifacts.
|
|
689
738
|
*/
|
|
690
|
-
export const
|
|
691
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
739
|
+
export const platformApiAgenticWorkflowOperationsControllerBatchLogRefresh = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshResponses, PlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshErrors, ThrowOnError>({
|
|
692
740
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
693
741
|
body: v.optional(v.never()),
|
|
694
|
-
path:
|
|
695
|
-
query: v.optional(
|
|
742
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshPath,
|
|
743
|
+
query: v.optional(v.never())
|
|
696
744
|
}), data),
|
|
697
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
745
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerBatchLogRefreshResponse, data),
|
|
698
746
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
699
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
747
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/batch-logs/{id}/refresh',
|
|
700
748
|
...options
|
|
701
749
|
});
|
|
702
750
|
|
|
703
751
|
/**
|
|
704
|
-
*
|
|
752
|
+
* Ingest JSON data
|
|
705
753
|
*
|
|
706
|
-
*
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
710
|
-
body: v.optional(vPlatformApiConnectedAppMgmtControllerCreateBody),
|
|
711
|
-
path: vPlatformApiConnectedAppMgmtControllerCreatePath,
|
|
712
|
-
query: v.optional(v.never())
|
|
713
|
-
}), data),
|
|
714
|
-
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppMgmtControllerCreateResponse, data),
|
|
715
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
716
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/connected-apps',
|
|
717
|
-
...options,
|
|
718
|
-
headers: {
|
|
719
|
-
'Content-Type': 'application/json',
|
|
720
|
-
...options.headers
|
|
721
|
-
}
|
|
722
|
-
});
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
* Confirm a user (admin bypass)
|
|
754
|
+
* Ingest a single JSON record for processing through the data activation
|
|
755
|
+
* pipeline. Returns immediately with `{batch_id, key, jobs_count}`; per-row
|
|
756
|
+
* work runs asynchronously on the data-activation Oban queue.
|
|
726
757
|
*
|
|
727
|
-
*
|
|
728
|
-
* token. Idempotent — confirming an already-confirmed user is a 200 no-op
|
|
729
|
-
* that returns the existing `confirmed_at` timestamp.
|
|
758
|
+
* ## Per-batch artifacts (audit trail)
|
|
730
759
|
*
|
|
731
|
-
*
|
|
732
|
-
*
|
|
733
|
-
*
|
|
760
|
+
* The DAC pipeline does NOT use the `<step>.json` convention that workflows
|
|
761
|
+
* do — its byproducts are NDJSON archives, surfaced on the
|
|
762
|
+
* `DataActivationLog` row that the batch produces:
|
|
734
763
|
*
|
|
735
|
-
*
|
|
736
|
-
*
|
|
737
|
-
* `
|
|
764
|
+
* | Field | Bucket | Body |
|
|
765
|
+
* | --------------- | ------------ | ---------------------------------------------------------------------------------------- |
|
|
766
|
+
* | `key` (response)| regulated | the raw JSON payload uploaded by THIS request |
|
|
767
|
+
* | `input_files` | regulated | source artifacts consumed by the batch (one per ingest call merged into the batch) |
|
|
768
|
+
* | `output_files` | mixed | merged NDJSON archives, one `{object_key, mode}` per bucket (`regulated` + `unregulated`)|
|
|
738
769
|
*
|
|
739
|
-
*
|
|
770
|
+
* ### Fetching diagnostic artifacts
|
|
740
771
|
*
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
744
|
-
body: v.optional(v.never()),
|
|
745
|
-
path: vPlatformApiAdminControllerConfirmUserPath,
|
|
746
|
-
query: v.optional(v.never())
|
|
747
|
-
}), data),
|
|
748
|
-
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAdminControllerConfirmUserResponse, data),
|
|
749
|
-
security: [{ scheme: 'bearer', type: 'http' }],
|
|
750
|
-
url: '/api/v1/admin/users/{id}/confirm',
|
|
751
|
-
...options
|
|
752
|
-
});
|
|
753
|
-
|
|
754
|
-
/**
|
|
755
|
-
* Delete an AI agent
|
|
772
|
+
* Use the same datalake download-link endpoint as workflow artifacts
|
|
773
|
+
* (`POST /api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link`):
|
|
756
774
|
*
|
|
757
|
-
*
|
|
758
|
-
|
|
759
|
-
export const platformApiAiAgentControllerDelete = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAiAgentControllerDeleteData, ThrowOnError>) => (options.client ?? client).delete<PlatformApiAiAgentControllerDeleteResponses, PlatformApiAiAgentControllerDeleteErrors, ThrowOnError>({
|
|
760
|
-
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
761
|
-
body: v.optional(v.never()),
|
|
762
|
-
path: vPlatformApiAiAgentControllerDeletePath,
|
|
763
|
-
query: v.optional(v.never())
|
|
764
|
-
}), data),
|
|
765
|
-
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAiAgentControllerDeleteResponse, data),
|
|
766
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
767
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/ai-agents/{id}',
|
|
768
|
-
...options
|
|
769
|
-
});
|
|
770
|
-
|
|
771
|
-
/**
|
|
772
|
-
* Get an AI agent
|
|
775
|
+
* # raw payload that this ingest call uploaded
|
|
776
|
+
* { "bucket": "<regulated>", "key": "<response.key>" }
|
|
773
777
|
*
|
|
774
|
-
*
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
*
|
|
778
|
+
* # per-bucket merged archive (after batch completes)
|
|
779
|
+
* { "bucket": "<regulated|unregulated>", "key": "<output_files[i].object_key>" }
|
|
780
|
+
*
|
|
781
|
+
* `output_files[i].mode` tells you which bucket each archive lives in
|
|
782
|
+
* (`regulated` for raw attrs, `unregulated` for tokenized). The regulated /
|
|
783
|
+
* unregulated bucket names are exposed on the datalake response as
|
|
784
|
+
* `regulated_cloud_storage.bucket` / `unregulated_cloud_storage.bucket`.
|
|
785
|
+
*
|
|
786
|
+
* ### Failure surfacing
|
|
787
|
+
*
|
|
788
|
+
* On a `{:error, _}` ingest response the platform returns `422` with an
|
|
789
|
+
* `error` string. For pipeline failures (per-row Oban job exceptions),
|
|
790
|
+
* the DataActivationLog row's `rows_ingested` will be lower than the
|
|
791
|
+
* submitted count; per-row diagnostics live in the Oban job table
|
|
792
|
+
* (`oban_jobs.errors`) keyed by `batch_id`. There is no `error.json`
|
|
793
|
+
* artifact on the DAC path — that convention is workflow-only.
|
|
790
794
|
*
|
|
791
|
-
* Replaces an AI agent with the full resource body. PUT semantics — all required fields must be present.
|
|
792
795
|
*/
|
|
793
|
-
export const
|
|
796
|
+
export const platformApiDataActivationClientControllerIngest = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerIngestData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDataActivationClientControllerIngestResponses, PlatformApiDataActivationClientControllerIngestErrors, ThrowOnError>({
|
|
794
797
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
795
|
-
body:
|
|
796
|
-
path:
|
|
798
|
+
body: vPlatformApiDataActivationClientControllerIngestBody,
|
|
799
|
+
path: vPlatformApiDataActivationClientControllerIngestPath,
|
|
797
800
|
query: v.optional(v.never())
|
|
798
801
|
}), data),
|
|
799
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
802
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerIngestResponse, data),
|
|
800
803
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
801
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
804
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/ingest',
|
|
802
805
|
...options,
|
|
803
806
|
headers: {
|
|
804
807
|
'Content-Type': 'application/json',
|
|
@@ -807,19 +810,20 @@ export const platformApiAiAgentControllerUpdate = <ThrowOnError extends boolean
|
|
|
807
810
|
});
|
|
808
811
|
|
|
809
812
|
/**
|
|
810
|
-
*
|
|
813
|
+
* Replace an action status updater
|
|
811
814
|
*
|
|
812
|
-
*
|
|
815
|
+
* Replaces an action status updater with the full resource body. PUT semantics — all required fields must be present.
|
|
813
816
|
*/
|
|
814
|
-
export const
|
|
817
|
+
export const platformApiActionStatusUpdaterControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiActionStatusUpdaterControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiActionStatusUpdaterControllerUpdateResponses, PlatformApiActionStatusUpdaterControllerUpdateErrors, ThrowOnError>({
|
|
818
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
815
819
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
816
|
-
body: v.optional(
|
|
817
|
-
path:
|
|
818
|
-
query: v.optional(
|
|
820
|
+
body: v.optional(vPlatformApiActionStatusUpdaterControllerUpdateBody),
|
|
821
|
+
path: vPlatformApiActionStatusUpdaterControllerUpdatePath,
|
|
822
|
+
query: v.optional(vPlatformApiActionStatusUpdaterControllerUpdateQuery)
|
|
819
823
|
}), data),
|
|
820
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
824
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiActionStatusUpdaterControllerUpdateResponse, data),
|
|
821
825
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
822
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
826
|
+
url: '/api/v1/tenants/{tenant_slug}/action-status-updaters/{id}',
|
|
823
827
|
...options,
|
|
824
828
|
headers: {
|
|
825
829
|
'Content-Type': 'application/json',
|
|
@@ -828,59 +832,37 @@ export const platformApiDataActivationClientControllerRunManually = <ThrowOnErro
|
|
|
828
832
|
});
|
|
829
833
|
|
|
830
834
|
/**
|
|
831
|
-
* List
|
|
835
|
+
* List AI agents
|
|
832
836
|
*
|
|
833
|
-
* Returns a paginated list of
|
|
837
|
+
* Returns a paginated list of AI agents for the authenticated tenant.
|
|
834
838
|
*/
|
|
835
|
-
export const
|
|
839
|
+
export const platformApiAiAgentControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAiAgentControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAiAgentControllerIndexResponses, PlatformApiAiAgentControllerIndexErrors, ThrowOnError>({
|
|
836
840
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
837
841
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
838
842
|
body: v.optional(v.never()),
|
|
839
|
-
path:
|
|
840
|
-
query: v.optional(
|
|
843
|
+
path: vPlatformApiAiAgentControllerIndexPath,
|
|
844
|
+
query: v.optional(vPlatformApiAiAgentControllerIndexQuery)
|
|
841
845
|
}), data),
|
|
842
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
846
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAiAgentControllerIndexResponse, data),
|
|
843
847
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
844
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
848
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/ai-agents',
|
|
845
849
|
...options
|
|
846
850
|
});
|
|
847
851
|
|
|
848
852
|
/**
|
|
849
|
-
* Create
|
|
850
|
-
*
|
|
851
|
-
* Creates a new data source for the authenticated tenant.
|
|
852
|
-
*/
|
|
853
|
-
export const platformApiDataSourceControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataSourceControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDataSourceControllerCreateResponses, PlatformApiDataSourceControllerCreateErrors, ThrowOnError>({
|
|
854
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
855
|
-
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
856
|
-
body: v.optional(vPlatformApiDataSourceControllerCreateBody),
|
|
857
|
-
path: vPlatformApiDataSourceControllerCreatePath,
|
|
858
|
-
query: v.optional(vPlatformApiDataSourceControllerCreateQuery)
|
|
859
|
-
}), data),
|
|
860
|
-
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataSourceControllerCreateResponse, data),
|
|
861
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
862
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-sources',
|
|
863
|
-
...options,
|
|
864
|
-
headers: {
|
|
865
|
-
'Content-Type': 'application/json',
|
|
866
|
-
...options.headers
|
|
867
|
-
}
|
|
868
|
-
});
|
|
869
|
-
|
|
870
|
-
/**
|
|
871
|
-
* Ingest previously uploaded file
|
|
853
|
+
* Create an AI agent
|
|
872
854
|
*
|
|
873
|
-
*
|
|
855
|
+
* Creates a new AI agent for the authenticated tenant.
|
|
874
856
|
*/
|
|
875
|
-
export const
|
|
857
|
+
export const platformApiAiAgentControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAiAgentControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAiAgentControllerCreateResponses, PlatformApiAiAgentControllerCreateErrors, ThrowOnError>({
|
|
876
858
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
877
|
-
body:
|
|
878
|
-
path:
|
|
859
|
+
body: v.optional(vPlatformApiAiAgentControllerCreateBody),
|
|
860
|
+
path: vPlatformApiAiAgentControllerCreatePath,
|
|
879
861
|
query: v.optional(v.never())
|
|
880
862
|
}), data),
|
|
881
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
863
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAiAgentControllerCreateResponse, data),
|
|
882
864
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
883
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
865
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/ai-agents',
|
|
884
866
|
...options,
|
|
885
867
|
headers: {
|
|
886
868
|
'Content-Type': 'application/json',
|
|
@@ -889,24 +871,20 @@ export const platformApiDataActivationClientControllerIngestFile = <ThrowOnError
|
|
|
889
871
|
});
|
|
890
872
|
|
|
891
873
|
/**
|
|
892
|
-
* Get
|
|
893
|
-
*
|
|
894
|
-
* Returns a single execution log with action execution details. Each action
|
|
895
|
-
* execution log carries a `message_body` virtual field populated from the
|
|
896
|
-
* datalake message linked via `message_id`. The `data_access_mode` query
|
|
897
|
-
* parameter selects which datalake schema is read for the body — defaults
|
|
898
|
-
* to the session's `data_access_mode` ceiling.
|
|
874
|
+
* Get datalake domain metadata
|
|
899
875
|
*
|
|
876
|
+
* Returns a markdown document describing the datalake's data domain — its available standard resources and capabilities.
|
|
900
877
|
*/
|
|
901
|
-
export const
|
|
878
|
+
export const platformApiDatalakeControllerMetadata = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatalakeControllerMetadataData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDatalakeControllerMetadataResponses, PlatformApiDatalakeControllerMetadataErrors, ThrowOnError>({
|
|
879
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
902
880
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
903
881
|
body: v.optional(v.never()),
|
|
904
|
-
path:
|
|
905
|
-
query: v.optional(
|
|
882
|
+
path: vPlatformApiDatalakeControllerMetadataPath,
|
|
883
|
+
query: v.optional(vPlatformApiDatalakeControllerMetadataQuery)
|
|
906
884
|
}), data),
|
|
907
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
885
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatalakeControllerMetadataResponse, data),
|
|
908
886
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
909
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
887
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/metadata',
|
|
910
888
|
...options
|
|
911
889
|
});
|
|
912
890
|
|
|
@@ -969,77 +947,81 @@ export const platformApiInteroperabilityContractControllerUpdate = <ThrowOnError
|
|
|
969
947
|
});
|
|
970
948
|
|
|
971
949
|
/**
|
|
972
|
-
* Get
|
|
950
|
+
* Get a workflow execution log
|
|
951
|
+
*
|
|
952
|
+
* Returns a single execution log with action execution details. Each action
|
|
953
|
+
* execution log carries a `message_body` virtual field populated from the
|
|
954
|
+
* datalake message linked via `message_id`. The `data_access_mode` query
|
|
955
|
+
* parameter selects which datalake schema is read for the body — defaults
|
|
956
|
+
* to the session's `data_access_mode` ceiling.
|
|
973
957
|
*
|
|
974
|
-
* Returns a markdown document describing the datalake's data domain — its available standard resources and capabilities.
|
|
975
958
|
*/
|
|
976
|
-
export const
|
|
977
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
959
|
+
export const platformApiAgenticWorkflowOperationsControllerWorkflowLogShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowResponses, PlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowErrors, ThrowOnError>({
|
|
978
960
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
979
961
|
body: v.optional(v.never()),
|
|
980
|
-
path:
|
|
981
|
-
query: v.optional(
|
|
962
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowPath,
|
|
963
|
+
query: v.optional(vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowQuery)
|
|
982
964
|
}), data),
|
|
983
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
965
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogShowResponse, data),
|
|
984
966
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
985
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
967
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/workflow-logs/{id}',
|
|
986
968
|
...options
|
|
987
969
|
});
|
|
988
970
|
|
|
989
971
|
/**
|
|
990
|
-
*
|
|
972
|
+
* Ingest previously uploaded file
|
|
991
973
|
*
|
|
992
|
-
*
|
|
974
|
+
* Ingests a file that was uploaded via a presigned URL obtained from the datalake upload-link endpoint. The key must belong to this client's datalake prefix (`uploads/<datalake_id>/...`).
|
|
993
975
|
*/
|
|
994
|
-
export const
|
|
995
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
976
|
+
export const platformApiDataActivationClientControllerIngestFile = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerIngestFileData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDataActivationClientControllerIngestFileResponses, PlatformApiDataActivationClientControllerIngestFileErrors, ThrowOnError>({
|
|
996
977
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
997
|
-
body:
|
|
998
|
-
path:
|
|
999
|
-
query: v.optional(
|
|
978
|
+
body: vPlatformApiDataActivationClientControllerIngestFileBody,
|
|
979
|
+
path: vPlatformApiDataActivationClientControllerIngestFilePath,
|
|
980
|
+
query: v.optional(v.never())
|
|
1000
981
|
}), data),
|
|
1001
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
982
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerIngestFileResponse, data),
|
|
1002
983
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1003
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1004
|
-
...options
|
|
984
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/ingest-file',
|
|
985
|
+
...options,
|
|
986
|
+
headers: {
|
|
987
|
+
'Content-Type': 'application/json',
|
|
988
|
+
...options.headers
|
|
989
|
+
}
|
|
1005
990
|
});
|
|
1006
991
|
|
|
1007
992
|
/**
|
|
1008
|
-
*
|
|
993
|
+
* List data sources
|
|
1009
994
|
*
|
|
1010
|
-
*
|
|
995
|
+
* Returns a paginated list of data sources for the authenticated tenant.
|
|
1011
996
|
*/
|
|
1012
|
-
export const
|
|
997
|
+
export const platformApiDataSourceControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataSourceControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDataSourceControllerIndexResponses, PlatformApiDataSourceControllerIndexErrors, ThrowOnError>({
|
|
998
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1013
999
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1014
|
-
body: v.optional(
|
|
1015
|
-
path:
|
|
1016
|
-
query: v.optional(
|
|
1000
|
+
body: v.optional(v.never()),
|
|
1001
|
+
path: vPlatformApiDataSourceControllerIndexPath,
|
|
1002
|
+
query: v.optional(vPlatformApiDataSourceControllerIndexQuery)
|
|
1017
1003
|
}), data),
|
|
1018
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1004
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataSourceControllerIndexResponse, data),
|
|
1019
1005
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1020
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1021
|
-
...options
|
|
1022
|
-
headers: {
|
|
1023
|
-
'Content-Type': 'application/json',
|
|
1024
|
-
...options.headers
|
|
1025
|
-
}
|
|
1006
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-sources',
|
|
1007
|
+
...options
|
|
1026
1008
|
});
|
|
1027
1009
|
|
|
1028
1010
|
/**
|
|
1029
|
-
*
|
|
1011
|
+
* Create a data source
|
|
1030
1012
|
*
|
|
1031
|
-
*
|
|
1013
|
+
* Creates a new data source for the authenticated tenant.
|
|
1032
1014
|
*/
|
|
1033
|
-
export const
|
|
1015
|
+
export const platformApiDataSourceControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataSourceControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDataSourceControllerCreateResponses, PlatformApiDataSourceControllerCreateErrors, ThrowOnError>({
|
|
1034
1016
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1035
1017
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1036
|
-
body: v.optional(
|
|
1037
|
-
path:
|
|
1038
|
-
query: v.optional(
|
|
1018
|
+
body: v.optional(vPlatformApiDataSourceControllerCreateBody),
|
|
1019
|
+
path: vPlatformApiDataSourceControllerCreatePath,
|
|
1020
|
+
query: v.optional(vPlatformApiDataSourceControllerCreateQuery)
|
|
1039
1021
|
}), data),
|
|
1040
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1022
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataSourceControllerCreateResponse, data),
|
|
1041
1023
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1042
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1024
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-sources',
|
|
1043
1025
|
...options,
|
|
1044
1026
|
headers: {
|
|
1045
1027
|
'Content-Type': 'application/json',
|
|
@@ -1048,59 +1030,19 @@ export const platformApiActionStatusUpdaterControllerUpdate = <ThrowOnError exte
|
|
|
1048
1030
|
});
|
|
1049
1031
|
|
|
1050
1032
|
/**
|
|
1051
|
-
*
|
|
1052
|
-
*
|
|
1053
|
-
* Ingest a single JSON record for processing through the data activation
|
|
1054
|
-
* pipeline. Returns immediately with `{batch_id, key, jobs_count}`; per-row
|
|
1055
|
-
* work runs asynchronously on the data-activation Oban queue.
|
|
1056
|
-
*
|
|
1057
|
-
* ## Per-batch artifacts (audit trail)
|
|
1058
|
-
*
|
|
1059
|
-
* The DAC pipeline does NOT use the `<step>.json` convention that workflows
|
|
1060
|
-
* do — its byproducts are NDJSON archives, surfaced on the
|
|
1061
|
-
* `DataActivationLog` row that the batch produces:
|
|
1062
|
-
*
|
|
1063
|
-
* | Field | Bucket | Body |
|
|
1064
|
-
* | --------------- | ------------ | ---------------------------------------------------------------------------------------- |
|
|
1065
|
-
* | `key` (response)| regulated | the raw JSON payload uploaded by THIS request |
|
|
1066
|
-
* | `input_files` | regulated | source artifacts consumed by the batch (one per ingest call merged into the batch) |
|
|
1067
|
-
* | `output_files` | mixed | merged NDJSON archives, one `{object_key, mode}` per bucket (`regulated` + `unregulated`)|
|
|
1068
|
-
*
|
|
1069
|
-
* ### Fetching diagnostic artifacts
|
|
1070
|
-
*
|
|
1071
|
-
* Use the same datalake download-link endpoint as workflow artifacts
|
|
1072
|
-
* (`POST /api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link`):
|
|
1073
|
-
*
|
|
1074
|
-
* # raw payload that this ingest call uploaded
|
|
1075
|
-
* { "bucket": "<regulated>", "key": "<response.key>" }
|
|
1076
|
-
*
|
|
1077
|
-
* # per-bucket merged archive (after batch completes)
|
|
1078
|
-
* { "bucket": "<regulated|unregulated>", "key": "<output_files[i].object_key>" }
|
|
1079
|
-
*
|
|
1080
|
-
* `output_files[i].mode` tells you which bucket each archive lives in
|
|
1081
|
-
* (`regulated` for raw attrs, `unregulated` for tokenized). The regulated /
|
|
1082
|
-
* unregulated bucket names are exposed on the datalake response as
|
|
1083
|
-
* `regulated_cloud_storage.bucket` / `unregulated_cloud_storage.bucket`.
|
|
1084
|
-
*
|
|
1085
|
-
* ### Failure surfacing
|
|
1086
|
-
*
|
|
1087
|
-
* On a `{:error, _}` ingest response the platform returns `422` with an
|
|
1088
|
-
* `error` string. For pipeline failures (per-row Oban job exceptions),
|
|
1089
|
-
* the DataActivationLog row's `rows_ingested` will be lower than the
|
|
1090
|
-
* submitted count; per-row diagnostics live in the Oban job table
|
|
1091
|
-
* (`oban_jobs.errors`) keyed by `batch_id`. There is no `error.json`
|
|
1092
|
-
* artifact on the DAC path — that convention is workflow-only.
|
|
1033
|
+
* Trigger a manual run of a Data Activation Client
|
|
1093
1034
|
*
|
|
1035
|
+
* Enqueues a one-off fetch/ingest pipeline run. Empty body or omitted `tool_call` runs with the DAC's persisted `tool_call`. Supplying a `tool_call` map applies a one-shot polymorphic override for this run only — the persisted DAC record is not modified.
|
|
1094
1036
|
*/
|
|
1095
|
-
export const
|
|
1037
|
+
export const platformApiDataActivationClientControllerRunManually = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerRunManuallyData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDataActivationClientControllerRunManuallyResponses, PlatformApiDataActivationClientControllerRunManuallyErrors, ThrowOnError>({
|
|
1096
1038
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1097
|
-
body:
|
|
1098
|
-
path:
|
|
1039
|
+
body: v.optional(vPlatformApiDataActivationClientControllerRunManuallyBody),
|
|
1040
|
+
path: vPlatformApiDataActivationClientControllerRunManuallyPath,
|
|
1099
1041
|
query: v.optional(v.never())
|
|
1100
1042
|
}), data),
|
|
1101
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1043
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerRunManuallyResponse, data),
|
|
1102
1044
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1103
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/
|
|
1045
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/run-manually',
|
|
1104
1046
|
...options,
|
|
1105
1047
|
headers: {
|
|
1106
1048
|
'Content-Type': 'application/json',
|
|
@@ -1109,76 +1051,53 @@ export const platformApiDataActivationClientControllerIngest = <ThrowOnError ext
|
|
|
1109
1051
|
});
|
|
1110
1052
|
|
|
1111
1053
|
/**
|
|
1112
|
-
*
|
|
1054
|
+
* Delete an AI agent
|
|
1113
1055
|
*
|
|
1114
|
-
*
|
|
1056
|
+
* Deletes an AI agent. Returns 409 if the agent is attached to a workflow.
|
|
1115
1057
|
*/
|
|
1116
|
-
export const
|
|
1058
|
+
export const platformApiAiAgentControllerDelete = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAiAgentControllerDeleteData, ThrowOnError>) => (options.client ?? client).delete<PlatformApiAiAgentControllerDeleteResponses, PlatformApiAiAgentControllerDeleteErrors, ThrowOnError>({
|
|
1117
1059
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1118
1060
|
body: v.optional(v.never()),
|
|
1119
|
-
path:
|
|
1061
|
+
path: vPlatformApiAiAgentControllerDeletePath,
|
|
1120
1062
|
query: v.optional(v.never())
|
|
1121
1063
|
}), data),
|
|
1122
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1064
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAiAgentControllerDeleteResponse, data),
|
|
1123
1065
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1124
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1066
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/ai-agents/{id}',
|
|
1125
1067
|
...options
|
|
1126
1068
|
});
|
|
1127
1069
|
|
|
1128
1070
|
/**
|
|
1129
|
-
*
|
|
1130
|
-
*
|
|
1131
|
-
* Executes the workflow for all dataset records matching the SQL WHERE clause.
|
|
1132
|
-
* Creates sampled events and enqueues run_workflow jobs. Returns the batch ID
|
|
1133
|
-
* and enqueued count. A WorkflowRunLog is created to track batch-level
|
|
1134
|
-
* progress, polled by a daily DynamicCron.
|
|
1135
|
-
*
|
|
1136
|
-
* ## Per-step artifacts (audit trail)
|
|
1137
|
-
*
|
|
1138
|
-
* Each per-row WorkflowExecutionLog (WEL) writes a fixed set of JSON
|
|
1139
|
-
* artifacts to the datalake's regulated cloud-storage bucket. The path is
|
|
1140
|
-
* deterministic and convention-driven — there is no separate listing
|
|
1141
|
-
* endpoint:
|
|
1142
|
-
*
|
|
1143
|
-
* workflows/{workflow_id}/executions/{wel_id}/event.json
|
|
1144
|
-
* workflows/{workflow_id}/executions/{wel_id}/filter.json
|
|
1145
|
-
* workflows/{workflow_id}/executions/{wel_id}/enrichment.json
|
|
1146
|
-
* workflows/{workflow_id}/executions/{wel_id}/error.json # only on failure
|
|
1147
|
-
*
|
|
1148
|
-
* | File | Written by stage | Body |
|
|
1149
|
-
* | ----------------- | -------------------------------------- | ------------------------------------------------------------------ |
|
|
1150
|
-
* | `event.json` | context build | full WorkflowContext (event_dataset, mdm_output, additional_context)|
|
|
1151
|
-
* | `filter.json` | filter eval (both pass and reject) | `{filter_expression, filter_result: bool}` |
|
|
1152
|
-
* | `enrichment.json` | enrichment terminal (success / skip / fail) | `{status: "completed" \| "failed" \| "skipped", <agent_slug>: ...}` |
|
|
1153
|
-
* | `error.json` | ANY pipeline failure | `{stage, error_code, ai_agent_slug, error_message, detail}` |
|
|
1154
|
-
*
|
|
1155
|
-
* `error.json`'s presence IS the failure signal — `WEL.error_message`
|
|
1156
|
-
* carries only a code-grade summary; the rich URL/HTTP-status/transport
|
|
1157
|
-
* detail lives ONLY in `error.json["detail"]`. Engineers debugging a
|
|
1158
|
-
* failed run should download `error.json` for full context.
|
|
1159
|
-
*
|
|
1160
|
-
* ### Fetching an artifact
|
|
1161
|
-
*
|
|
1162
|
-
* Use the standard datalake download-link endpoint
|
|
1163
|
-
* (`POST /api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/download-link`)
|
|
1164
|
-
* with `bucket = <regulated bucket>` and the convention key above. Example:
|
|
1165
|
-
*
|
|
1166
|
-
* POST /api/v1/tenants/acme/datalakes/clinical/download-link
|
|
1167
|
-
* { "bucket": "clinical-regulated", "key": "workflows/<wf_id>/executions/<wel_id>/error.json" }
|
|
1071
|
+
* Get an AI agent
|
|
1168
1072
|
*
|
|
1169
|
-
*
|
|
1170
|
-
|
|
1073
|
+
* Returns a single AI agent by ID.
|
|
1074
|
+
*/
|
|
1075
|
+
export const platformApiAiAgentControllerShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAiAgentControllerShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAiAgentControllerShowResponses, PlatformApiAiAgentControllerShowErrors, ThrowOnError>({
|
|
1076
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1077
|
+
body: v.optional(v.never()),
|
|
1078
|
+
path: vPlatformApiAiAgentControllerShowPath,
|
|
1079
|
+
query: v.optional(v.never())
|
|
1080
|
+
}), data),
|
|
1081
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAiAgentControllerShowResponse, data),
|
|
1082
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1083
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/ai-agents/{id}',
|
|
1084
|
+
...options
|
|
1085
|
+
});
|
|
1086
|
+
|
|
1087
|
+
/**
|
|
1088
|
+
* Replace an AI agent
|
|
1171
1089
|
*
|
|
1090
|
+
* Replaces an AI agent with the full resource body. PUT semantics — all required fields must be present.
|
|
1172
1091
|
*/
|
|
1173
|
-
export const
|
|
1092
|
+
export const platformApiAiAgentControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAiAgentControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiAiAgentControllerUpdateResponses, PlatformApiAiAgentControllerUpdateErrors, ThrowOnError>({
|
|
1174
1093
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1175
|
-
body:
|
|
1176
|
-
path:
|
|
1094
|
+
body: v.optional(vPlatformApiAiAgentControllerUpdateBody),
|
|
1095
|
+
path: vPlatformApiAiAgentControllerUpdatePath,
|
|
1177
1096
|
query: v.optional(v.never())
|
|
1178
1097
|
}), data),
|
|
1179
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1098
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAiAgentControllerUpdateResponse, data),
|
|
1180
1099
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1181
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1100
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/ai-agents/{id}',
|
|
1182
1101
|
...options,
|
|
1183
1102
|
headers: {
|
|
1184
1103
|
'Content-Type': 'application/json',
|
|
@@ -1187,53 +1106,67 @@ export const platformApiAgenticWorkflowOperationsControllerRunWorkflow = <ThrowO
|
|
|
1187
1106
|
});
|
|
1188
1107
|
|
|
1189
1108
|
/**
|
|
1190
|
-
*
|
|
1109
|
+
* Confirm a user (admin bypass)
|
|
1110
|
+
*
|
|
1111
|
+
* Marks a user account as confirmed without requiring an email-confirmation
|
|
1112
|
+
* token. Idempotent — confirming an already-confirmed user is a 200 no-op
|
|
1113
|
+
* that returns the existing `confirmed_at` timestamp.
|
|
1114
|
+
*
|
|
1115
|
+
* Wraps `Accounts.confirm_user!/1` verbatim — exactly the primitive that
|
|
1116
|
+
* backs the dev/admin email-confirm path in the LiveView UI. **Zero new
|
|
1117
|
+
* business logic.**
|
|
1118
|
+
*
|
|
1119
|
+
* Powerful primitive: bypasses the regular email-confirmation flow. Every
|
|
1120
|
+
* successful call is structured-logged with `caller_user_id` and
|
|
1121
|
+
* `target_user_id` for forensic trail.
|
|
1122
|
+
*
|
|
1123
|
+
* **Requires platform-admin authentication** (`User.role == :admin`).
|
|
1191
1124
|
*
|
|
1192
|
-
* Deletes a workflow and all associated actions, context datasets, and AI agent attachments.
|
|
1193
1125
|
*/
|
|
1194
|
-
export const
|
|
1126
|
+
export const platformApiAdminControllerConfirmUser = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAdminControllerConfirmUserData, ThrowOnError>) => (options.client ?? client).put<PlatformApiAdminControllerConfirmUserResponses, PlatformApiAdminControllerConfirmUserErrors, ThrowOnError>({
|
|
1195
1127
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1196
1128
|
body: v.optional(v.never()),
|
|
1197
|
-
path:
|
|
1129
|
+
path: vPlatformApiAdminControllerConfirmUserPath,
|
|
1198
1130
|
query: v.optional(v.never())
|
|
1199
1131
|
}), data),
|
|
1200
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1201
|
-
security: [{
|
|
1202
|
-
url: '/api/v1/
|
|
1132
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAdminControllerConfirmUserResponse, data),
|
|
1133
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1134
|
+
url: '/api/v1/admin/users/{id}/confirm',
|
|
1203
1135
|
...options
|
|
1204
1136
|
});
|
|
1205
1137
|
|
|
1206
1138
|
/**
|
|
1207
|
-
*
|
|
1139
|
+
* List connected apps
|
|
1208
1140
|
*
|
|
1209
|
-
* Returns a
|
|
1141
|
+
* Returns a paginated list of connected apps for the authenticated tenant.
|
|
1210
1142
|
*/
|
|
1211
|
-
export const
|
|
1143
|
+
export const platformApiConnectedAppMgmtControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppMgmtControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiConnectedAppMgmtControllerIndexResponses, PlatformApiConnectedAppMgmtControllerIndexErrors, ThrowOnError>({
|
|
1144
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1212
1145
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1213
1146
|
body: v.optional(v.never()),
|
|
1214
|
-
path:
|
|
1215
|
-
query: v.optional(
|
|
1147
|
+
path: vPlatformApiConnectedAppMgmtControllerIndexPath,
|
|
1148
|
+
query: v.optional(vPlatformApiConnectedAppMgmtControllerIndexQuery)
|
|
1216
1149
|
}), data),
|
|
1217
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1150
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppMgmtControllerIndexResponse, data),
|
|
1218
1151
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1219
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1152
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/connected-apps',
|
|
1220
1153
|
...options
|
|
1221
1154
|
});
|
|
1222
1155
|
|
|
1223
1156
|
/**
|
|
1224
|
-
*
|
|
1157
|
+
* Create a connected app
|
|
1225
1158
|
*
|
|
1226
|
-
*
|
|
1159
|
+
* Creates a new connected app with automatic API key provisioning.
|
|
1227
1160
|
*/
|
|
1228
|
-
export const
|
|
1161
|
+
export const platformApiConnectedAppMgmtControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppMgmtControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiConnectedAppMgmtControllerCreateResponses, PlatformApiConnectedAppMgmtControllerCreateErrors, ThrowOnError>({
|
|
1229
1162
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1230
|
-
body: v.optional(
|
|
1231
|
-
path:
|
|
1163
|
+
body: v.optional(vPlatformApiConnectedAppMgmtControllerCreateBody),
|
|
1164
|
+
path: vPlatformApiConnectedAppMgmtControllerCreatePath,
|
|
1232
1165
|
query: v.optional(v.never())
|
|
1233
1166
|
}), data),
|
|
1234
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1167
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppMgmtControllerCreateResponse, data),
|
|
1235
1168
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1236
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1169
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/connected-apps',
|
|
1237
1170
|
...options,
|
|
1238
1171
|
headers: {
|
|
1239
1172
|
'Content-Type': 'application/json',
|
|
@@ -1242,20 +1175,62 @@ export const platformApiAgenticWorkflowControllerUpdate = <ThrowOnError extends
|
|
|
1242
1175
|
});
|
|
1243
1176
|
|
|
1244
1177
|
/**
|
|
1245
|
-
*
|
|
1178
|
+
* Revoke current session
|
|
1179
|
+
*
|
|
1180
|
+
* Revokes the current Bearer session — deactivates the session and deletes
|
|
1181
|
+
* the linked UserToken. The Bearer token becomes immediately invalid.
|
|
1182
|
+
*
|
|
1183
|
+
* Only works with `Authorization: Bearer <session_token>` (not X-API-Key).
|
|
1184
|
+
*
|
|
1185
|
+
* **Requires Bearer authentication.**
|
|
1246
1186
|
*
|
|
1247
|
-
* Replaces a data source with the full resource body. PUT semantics — all required fields must be present.
|
|
1248
1187
|
*/
|
|
1249
|
-
export const
|
|
1250
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1188
|
+
export const platformApiSessionControllerDelete = <ThrowOnError extends boolean = false>(options?: Options<PlatformApiSessionControllerDeleteData, ThrowOnError>) => (options?.client ?? client).delete<PlatformApiSessionControllerDeleteResponses, PlatformApiSessionControllerDeleteErrors, ThrowOnError>({
|
|
1251
1189
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1252
|
-
body: v.optional(
|
|
1253
|
-
path:
|
|
1254
|
-
query: v.optional(
|
|
1190
|
+
body: v.optional(v.never()),
|
|
1191
|
+
path: v.optional(v.never()),
|
|
1192
|
+
query: v.optional(v.never())
|
|
1255
1193
|
}), data),
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1194
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1195
|
+
url: '/api/v1/sessions',
|
|
1196
|
+
...options
|
|
1197
|
+
});
|
|
1198
|
+
|
|
1199
|
+
/**
|
|
1200
|
+
* Create a session (human auth)
|
|
1201
|
+
*
|
|
1202
|
+
* Exchange user credentials for a Bearer session token.
|
|
1203
|
+
*
|
|
1204
|
+
* Send `{email, password}` (with optional `tenant_slug`) to authenticate a
|
|
1205
|
+
* human user and receive a session token. Use the returned `session_token`
|
|
1206
|
+
* as `Authorization: Bearer <session_token>` on subsequent API requests.
|
|
1207
|
+
*
|
|
1208
|
+
* When `tenant_slug` is **omitted**, returns a tenant-less Bearer for
|
|
1209
|
+
* pre-tenant flows: admin operations under `/api/v1/admin/...` and creating
|
|
1210
|
+
* your first tenant via `POST /api/v1/tenants`. Tenant-scoped routes will
|
|
1211
|
+
* reject such tokens with 403.
|
|
1212
|
+
*
|
|
1213
|
+
* When `tenant_slug` is **provided**, returns a tenant-scoped Bearer with
|
|
1214
|
+
* the caller's membership role (or 401 if the user has no membership in
|
|
1215
|
+
* that tenant).
|
|
1216
|
+
*
|
|
1217
|
+
* Optionally specify `expires_in` (seconds) to control session duration.
|
|
1218
|
+
* Default: 86400 (24 hours). Maximum: 2592000 (30 days).
|
|
1219
|
+
*
|
|
1220
|
+
* For M2M (server-to-server) authentication, use `X-API-Key` header directly
|
|
1221
|
+
* on each request instead — no session exchange needed.
|
|
1222
|
+
*
|
|
1223
|
+
* **No authentication required** — this endpoint authenticates the caller.
|
|
1224
|
+
*
|
|
1225
|
+
*/
|
|
1226
|
+
export const platformApiSessionControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiSessionControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiSessionControllerCreateResponses, PlatformApiSessionControllerCreateErrors, ThrowOnError>({
|
|
1227
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1228
|
+
body: vPlatformApiSessionControllerCreateBody,
|
|
1229
|
+
path: v.optional(v.never()),
|
|
1230
|
+
query: v.optional(v.never())
|
|
1231
|
+
}), data),
|
|
1232
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiSessionControllerCreateResponse, data),
|
|
1233
|
+
url: '/api/v1/sessions',
|
|
1259
1234
|
...options,
|
|
1260
1235
|
headers: {
|
|
1261
1236
|
'Content-Type': 'application/json',
|
|
@@ -1264,77 +1239,80 @@ export const platformApiDataSourceControllerUpdate = <ThrowOnError extends boole
|
|
|
1264
1239
|
});
|
|
1265
1240
|
|
|
1266
1241
|
/**
|
|
1267
|
-
*
|
|
1242
|
+
* Start or restart refresh polling for a batch run log
|
|
1268
1243
|
*
|
|
1269
|
-
*
|
|
1244
|
+
* Creates a DynamicCron job to poll this batch. Idempotent — if cron already exists, it's a no-op.
|
|
1270
1245
|
*/
|
|
1271
|
-
export const
|
|
1246
|
+
export const platformApiAgenticWorkflowOperationsControllerBatchLogStart = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerBatchLogStartData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAgenticWorkflowOperationsControllerBatchLogStartResponses, PlatformApiAgenticWorkflowOperationsControllerBatchLogStartErrors, ThrowOnError>({
|
|
1272
1247
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1273
1248
|
body: v.optional(v.never()),
|
|
1274
|
-
path:
|
|
1249
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerBatchLogStartPath,
|
|
1275
1250
|
query: v.optional(v.never())
|
|
1276
1251
|
}), data),
|
|
1277
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1252
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerBatchLogStartResponse, data),
|
|
1278
1253
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1279
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1254
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/batch-logs/{id}/start',
|
|
1280
1255
|
...options
|
|
1281
1256
|
});
|
|
1282
1257
|
|
|
1283
1258
|
/**
|
|
1284
|
-
*
|
|
1259
|
+
* Update message tracking fields for a page
|
|
1260
|
+
*
|
|
1261
|
+
* Updates tracking timestamps (opened_at, form_submitted_at) on the message
|
|
1262
|
+
* linked to a page token. Called by the connected app when a user opens a page
|
|
1263
|
+
* or submits a form.
|
|
1264
|
+
*
|
|
1265
|
+
* **Requires X-API-Key authentication.**
|
|
1285
1266
|
*
|
|
1286
|
-
* Returns a paginated list of datalakes for the authenticated tenant.
|
|
1287
1267
|
*/
|
|
1288
|
-
export const
|
|
1289
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1268
|
+
export const platformApiConnectedAppControllerUpdateMessageTracking = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppControllerUpdateMessageTrackingData, ThrowOnError>) => (options.client ?? client).patch<PlatformApiConnectedAppControllerUpdateMessageTrackingResponses, PlatformApiConnectedAppControllerUpdateMessageTrackingErrors, ThrowOnError>({
|
|
1290
1269
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1291
|
-
body:
|
|
1292
|
-
path:
|
|
1293
|
-
query: v.optional(
|
|
1270
|
+
body: vPlatformApiConnectedAppControllerUpdateMessageTrackingBody,
|
|
1271
|
+
path: vPlatformApiConnectedAppControllerUpdateMessageTrackingPath,
|
|
1272
|
+
query: v.optional(v.never())
|
|
1294
1273
|
}), data),
|
|
1295
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1274
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppControllerUpdateMessageTrackingResponse, data),
|
|
1296
1275
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1297
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1298
|
-
...options
|
|
1276
|
+
url: '/api/v1/tenants/{tenant_slug}/connected-apps/{slug}/update-message-tracking',
|
|
1277
|
+
...options,
|
|
1278
|
+
headers: {
|
|
1279
|
+
'Content-Type': 'application/json',
|
|
1280
|
+
...options.headers
|
|
1281
|
+
}
|
|
1299
1282
|
});
|
|
1300
1283
|
|
|
1301
1284
|
/**
|
|
1302
|
-
*
|
|
1285
|
+
* List agentic workflows
|
|
1303
1286
|
*
|
|
1304
|
-
*
|
|
1287
|
+
* Returns a paginated list of workflows for a datalake.
|
|
1305
1288
|
*/
|
|
1306
|
-
export const
|
|
1289
|
+
export const platformApiAgenticWorkflowControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowControllerIndexResponses, PlatformApiAgenticWorkflowControllerIndexErrors, ThrowOnError>({
|
|
1307
1290
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1308
1291
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1309
|
-
body: v.optional(
|
|
1310
|
-
path:
|
|
1311
|
-
query: v.optional(
|
|
1292
|
+
body: v.optional(v.never()),
|
|
1293
|
+
path: vPlatformApiAgenticWorkflowControllerIndexPath,
|
|
1294
|
+
query: v.optional(vPlatformApiAgenticWorkflowControllerIndexQuery)
|
|
1312
1295
|
}), data),
|
|
1313
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1296
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowControllerIndexResponse, data),
|
|
1314
1297
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1315
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes',
|
|
1316
|
-
...options
|
|
1317
|
-
headers: {
|
|
1318
|
-
'Content-Type': 'application/json',
|
|
1319
|
-
...options.headers
|
|
1320
|
-
}
|
|
1298
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/agentic-workflows',
|
|
1299
|
+
...options
|
|
1321
1300
|
});
|
|
1322
1301
|
|
|
1323
1302
|
/**
|
|
1324
|
-
* Create
|
|
1303
|
+
* Create an agentic workflow
|
|
1325
1304
|
*
|
|
1326
|
-
*
|
|
1305
|
+
* Creates a new workflow. Attach AI agents via the `ai_agents` array.
|
|
1327
1306
|
*/
|
|
1328
|
-
export const
|
|
1329
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1307
|
+
export const platformApiAgenticWorkflowControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAgenticWorkflowControllerCreateResponses, PlatformApiAgenticWorkflowControllerCreateErrors, ThrowOnError>({
|
|
1330
1308
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1331
|
-
body:
|
|
1332
|
-
path:
|
|
1333
|
-
query: v.optional(
|
|
1309
|
+
body: v.optional(vPlatformApiAgenticWorkflowControllerCreateBody),
|
|
1310
|
+
path: vPlatformApiAgenticWorkflowControllerCreatePath,
|
|
1311
|
+
query: v.optional(v.never())
|
|
1334
1312
|
}), data),
|
|
1335
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1313
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowControllerCreateResponse, data),
|
|
1336
1314
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1337
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1315
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/agentic-workflows',
|
|
1338
1316
|
...options,
|
|
1339
1317
|
headers: {
|
|
1340
1318
|
'Content-Type': 'application/json',
|
|
@@ -1343,121 +1321,105 @@ export const platformApiDatalakeControllerCreateUploadLink = <ThrowOnError exten
|
|
|
1343
1321
|
});
|
|
1344
1322
|
|
|
1345
1323
|
/**
|
|
1346
|
-
*
|
|
1324
|
+
* Get DAC dataset metadata
|
|
1347
1325
|
*
|
|
1348
|
-
*
|
|
1326
|
+
* Returns a markdown document describing the fields of each dataset connected to this data activation client via its interoperability contracts.
|
|
1349
1327
|
*/
|
|
1350
|
-
export const
|
|
1328
|
+
export const platformApiDataActivationClientControllerMetadata = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerMetadataData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDataActivationClientControllerMetadataResponses, PlatformApiDataActivationClientControllerMetadataErrors, ThrowOnError>({
|
|
1351
1329
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1352
|
-
body:
|
|
1353
|
-
path:
|
|
1330
|
+
body: v.optional(v.never()),
|
|
1331
|
+
path: vPlatformApiDataActivationClientControllerMetadataPath,
|
|
1354
1332
|
query: v.optional(v.never())
|
|
1355
1333
|
}), data),
|
|
1356
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1334
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerMetadataResponse, data),
|
|
1357
1335
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1358
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1359
|
-
...options
|
|
1360
|
-
headers: {
|
|
1361
|
-
'Content-Type': 'application/json',
|
|
1362
|
-
...options.headers
|
|
1363
|
-
}
|
|
1336
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/metadata',
|
|
1337
|
+
...options
|
|
1364
1338
|
});
|
|
1365
1339
|
|
|
1366
1340
|
/**
|
|
1367
|
-
*
|
|
1368
|
-
*
|
|
1369
|
-
* Accepts a pending invitation addressed to the authenticated user, creating
|
|
1370
|
-
* a `Membership` and deleting the invitation. Mirrors the LiveView flow at
|
|
1371
|
-
* `/app/users/tenant-invitations` → "Accept" button. Wraps
|
|
1372
|
-
* `Tenants.accept_invitation!/2` verbatim.
|
|
1373
|
-
*
|
|
1374
|
-
* The function-level guard `get_invitation_by_user!/2` ensures the invitation
|
|
1375
|
-
* is addressed to the caller — cross-user acceptance returns 404.
|
|
1376
|
-
*
|
|
1377
|
-
* Requires any Bearer (the recipient often has only a tenant-less Bearer at
|
|
1378
|
-
* this point — they just signed up and haven't joined a tenant yet).
|
|
1341
|
+
* Stop refresh polling for a batch run log
|
|
1379
1342
|
*
|
|
1343
|
+
* Deletes the DynamicCron job that polls this batch. The batch log is NOT deleted.
|
|
1380
1344
|
*/
|
|
1381
|
-
export const
|
|
1345
|
+
export const platformApiAgenticWorkflowOperationsControllerBatchLogStop = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerBatchLogStopData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAgenticWorkflowOperationsControllerBatchLogStopResponses, PlatformApiAgenticWorkflowOperationsControllerBatchLogStopErrors, ThrowOnError>({
|
|
1382
1346
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1383
1347
|
body: v.optional(v.never()),
|
|
1384
|
-
path:
|
|
1348
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerBatchLogStopPath,
|
|
1385
1349
|
query: v.optional(v.never())
|
|
1386
1350
|
}), data),
|
|
1387
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1388
|
-
security: [{
|
|
1389
|
-
url: '/api/v1/
|
|
1351
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerBatchLogStopResponse, data),
|
|
1352
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1353
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/batch-logs/{id}/stop',
|
|
1390
1354
|
...options
|
|
1391
1355
|
});
|
|
1392
1356
|
|
|
1393
1357
|
/**
|
|
1394
|
-
*
|
|
1358
|
+
* List processing logs for a Data Activation Client
|
|
1395
1359
|
*
|
|
1396
|
-
* Returns a
|
|
1360
|
+
* Returns a Flop-paginated list of `DataActivationLog` rows for this DAC. One log per `(batch_id, dataset_table)` — a single run produces multiple log rows, one per dataset table the DAC writes into. Filter or group client-side on `batch_id` to reconstruct a batch-level view.
|
|
1397
1361
|
*/
|
|
1398
|
-
export const
|
|
1362
|
+
export const platformApiDataActivationClientControllerLogsIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerLogsIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDataActivationClientControllerLogsIndexResponses, PlatformApiDataActivationClientControllerLogsIndexErrors, ThrowOnError>({
|
|
1363
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1399
1364
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1400
1365
|
body: v.optional(v.never()),
|
|
1401
|
-
path:
|
|
1402
|
-
query: v.optional(
|
|
1366
|
+
path: vPlatformApiDataActivationClientControllerLogsIndexPath,
|
|
1367
|
+
query: v.optional(vPlatformApiDataActivationClientControllerLogsIndexQuery)
|
|
1403
1368
|
}), data),
|
|
1404
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1369
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerLogsIndexResponse, data),
|
|
1405
1370
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1406
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1371
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients/{slug}/logs',
|
|
1407
1372
|
...options
|
|
1408
1373
|
});
|
|
1409
1374
|
|
|
1410
1375
|
/**
|
|
1411
|
-
*
|
|
1376
|
+
* Delete a tool
|
|
1412
1377
|
*
|
|
1413
|
-
*
|
|
1378
|
+
* Deletes a tool. Returns 409 if the tool is referenced by another resource.
|
|
1414
1379
|
*/
|
|
1415
|
-
export const
|
|
1416
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1380
|
+
export const platformApiToolControllerDelete = <ThrowOnError extends boolean = false>(options: Options<PlatformApiToolControllerDeleteData, ThrowOnError>) => (options.client ?? client).delete<PlatformApiToolControllerDeleteResponses, PlatformApiToolControllerDeleteErrors, ThrowOnError>({
|
|
1417
1381
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1418
1382
|
body: v.optional(v.never()),
|
|
1419
|
-
path:
|
|
1420
|
-
query: v.optional(
|
|
1383
|
+
path: vPlatformApiToolControllerDeletePath,
|
|
1384
|
+
query: v.optional(v.never())
|
|
1421
1385
|
}), data),
|
|
1422
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1386
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiToolControllerDeleteResponse, data),
|
|
1423
1387
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1424
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1388
|
+
url: '/api/v1/tenants/{tenant_slug}/tools/{id}',
|
|
1425
1389
|
...options
|
|
1426
1390
|
});
|
|
1427
1391
|
|
|
1428
1392
|
/**
|
|
1429
|
-
*
|
|
1393
|
+
* Get a tool
|
|
1430
1394
|
*
|
|
1431
|
-
* Returns a
|
|
1395
|
+
* Returns a single tool by ID.
|
|
1432
1396
|
*/
|
|
1433
|
-
export const
|
|
1434
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1397
|
+
export const platformApiToolControllerShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiToolControllerShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiToolControllerShowResponses, PlatformApiToolControllerShowErrors, ThrowOnError>({
|
|
1435
1398
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1436
1399
|
body: v.optional(v.never()),
|
|
1437
|
-
path:
|
|
1438
|
-
query: v.optional(
|
|
1400
|
+
path: vPlatformApiToolControllerShowPath,
|
|
1401
|
+
query: v.optional(v.never())
|
|
1439
1402
|
}), data),
|
|
1440
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1403
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiToolControllerShowResponse, data),
|
|
1441
1404
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1442
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1405
|
+
url: '/api/v1/tenants/{tenant_slug}/tools/{id}',
|
|
1443
1406
|
...options
|
|
1444
1407
|
});
|
|
1445
1408
|
|
|
1446
1409
|
/**
|
|
1447
|
-
*
|
|
1410
|
+
* Replace a tool
|
|
1448
1411
|
*
|
|
1449
|
-
*
|
|
1412
|
+
* Replaces a tool with the full resource body. PUT semantics — all required fields must be present.
|
|
1450
1413
|
*/
|
|
1451
|
-
export const
|
|
1452
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1414
|
+
export const platformApiToolControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiToolControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiToolControllerUpdateResponses, PlatformApiToolControllerUpdateErrors, ThrowOnError>({
|
|
1453
1415
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1454
|
-
body: v.optional(
|
|
1455
|
-
path:
|
|
1456
|
-
query: v.optional(
|
|
1416
|
+
body: v.optional(vPlatformApiToolControllerUpdateBody),
|
|
1417
|
+
path: vPlatformApiToolControllerUpdatePath,
|
|
1418
|
+
query: v.optional(v.never())
|
|
1457
1419
|
}), data),
|
|
1458
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1420
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiToolControllerUpdateResponse, data),
|
|
1459
1421
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1460
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1422
|
+
url: '/api/v1/tenants/{tenant_slug}/tools/{id}',
|
|
1461
1423
|
...options,
|
|
1462
1424
|
headers: {
|
|
1463
1425
|
'Content-Type': 'application/json',
|
|
@@ -1466,62 +1428,93 @@ export const platformApiInteroperabilityContractControllerCreate = <ThrowOnError
|
|
|
1466
1428
|
});
|
|
1467
1429
|
|
|
1468
1430
|
/**
|
|
1469
|
-
*
|
|
1431
|
+
* Get workflow metadata
|
|
1470
1432
|
*
|
|
1471
|
-
* Returns
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1433
|
+
* Returns a markdown document describing the workflow's variable pipeline — available variables at each node (event dataset, MDM, context datasets, enrichment, filter, decision, actions).
|
|
1434
|
+
*/
|
|
1435
|
+
export const platformApiAgenticWorkflowControllerMetadata = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowControllerMetadataData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowControllerMetadataResponses, PlatformApiAgenticWorkflowControllerMetadataErrors, ThrowOnError>({
|
|
1436
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1437
|
+
body: v.optional(v.never()),
|
|
1438
|
+
path: vPlatformApiAgenticWorkflowControllerMetadataPath,
|
|
1439
|
+
query: v.optional(v.never())
|
|
1440
|
+
}), data),
|
|
1441
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowControllerMetadataResponse, data),
|
|
1442
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1443
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/agentic-workflows/{id}/metadata',
|
|
1444
|
+
...options
|
|
1445
|
+
});
|
|
1446
|
+
|
|
1447
|
+
/**
|
|
1448
|
+
* Health check
|
|
1476
1449
|
*
|
|
1477
|
-
*
|
|
1478
|
-
*
|
|
1450
|
+
* Public health check endpoint that returns:
|
|
1451
|
+
* - Application version
|
|
1452
|
+
* - Database connectivity status (SELECT 1 query)
|
|
1453
|
+
* - Current timestamp
|
|
1454
|
+
*
|
|
1455
|
+
* **No authentication required.**
|
|
1479
1456
|
*
|
|
1480
1457
|
*/
|
|
1481
|
-
export const
|
|
1458
|
+
export const platformApiPingControllerPing = <ThrowOnError extends boolean = false>(options?: Options<PlatformApiPingControllerPingData, ThrowOnError>) => (options?.client ?? client).get<PlatformApiPingControllerPingResponses, PlatformApiPingControllerPingErrors, ThrowOnError>({
|
|
1482
1459
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1483
1460
|
body: v.optional(v.never()),
|
|
1484
1461
|
path: v.optional(v.never()),
|
|
1485
1462
|
query: v.optional(v.never())
|
|
1486
1463
|
}), data),
|
|
1487
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1488
|
-
|
|
1489
|
-
url: '/api/v1/invitations',
|
|
1464
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiPingControllerPingResponse, data),
|
|
1465
|
+
url: '/api/ping',
|
|
1490
1466
|
...options
|
|
1491
1467
|
});
|
|
1492
1468
|
|
|
1493
1469
|
/**
|
|
1494
|
-
*
|
|
1470
|
+
* Sync routes
|
|
1495
1471
|
*
|
|
1496
|
-
*
|
|
1472
|
+
* Enqueues a background job to fetch routes from the connected app's `/.well-known/routes.json` endpoint and update the stored routes.
|
|
1497
1473
|
*/
|
|
1498
|
-
export const
|
|
1474
|
+
export const platformApiConnectedAppMgmtControllerSyncRoutes = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppMgmtControllerSyncRoutesData, ThrowOnError>) => (options.client ?? client).post<PlatformApiConnectedAppMgmtControllerSyncRoutesResponses, PlatformApiConnectedAppMgmtControllerSyncRoutesErrors, ThrowOnError>({
|
|
1475
|
+
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1476
|
+
body: v.optional(v.never()),
|
|
1477
|
+
path: vPlatformApiConnectedAppMgmtControllerSyncRoutesPath,
|
|
1478
|
+
query: v.optional(v.never())
|
|
1479
|
+
}), data),
|
|
1480
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppMgmtControllerSyncRoutesResponse, data),
|
|
1481
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1482
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/connected-apps/{id}/sync-routes',
|
|
1483
|
+
...options
|
|
1484
|
+
});
|
|
1485
|
+
|
|
1486
|
+
/**
|
|
1487
|
+
* List data activation clients
|
|
1488
|
+
*
|
|
1489
|
+
* Returns a paginated list of DACs for the datalake in the path.
|
|
1490
|
+
*/
|
|
1491
|
+
export const platformApiDataActivationClientControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDataActivationClientControllerIndexResponses, PlatformApiDataActivationClientControllerIndexErrors, ThrowOnError>({
|
|
1499
1492
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1500
1493
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1501
1494
|
body: v.optional(v.never()),
|
|
1502
|
-
path:
|
|
1503
|
-
query: v.optional(
|
|
1495
|
+
path: vPlatformApiDataActivationClientControllerIndexPath,
|
|
1496
|
+
query: v.optional(vPlatformApiDataActivationClientControllerIndexQuery)
|
|
1504
1497
|
}), data),
|
|
1505
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1498
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerIndexResponse, data),
|
|
1506
1499
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1507
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1500
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients',
|
|
1508
1501
|
...options
|
|
1509
1502
|
});
|
|
1510
1503
|
|
|
1511
1504
|
/**
|
|
1512
|
-
* Create a
|
|
1505
|
+
* Create a data activation client
|
|
1513
1506
|
*
|
|
1514
|
-
* Creates a new
|
|
1507
|
+
* Creates a new DAC. `slug` is auto-generated from `name`. `tool_call` is a polymorphic object whose shape depends on the `tool_call_type` discriminator — see `tool_call_type` enum for valid variants (RESTCall, SQLQueryCall, SFTPCall, SharePointExcelCall, AWSLambdaCall, ManualUploadCall, S3Call).
|
|
1515
1508
|
*/
|
|
1516
|
-
export const
|
|
1509
|
+
export const platformApiDataActivationClientControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDataActivationClientControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDataActivationClientControllerCreateResponses, PlatformApiDataActivationClientControllerCreateErrors, ThrowOnError>({
|
|
1517
1510
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1518
|
-
body: v.optional(
|
|
1519
|
-
path:
|
|
1511
|
+
body: v.optional(vPlatformApiDataActivationClientControllerCreateBody),
|
|
1512
|
+
path: vPlatformApiDataActivationClientControllerCreatePath,
|
|
1520
1513
|
query: v.optional(v.never())
|
|
1521
1514
|
}), data),
|
|
1522
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1515
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDataActivationClientControllerCreateResponse, data),
|
|
1523
1516
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1524
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/
|
|
1517
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/data-activation-clients',
|
|
1525
1518
|
...options,
|
|
1526
1519
|
headers: {
|
|
1527
1520
|
'Content-Type': 'application/json',
|
|
@@ -1530,55 +1523,60 @@ export const platformApiGenericTableControllerCreate = <ThrowOnError extends boo
|
|
|
1530
1523
|
});
|
|
1531
1524
|
|
|
1532
1525
|
/**
|
|
1533
|
-
*
|
|
1526
|
+
* Sign up a new user
|
|
1534
1527
|
*
|
|
1535
|
-
*
|
|
1528
|
+
* Register a new user account. Mirrors the `/auth/register` LiveView form
|
|
1529
|
+
* submission shape — wraps `Accounts.register_user/2` verbatim with no
|
|
1530
|
+
* business-logic divergence.
|
|
1536
1531
|
*
|
|
1537
|
-
*
|
|
1538
|
-
*
|
|
1532
|
+
* The created user is **unconfirmed** and has **no tenant memberships**. To
|
|
1533
|
+
* obtain a Bearer token, the user must first be confirmed (via the email
|
|
1534
|
+
* confirmation flow in production, or via `PUT /api/v1/admin/users/:id/confirm`
|
|
1535
|
+
* in test bootstrap), then exchange credentials at `POST /api/v1/sessions`.
|
|
1536
|
+
*
|
|
1537
|
+
* No authentication required — this endpoint is the entry point for new users.
|
|
1539
1538
|
*
|
|
1540
1539
|
*/
|
|
1541
|
-
export const
|
|
1542
|
-
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1540
|
+
export const platformApiAuthControllerSignUp = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAuthControllerSignUpData, ThrowOnError>) => (options.client ?? client).post<PlatformApiAuthControllerSignUpResponses, PlatformApiAuthControllerSignUpErrors, ThrowOnError>({
|
|
1543
1541
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1544
|
-
body:
|
|
1542
|
+
body: vPlatformApiAuthControllerSignUpBody,
|
|
1545
1543
|
path: v.optional(v.never()),
|
|
1546
|
-
query: v.optional(
|
|
1544
|
+
query: v.optional(v.never())
|
|
1547
1545
|
}), data),
|
|
1548
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1546
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAuthControllerSignUpResponse, data),
|
|
1547
|
+
url: '/api/v1/auth/sign-up',
|
|
1548
|
+
...options,
|
|
1549
|
+
headers: {
|
|
1550
|
+
'Content-Type': 'application/json',
|
|
1551
|
+
...options.headers
|
|
1552
|
+
}
|
|
1552
1553
|
});
|
|
1553
1554
|
|
|
1554
1555
|
/**
|
|
1555
|
-
*
|
|
1556
|
+
* Verify subject identity
|
|
1556
1557
|
*
|
|
1557
|
-
*
|
|
1558
|
-
* Wraps `Platform.Tenants.create_tenant/3` verbatim — same primitive that
|
|
1559
|
-
* backs the `/app/tenants/new` LiveView.
|
|
1558
|
+
* Verify a subject's identity against their master record using fuzzy matching.
|
|
1560
1559
|
*
|
|
1561
|
-
*
|
|
1562
|
-
*
|
|
1563
|
-
*
|
|
1564
|
-
*
|
|
1560
|
+
* Supports verification by:
|
|
1561
|
+
* - **family_name** — Jaro distance >= 0.85
|
|
1562
|
+
* - **given_name** — Jaro distance >= 0.80
|
|
1563
|
+
* - **birth_date** — Fuzzy component matching >= 0.80
|
|
1564
|
+
* - **identifiers** — Exact (system, value) match
|
|
1565
1565
|
*
|
|
1566
|
-
*
|
|
1567
|
-
* callers receive 403. Duplicate tenant names (slug collision) return 422.
|
|
1566
|
+
* At least one verification field is required.
|
|
1568
1567
|
*
|
|
1569
|
-
* Requires
|
|
1570
|
-
* it carries no platform-user identity to bind the membership to).
|
|
1568
|
+
* **Requires X-API-Key authentication.**
|
|
1571
1569
|
*
|
|
1572
1570
|
*/
|
|
1573
|
-
export const
|
|
1571
|
+
export const platformApiMdmControllerVerify = <ThrowOnError extends boolean = false>(options: Options<PlatformApiMdmControllerVerifyData, ThrowOnError>) => (options.client ?? client).post<PlatformApiMdmControllerVerifyResponses, PlatformApiMdmControllerVerifyErrors, ThrowOnError>({
|
|
1574
1572
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1575
|
-
body:
|
|
1576
|
-
path:
|
|
1573
|
+
body: vPlatformApiMdmControllerVerifyBody,
|
|
1574
|
+
path: vPlatformApiMdmControllerVerifyPath,
|
|
1577
1575
|
query: v.optional(v.never())
|
|
1578
|
-
}), data),
|
|
1579
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1580
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }
|
|
1581
|
-
url: '/api/v1/tenants',
|
|
1576
|
+
}), data),
|
|
1577
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiMdmControllerVerifyResponse, data),
|
|
1578
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1579
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/mdm/verify',
|
|
1582
1580
|
...options,
|
|
1583
1581
|
headers: {
|
|
1584
1582
|
'Content-Type': 'application/json',
|
|
@@ -1587,36 +1585,36 @@ export const platformApiTenantControllerCreate = <ThrowOnError extends boolean =
|
|
|
1587
1585
|
});
|
|
1588
1586
|
|
|
1589
1587
|
/**
|
|
1590
|
-
* Get
|
|
1588
|
+
* Get a connected app
|
|
1591
1589
|
*
|
|
1592
|
-
* Returns a
|
|
1590
|
+
* Returns a single connected app by ID.
|
|
1593
1591
|
*/
|
|
1594
|
-
export const
|
|
1592
|
+
export const platformApiConnectedAppMgmtControllerShow = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppMgmtControllerShowData, ThrowOnError>) => (options.client ?? client).get<PlatformApiConnectedAppMgmtControllerShowResponses, PlatformApiConnectedAppMgmtControllerShowErrors, ThrowOnError>({
|
|
1595
1593
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1596
1594
|
body: v.optional(v.never()),
|
|
1597
|
-
path:
|
|
1598
|
-
query: v.optional(
|
|
1595
|
+
path: vPlatformApiConnectedAppMgmtControllerShowPath,
|
|
1596
|
+
query: v.optional(v.never())
|
|
1599
1597
|
}), data),
|
|
1600
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1598
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppMgmtControllerShowResponse, data),
|
|
1601
1599
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1602
|
-
url: '/api/v1/
|
|
1600
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/connected-apps/{id}',
|
|
1603
1601
|
...options
|
|
1604
1602
|
});
|
|
1605
1603
|
|
|
1606
1604
|
/**
|
|
1607
|
-
*
|
|
1605
|
+
* Replace a connected app
|
|
1608
1606
|
*
|
|
1609
|
-
*
|
|
1607
|
+
* Replaces a connected app with the full resource body. PUT semantics — all required fields must be present.
|
|
1610
1608
|
*/
|
|
1611
|
-
export const
|
|
1609
|
+
export const platformApiConnectedAppMgmtControllerUpdate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppMgmtControllerUpdateData, ThrowOnError>) => (options.client ?? client).put<PlatformApiConnectedAppMgmtControllerUpdateResponses, PlatformApiConnectedAppMgmtControllerUpdateErrors, ThrowOnError>({
|
|
1612
1610
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1613
|
-
body: v.optional(
|
|
1614
|
-
path:
|
|
1611
|
+
body: v.optional(vPlatformApiConnectedAppMgmtControllerUpdateBody),
|
|
1612
|
+
path: vPlatformApiConnectedAppMgmtControllerUpdatePath,
|
|
1615
1613
|
query: v.optional(v.never())
|
|
1616
1614
|
}), data),
|
|
1617
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1615
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppMgmtControllerUpdateResponse, data),
|
|
1618
1616
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1619
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1617
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/connected-apps/{id}',
|
|
1620
1618
|
...options,
|
|
1621
1619
|
headers: {
|
|
1622
1620
|
'Content-Type': 'application/json',
|
|
@@ -1625,37 +1623,29 @@ export const platformApiToolControllerTestInvocation = <ThrowOnError extends boo
|
|
|
1625
1623
|
});
|
|
1626
1624
|
|
|
1627
1625
|
/**
|
|
1628
|
-
*
|
|
1626
|
+
* Invite a user to the tenant
|
|
1629
1627
|
*
|
|
1630
|
-
*
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1641
|
-
url: '/api/v1/tenants/{tenant_slug}/datalakes/{id}',
|
|
1642
|
-
...options
|
|
1643
|
-
});
|
|
1644
|
-
|
|
1645
|
-
/**
|
|
1646
|
-
* Create datalake download link
|
|
1628
|
+
* Creates a `tenant_admin`-issued invitation. Mirrors the LiveView flow at
|
|
1629
|
+
* `/app/team` → "Invite new member". Wraps `Tenants.send_tenant_invitation/3`
|
|
1630
|
+
* verbatim, including the email send.
|
|
1631
|
+
*
|
|
1632
|
+
* The `role` enum is **membership-level** (`member`, `researcher`, `admin`),
|
|
1633
|
+
* NOT the platform-wide `User.role` enum — privilege-escalation safe by
|
|
1634
|
+
* construction.
|
|
1635
|
+
*
|
|
1636
|
+
* Requires a tenant-scoped Bearer with membership role `:admin`
|
|
1637
|
+
* (`current_role.name == "tenant_admin"`).
|
|
1647
1638
|
*
|
|
1648
|
-
* Returns a presigned GET URL for an object stored in one of the datalake's cloud storage buckets (regulated or unregulated). Typical use: read a `DACRawLogFile.object_key` (`s3://bucket/key`) off a data-activation log row, split it into `bucket` and `key`, then POST here to obtain a short-lived download URL.
|
|
1649
1639
|
*/
|
|
1650
|
-
export const
|
|
1640
|
+
export const platformApiInvitationControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiInvitationControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiInvitationControllerCreateResponses, PlatformApiInvitationControllerCreateErrors, ThrowOnError>({
|
|
1651
1641
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1652
|
-
body:
|
|
1653
|
-
path:
|
|
1642
|
+
body: vPlatformApiInvitationControllerCreateBody,
|
|
1643
|
+
path: vPlatformApiInvitationControllerCreatePath,
|
|
1654
1644
|
query: v.optional(v.never())
|
|
1655
1645
|
}), data),
|
|
1656
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1657
|
-
security: [{
|
|
1658
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1646
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInvitationControllerCreateResponse, data),
|
|
1647
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
1648
|
+
url: '/api/v1/tenants/{tenant_slug}/invitations',
|
|
1659
1649
|
...options,
|
|
1660
1650
|
headers: {
|
|
1661
1651
|
'Content-Type': 'application/json',
|
|
@@ -1664,131 +1654,127 @@ export const platformApiDatalakeControllerCreateDownloadLink = <ThrowOnError ext
|
|
|
1664
1654
|
});
|
|
1665
1655
|
|
|
1666
1656
|
/**
|
|
1667
|
-
*
|
|
1657
|
+
* List workflow execution logs
|
|
1668
1658
|
*
|
|
1669
|
-
* Returns a
|
|
1659
|
+
* Returns a paginated list of per-event execution logs for a workflow.
|
|
1670
1660
|
*/
|
|
1671
|
-
export const
|
|
1661
|
+
export const platformApiAgenticWorkflowOperationsControllerWorkflowLogsIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexResponses, PlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexErrors, ThrowOnError>({
|
|
1662
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1672
1663
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1673
1664
|
body: v.optional(v.never()),
|
|
1674
|
-
path:
|
|
1675
|
-
query: v.optional(
|
|
1665
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexPath,
|
|
1666
|
+
query: v.optional(vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexQuery)
|
|
1676
1667
|
}), data),
|
|
1677
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1668
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerWorkflowLogsIndexResponse, data),
|
|
1678
1669
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1679
|
-
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/workflow-logs
|
|
1670
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/workflow-logs',
|
|
1680
1671
|
...options
|
|
1681
1672
|
});
|
|
1682
1673
|
|
|
1683
1674
|
/**
|
|
1684
|
-
*
|
|
1685
|
-
*
|
|
1686
|
-
* Returns the current session's tenant, role, and identity information.
|
|
1675
|
+
* Page results from a UserSearch — outer SQL chunk + inner resource Flop
|
|
1687
1676
|
*
|
|
1688
|
-
*
|
|
1689
|
-
* - `X-API-Key` header (M2M)
|
|
1690
|
-
* - `Authorization: Bearer <session_token>` (human sessions)
|
|
1677
|
+
* Two-tier pagination at two layers:
|
|
1691
1678
|
*
|
|
1692
|
-
*
|
|
1693
|
-
*
|
|
1679
|
+
* * **Outer** — `outer_pagination[page]` / `outer_pagination[page_size]`
|
|
1680
|
+
* (defaults `1` / `1000`, max `1000`) pages cached IDs from
|
|
1681
|
+
* `search_results`. The cap is dictated by Postgres' `WHERE id IN (^ids)`
|
|
1682
|
+
* plan — past ~1k parameters the planner regresses.
|
|
1683
|
+
* * **Inner** — `inner_search[page]`, `inner_search[page_size]` (defaults
|
|
1684
|
+
* `1` / `20`), `inner_search[order_direction]` (sort on the schema's
|
|
1685
|
+
* `:global_search` compound), `inner_search[global_search]` (single
|
|
1686
|
+
* ILIKE-OR text-search knob).
|
|
1694
1687
|
*
|
|
1695
|
-
*
|
|
1688
|
+
* Response carries both metas under `meta.sql` and `meta.flop`. A caller
|
|
1689
|
+
* that only drives the inner page sees `meta.sql.has_next_page=true` when
|
|
1690
|
+
* the SQL search isn't exhausted; advancing `outer_pagination[page]`
|
|
1691
|
+
* fetches the next chunk.
|
|
1696
1692
|
*
|
|
1697
1693
|
*/
|
|
1698
|
-
export const
|
|
1694
|
+
export const platformApiDatasetControllerSearch = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatasetControllerSearchData, ThrowOnError>) => (options.client ?? client).get<PlatformApiDatasetControllerSearchResponses, PlatformApiDatasetControllerSearchErrors, ThrowOnError>({
|
|
1699
1695
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1700
1696
|
body: v.optional(v.never()),
|
|
1701
|
-
path:
|
|
1702
|
-
query: v.optional(
|
|
1697
|
+
path: vPlatformApiDatasetControllerSearchPath,
|
|
1698
|
+
query: v.optional(vPlatformApiDatasetControllerSearchQuery)
|
|
1703
1699
|
}), data),
|
|
1704
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1705
|
-
security: [{ name: 'X-API-Key', type: 'apiKey' }
|
|
1706
|
-
url: '/api/v1/
|
|
1700
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatasetControllerSearchResponse, data),
|
|
1701
|
+
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1702
|
+
url: '/api/v1/datasets/{dataset}/search',
|
|
1707
1703
|
...options
|
|
1708
1704
|
});
|
|
1709
1705
|
|
|
1710
1706
|
/**
|
|
1711
|
-
*
|
|
1712
|
-
*
|
|
1713
|
-
* Enqueues a `DatalakeMigrationWorker` Oban job that brings the datalake's
|
|
1714
|
-
* per-tenant database to the current schema version. Required after
|
|
1715
|
-
* `POST /datalakes`, which only persists the metadata row — it does NOT
|
|
1716
|
-
* run migrations against the per-tenant DB. Without this step, every
|
|
1717
|
-
* downstream resource that touches per-datalake tables
|
|
1718
|
-
* (`data_activation_logs`, MDM tables, dataset tables) will fail with
|
|
1719
|
-
* `relation … does not exist`.
|
|
1720
|
-
*
|
|
1721
|
-
* Asynchronous: returns 202 Accepted as soon as the job is enqueued.
|
|
1722
|
-
* Callers poll `GET /datalakes/:id` and watch for `status: :ready`.
|
|
1723
|
-
* Idempotent at the job level — re-enqueueing on a migrated datalake
|
|
1724
|
-
* is a no-op once the worker completes.
|
|
1725
|
-
*
|
|
1726
|
-
* The LiveView "Migrate Datalake" button calls the same migrator
|
|
1727
|
-
* synchronously inside the LiveView process.
|
|
1728
|
-
*
|
|
1729
|
-
* Requires a tenant-scoped Bearer with membership role `admin`.
|
|
1707
|
+
* Create and execute a SQL search for a dataset
|
|
1730
1708
|
*
|
|
1709
|
+
* Creates a `UserSearch` row, runs `INSERT INTO search_results SELECT ... WHERE <search_query>` against the regulated schema, and returns the `UserSearch` resource (including `status`, `results_count`, and `error_message`). The session's `data_access_mode` controls which schema is queried.
|
|
1731
1710
|
*/
|
|
1732
|
-
export const
|
|
1711
|
+
export const platformApiDatasetControllerCreateUserSearch = <ThrowOnError extends boolean = false>(options: Options<PlatformApiDatasetControllerCreateUserSearchData, ThrowOnError>) => (options.client ?? client).post<PlatformApiDatasetControllerCreateUserSearchResponses, PlatformApiDatasetControllerCreateUserSearchErrors, ThrowOnError>({
|
|
1733
1712
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1734
|
-
body: v.optional(
|
|
1735
|
-
path:
|
|
1736
|
-
query: v.optional(
|
|
1713
|
+
body: v.optional(vPlatformApiDatasetControllerCreateUserSearchBody),
|
|
1714
|
+
path: vPlatformApiDatasetControllerCreateUserSearchPath,
|
|
1715
|
+
query: v.optional(vPlatformApiDatasetControllerCreateUserSearchQuery)
|
|
1737
1716
|
}), data),
|
|
1738
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1717
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiDatasetControllerCreateUserSearchResponse, data),
|
|
1739
1718
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1740
|
-
url: '/api/v1/
|
|
1741
|
-
...options
|
|
1719
|
+
url: '/api/v1/datasets/{dataset}/user-searches',
|
|
1720
|
+
...options,
|
|
1721
|
+
headers: {
|
|
1722
|
+
'Content-Type': 'application/json',
|
|
1723
|
+
...options.headers
|
|
1724
|
+
}
|
|
1742
1725
|
});
|
|
1743
1726
|
|
|
1744
1727
|
/**
|
|
1745
|
-
*
|
|
1728
|
+
* List batch run logs
|
|
1746
1729
|
*
|
|
1747
|
-
*
|
|
1730
|
+
* Returns a paginated list of batch-level workflow run logs.
|
|
1748
1731
|
*/
|
|
1749
|
-
export const
|
|
1732
|
+
export const platformApiAgenticWorkflowOperationsControllerBatchLogsIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexResponses, PlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexErrors, ThrowOnError>({
|
|
1733
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1750
1734
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1751
1735
|
body: v.optional(v.never()),
|
|
1752
|
-
path:
|
|
1753
|
-
query: v.optional(
|
|
1736
|
+
path: vPlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexPath,
|
|
1737
|
+
query: v.optional(vPlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexQuery)
|
|
1754
1738
|
}), data),
|
|
1755
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1739
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiAgenticWorkflowOperationsControllerBatchLogsIndexResponse, data),
|
|
1756
1740
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1757
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1741
|
+
url: '/api/v1/tenants/{tenant_slug}/agentic-workflows/{workflow_slug}/batch-logs',
|
|
1758
1742
|
...options
|
|
1759
1743
|
});
|
|
1760
1744
|
|
|
1761
1745
|
/**
|
|
1762
|
-
*
|
|
1746
|
+
* List action status updaters
|
|
1763
1747
|
*
|
|
1764
|
-
* Returns a
|
|
1748
|
+
* Returns a paginated list of action status updaters for the authenticated tenant.
|
|
1765
1749
|
*/
|
|
1766
|
-
export const
|
|
1750
|
+
export const platformApiActionStatusUpdaterControllerIndex = <ThrowOnError extends boolean = false>(options: Options<PlatformApiActionStatusUpdaterControllerIndexData, ThrowOnError>) => (options.client ?? client).get<PlatformApiActionStatusUpdaterControllerIndexResponses, PlatformApiActionStatusUpdaterControllerIndexErrors, ThrowOnError>({
|
|
1751
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1767
1752
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1768
1753
|
body: v.optional(v.never()),
|
|
1769
|
-
path:
|
|
1770
|
-
query: v.optional(
|
|
1754
|
+
path: vPlatformApiActionStatusUpdaterControllerIndexPath,
|
|
1755
|
+
query: v.optional(vPlatformApiActionStatusUpdaterControllerIndexQuery)
|
|
1771
1756
|
}), data),
|
|
1772
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1757
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiActionStatusUpdaterControllerIndexResponse, data),
|
|
1773
1758
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1774
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1759
|
+
url: '/api/v1/tenants/{tenant_slug}/action-status-updaters',
|
|
1775
1760
|
...options
|
|
1776
1761
|
});
|
|
1777
1762
|
|
|
1778
1763
|
/**
|
|
1779
|
-
*
|
|
1764
|
+
* Create an action status updater
|
|
1780
1765
|
*
|
|
1781
|
-
*
|
|
1766
|
+
* Creates a new action status updater for the authenticated tenant.
|
|
1782
1767
|
*/
|
|
1783
|
-
export const
|
|
1768
|
+
export const platformApiActionStatusUpdaterControllerCreate = <ThrowOnError extends boolean = false>(options: Options<PlatformApiActionStatusUpdaterControllerCreateData, ThrowOnError>) => (options.client ?? client).post<PlatformApiActionStatusUpdaterControllerCreateResponses, PlatformApiActionStatusUpdaterControllerCreateErrors, ThrowOnError>({
|
|
1769
|
+
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1784
1770
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1785
|
-
body: v.optional(
|
|
1786
|
-
path:
|
|
1787
|
-
query: v.optional(
|
|
1771
|
+
body: v.optional(vPlatformApiActionStatusUpdaterControllerCreateBody),
|
|
1772
|
+
path: vPlatformApiActionStatusUpdaterControllerCreatePath,
|
|
1773
|
+
query: v.optional(vPlatformApiActionStatusUpdaterControllerCreateQuery)
|
|
1788
1774
|
}), data),
|
|
1789
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1775
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiActionStatusUpdaterControllerCreateResponse, data),
|
|
1790
1776
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1791
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1777
|
+
url: '/api/v1/tenants/{tenant_slug}/action-status-updaters',
|
|
1792
1778
|
...options,
|
|
1793
1779
|
headers: {
|
|
1794
1780
|
'Content-Type': 'application/json',
|
|
@@ -1797,37 +1783,51 @@ export const platformApiDataActivationClientControllerUpdate = <ThrowOnError ext
|
|
|
1797
1783
|
});
|
|
1798
1784
|
|
|
1799
1785
|
/**
|
|
1800
|
-
*
|
|
1786
|
+
* Run a contract against a payload (sandbox)
|
|
1801
1787
|
*
|
|
1802
|
-
*
|
|
1788
|
+
* Runs the contract's `filter → transform → mdm_input` pipeline against the supplied JSON row. Stateless — no DB writes. Use for template authoring/testing.
|
|
1803
1789
|
*/
|
|
1804
|
-
export const
|
|
1790
|
+
export const platformApiInteroperabilityContractControllerRun = <ThrowOnError extends boolean = false>(options: Options<PlatformApiInteroperabilityContractControllerRunData, ThrowOnError>) => (options.client ?? client).post<PlatformApiInteroperabilityContractControllerRunResponses, PlatformApiInteroperabilityContractControllerRunErrors, ThrowOnError>({
|
|
1805
1791
|
querySerializer: { parameters: { filters: { array: { style: 'deepObject' } } } },
|
|
1806
1792
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1807
|
-
body:
|
|
1808
|
-
path:
|
|
1809
|
-
query: v.optional(
|
|
1793
|
+
body: vPlatformApiInteroperabilityContractControllerRunBody,
|
|
1794
|
+
path: vPlatformApiInteroperabilityContractControllerRunPath,
|
|
1795
|
+
query: v.optional(vPlatformApiInteroperabilityContractControllerRunQuery)
|
|
1810
1796
|
}), data),
|
|
1811
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1797
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiInteroperabilityContractControllerRunResponse, data),
|
|
1812
1798
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1813
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1814
|
-
...options
|
|
1799
|
+
url: '/api/v1/tenants/{tenant_slug}/datalakes/{datalake_slug}/interoperability-contracts/{slug}/run',
|
|
1800
|
+
...options,
|
|
1801
|
+
headers: {
|
|
1802
|
+
'Content-Type': 'application/json',
|
|
1803
|
+
...options.headers
|
|
1804
|
+
}
|
|
1815
1805
|
});
|
|
1816
1806
|
|
|
1817
1807
|
/**
|
|
1818
|
-
*
|
|
1808
|
+
* Resolve a short URL token to a page
|
|
1809
|
+
*
|
|
1810
|
+
* Given a connected app slug and a Puid short URL token, resolves the token to
|
|
1811
|
+
* the pre-stored route path and MDM subject ID. The Cloudflare app calls this
|
|
1812
|
+
* endpoint when a customer clicks a short URL, forwarding the original client
|
|
1813
|
+
* headers (user-agent, IP, country) in the request body.
|
|
1814
|
+
*
|
|
1815
|
+
* When the page token is linked to a message (via workflow action execution),
|
|
1816
|
+
* the regulated message details (raw body, channel, status) are included in
|
|
1817
|
+
* the response.
|
|
1818
|
+
*
|
|
1819
|
+
* **Requires X-API-Key authentication.**
|
|
1819
1820
|
*
|
|
1820
|
-
* Creates a new tool for the authenticated tenant.
|
|
1821
1821
|
*/
|
|
1822
|
-
export const
|
|
1822
|
+
export const platformApiConnectedAppControllerResolvePage = <ThrowOnError extends boolean = false>(options: Options<PlatformApiConnectedAppControllerResolvePageData, ThrowOnError>) => (options.client ?? client).post<PlatformApiConnectedAppControllerResolvePageResponses, PlatformApiConnectedAppControllerResolvePageErrors, ThrowOnError>({
|
|
1823
1823
|
requestValidator: async (data: unknown) => await v.parseAsync(v.object({
|
|
1824
|
-
body:
|
|
1825
|
-
path:
|
|
1824
|
+
body: vPlatformApiConnectedAppControllerResolvePageBody,
|
|
1825
|
+
path: vPlatformApiConnectedAppControllerResolvePagePath,
|
|
1826
1826
|
query: v.optional(v.never())
|
|
1827
1827
|
}), data),
|
|
1828
|
-
responseValidator: async (data: unknown) => await v.parseAsync(
|
|
1828
|
+
responseValidator: async (data: unknown) => await v.parseAsync(vPlatformApiConnectedAppControllerResolvePageResponse, data),
|
|
1829
1829
|
security: [{ name: 'X-API-Key', type: 'apiKey' }],
|
|
1830
|
-
url: '/api/v1/tenants/{tenant_slug}/
|
|
1830
|
+
url: '/api/v1/tenants/{tenant_slug}/connected-apps/{slug}/resolve-page',
|
|
1831
1831
|
...options,
|
|
1832
1832
|
headers: {
|
|
1833
1833
|
'Content-Type': 'application/json',
|