@deepnoodle/mobius 0.0.4 → 0.0.6

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.
@@ -173,64 +173,6 @@ export interface paths {
173
173
  patch?: never;
174
174
  trace?: never;
175
175
  };
176
- "/v1/api-keys": {
177
- parameters: {
178
- query?: never;
179
- header?: never;
180
- path?: never;
181
- cookie?: never;
182
- };
183
- /**
184
- * List API keys
185
- * @description Returns API keys for this org. When `project_id` is provided, return
186
- * only keys pinned to that project. When `project_id` is omitted, return
187
- * only org-level keys; project-pinned keys are excluded because the
188
- * request has no project-scoped context.
189
- */
190
- get: operations["listAPIKeys"];
191
- put?: never;
192
- /**
193
- * Create an API key
194
- * @description Creates an API key for this org. Omit `project_id` to create an
195
- * org-scoped key when the caller has org-level authorization, or set
196
- * `project_id` to pin the key to exactly one project. Project-pinned
197
- * keys remain inaccessible through org-level listing and management
198
- * unless the request is explicitly scoped with the same `project_id`.
199
- * The raw key value is returned in `key` and is never retrievable again
200
- * after this response.
201
- */
202
- post: operations["createAPIKey"];
203
- delete?: never;
204
- options?: never;
205
- head?: never;
206
- patch?: never;
207
- trace?: never;
208
- };
209
- "/v1/api-keys/{id}": {
210
- parameters: {
211
- query?: never;
212
- header?: never;
213
- path?: never;
214
- cookie?: never;
215
- };
216
- /** Get an API key */
217
- get: operations["getAPIKey"];
218
- put?: never;
219
- post?: never;
220
- /**
221
- * Revoke an API key
222
- * @description Permanently revokes the key. In-flight requests using this key will
223
- * immediately start receiving 401. When `project_id` is provided, revoke
224
- * only a key pinned to that project. When `project_id` is omitted,
225
- * project-pinned keys are excluded because the request has no
226
- * project-scoped context.
227
- */
228
- delete: operations["revokeAPIKey"];
229
- options?: never;
230
- head?: never;
231
- patch?: never;
232
- trace?: never;
233
- };
234
176
  "/v1/projects/{project}/workflows": {
235
177
  parameters: {
236
178
  query?: never;
@@ -345,8 +287,8 @@ export interface paths {
345
287
  * List workflow runs
346
288
  * @description Supports cursor-based pagination and keyset filtering by
347
289
  * status, workflow type, queue, parent run, and
348
- * initiator. Returns `{data, next_cursor?}`; pass `next_cursor`
349
- * back in the next call to walk the result set.
290
+ * initiator. When `has_more` is true, pass the returned
291
+ * `next_cursor` back on the next call to walk the result set.
350
292
  */
351
293
  get: operations["listRuns"];
352
294
  put?: never;
@@ -365,52 +307,6 @@ export interface paths {
365
307
  patch?: never;
366
308
  trace?: never;
367
309
  };
368
- "/v1/projects/{project}/runs/cancellations": {
369
- parameters: {
370
- query?: never;
371
- header?: never;
372
- path?: never;
373
- cookie?: never;
374
- };
375
- get?: never;
376
- put?: never;
377
- /**
378
- * Request cancellation for a batch of runs
379
- * @description Sets `cancel_requested` on every listed run. Workers receive
380
- * `directives.should_cancel: true` on their next heartbeat and are
381
- * expected to stop cooperatively. Per-run errors are reported inline;
382
- * the response always returns 200 even on partial failures.
383
- */
384
- post: operations["bulkCancelRuns"];
385
- delete?: never;
386
- options?: never;
387
- head?: never;
388
- patch?: never;
389
- trace?: never;
390
- };
391
- "/v1/projects/{project}/runs/retries": {
392
- parameters: {
393
- query?: never;
394
- header?: never;
395
- path?: never;
396
- cookie?: never;
397
- };
398
- get?: never;
399
- put?: never;
400
- /**
401
- * Re-enqueue a batch of failed runs
402
- * @description Flips every listed run from `failed` back to `queued`, clearing
403
- * the error message. Only runs in terminal `failed` status can be
404
- * retried; runs in other states produce per-run errors. Per-run errors
405
- * are reported inline; the response always returns 200 on partial failures.
406
- */
407
- post: operations["bulkRetryRuns"];
408
- delete?: never;
409
- options?: never;
410
- head?: never;
411
- patch?: never;
412
- trace?: never;
413
- };
414
310
  "/v1/projects/{project}/runs/{id}": {
415
311
  parameters: {
416
312
  query?: never;
@@ -436,7 +332,7 @@ export interface paths {
436
332
  cookie?: never;
437
333
  };
438
334
  /** List action log entries for a run */
439
- get: operations["getRunActionLog"];
335
+ get: operations["listRunActionLog"];
440
336
  put?: never;
441
337
  post?: never;
442
338
  delete?: never;
@@ -453,7 +349,7 @@ export interface paths {
453
349
  cookie?: never;
454
350
  };
455
351
  /** List jobs for a run */
456
- get: operations["getRunJobs"];
352
+ get: operations["listRunJobs"];
457
353
  put?: never;
458
354
  post?: never;
459
355
  delete?: never;
@@ -748,8 +644,8 @@ export interface paths {
748
644
  * for up to `wait_seconds` (capped at 30). Returns 204 when the poll
749
645
  * window closes empty.
750
646
  *
751
- * Each successful call also registers or refreshes the worker in the
752
- * worker registry (used by `GET /v1/projects/{project}/workers`), so no
647
+ * Each successful call also registers or refreshes the caller's worker
648
+ * session (used by `GET /v1/projects/{project}/worker-sessions`), so no
753
649
  * separate registration step is needed.
754
650
  *
755
651
  * The returned `JobClaim` includes the `heartbeat_interval_seconds`
@@ -878,8 +774,7 @@ export interface paths {
878
774
  * route over `POST /v1/projects/{project}/interactions` from within a
879
775
  * job context. The optional `signal_name` field overrides the
880
776
  * server-derived signal name; when omitted the server derives the
881
- * signal name from `step_name` or uses a default interaction
882
- * signal name.
777
+ * signal name from `step_name` or uses a default interaction signal.
883
778
  */
884
779
  post: operations["createJobInteraction"];
885
780
  delete?: never;
@@ -975,7 +870,7 @@ export interface paths {
975
870
  * List fire history for a trigger
976
871
  * @description Returns a paginated history of trigger fires newest-first. Each entry
977
872
  * records whether the fire succeeded, was skipped (e.g. by `forbid`
978
- * concurrency policy), or failed, along with the resulting run ID.
873
+ * concurrency policy), or failed, along with per-target outcomes.
979
874
  */
980
875
  get: operations["listTriggerFires"];
981
876
  put?: never;
@@ -986,7 +881,7 @@ export interface paths {
986
881
  patch?: never;
987
882
  trace?: never;
988
883
  };
989
- "/v1/projects/{project}/workers": {
884
+ "/v1/projects/{project}/triggers/{id}/targets": {
990
885
  parameters: {
991
886
  query?: never;
992
887
  header?: never;
@@ -994,14 +889,64 @@ export interface paths {
994
889
  cookie?: never;
995
890
  };
996
891
  /**
997
- * List workers
998
- * @description Returns workers that have polled for jobs within the project. Each
999
- * worker's `stale` flag is computed at read time: if `last_seen_at`
1000
- * is older than 2 minutes (or absent), the worker is considered stale.
1001
- * Stale workers are retained for display but will not receive new job
892
+ * List targets for a trigger
893
+ * @description Returns all targets attached to the given trigger.
894
+ */
895
+ get: operations["listTriggerTargets"];
896
+ put?: never;
897
+ /**
898
+ * Add a target to a trigger
899
+ * @description Attaches a workflow as a new target of the trigger.
900
+ */
901
+ post: operations["createTriggerTarget"];
902
+ /**
903
+ * Remove all targets from a trigger
904
+ * @description Detaches every target from the trigger. The trigger itself is not deleted.
905
+ */
906
+ delete: operations["deleteAllTriggerTargets"];
907
+ options?: never;
908
+ head?: never;
909
+ patch?: never;
910
+ trace?: never;
911
+ };
912
+ "/v1/projects/{project}/triggers/{id}/targets/{target_id}": {
913
+ parameters: {
914
+ query?: never;
915
+ header?: never;
916
+ path?: never;
917
+ cookie?: never;
918
+ };
919
+ /** Get a trigger target */
920
+ get: operations["getTriggerTarget"];
921
+ put?: never;
922
+ post?: never;
923
+ /** Remove a target from a trigger */
924
+ delete: operations["deleteTriggerTarget"];
925
+ options?: never;
926
+ head?: never;
927
+ /**
928
+ * Update a trigger target
929
+ * @description All fields are optional; omitted fields are unchanged.
930
+ */
931
+ patch: operations["updateTriggerTarget"];
932
+ trace?: never;
933
+ };
934
+ "/v1/projects/{project}/worker-sessions": {
935
+ parameters: {
936
+ query?: never;
937
+ header?: never;
938
+ path?: never;
939
+ cookie?: never;
940
+ };
941
+ /**
942
+ * List worker sessions
943
+ * @description Returns worker sessions that have polled for jobs within the project.
944
+ * Each session's `stale` flag is computed at read time: if `last_seen_at`
945
+ * is older than 2 minutes (or absent), the session is considered stale.
946
+ * Stale sessions are retained for display but will not receive new job
1002
947
  * claims.
1003
948
  */
1004
- get: operations["listWorkers"];
949
+ get: operations["listWorkerSessions"];
1005
950
  put?: never;
1006
951
  post?: never;
1007
952
  delete?: never;
@@ -1067,7 +1012,7 @@ export interface paths {
1067
1012
  patch: operations["updateProject"];
1068
1013
  trace?: never;
1069
1014
  };
1070
- "/v1/projects/{project}/webhooks": {
1015
+ "/v1/projects/{id}/members": {
1071
1016
  parameters: {
1072
1017
  query?: never;
1073
1018
  header?: never;
@@ -1075,55 +1020,51 @@ export interface paths {
1075
1020
  cookie?: never;
1076
1021
  };
1077
1022
  /**
1078
- * List webhooks
1079
- * @description Returns all outgoing webhook subscriptions for the project.
1023
+ * List project members
1024
+ * @description Returns the users listed as members of this project. Membership is a
1025
+ * pure visibility layer: for `restricted` projects only listed members
1026
+ * (plus org owners/admins) can see or use the project. For `org_open`
1027
+ * projects, membership has no visibility effect.
1080
1028
  */
1081
- get: operations["listWebhooks"];
1029
+ get: operations["listProjectMembers"];
1082
1030
  put?: never;
1083
1031
  /**
1084
- * Create a webhook
1085
- * @description Creates a new outgoing webhook subscription. Webhook names must be
1086
- * unique within the project. Returns 409 if the name already exists.
1087
- *
1088
- * The signing `secret` (if provided) is stored in plaintext — treat
1089
- * it as a shared secret and rotate it via `PATCH` if compromised.
1032
+ * Add a project member
1033
+ * @description Adds a user as a project member. The user must already be an org
1034
+ * member. Add is idempotent adding an existing member returns the
1035
+ * existing row with `200 OK`, not `409`. New memberships are returned
1036
+ * with `201 Created`.
1090
1037
  */
1091
- post: operations["createWebhook"];
1038
+ post: operations["addProjectMember"];
1092
1039
  delete?: never;
1093
1040
  options?: never;
1094
1041
  head?: never;
1095
1042
  patch?: never;
1096
1043
  trace?: never;
1097
1044
  };
1098
- "/v1/projects/{project}/webhooks/{id}": {
1045
+ "/v1/projects/{id}/members/{uid}": {
1099
1046
  parameters: {
1100
1047
  query?: never;
1101
1048
  header?: never;
1102
1049
  path?: never;
1103
1050
  cookie?: never;
1104
1051
  };
1105
- /** Get a webhook */
1106
- get: operations["getWebhook"];
1052
+ get?: never;
1107
1053
  put?: never;
1108
1054
  post?: never;
1109
1055
  /**
1110
- * Delete a webhook
1111
- * @description Deletes the webhook and its delivery history.
1056
+ * Remove a project member
1057
+ * @description Removes a user from the project members list. On `restricted`
1058
+ * projects, removing the last remaining member is rejected — flip the
1059
+ * project to `org_open` or add another member first.
1112
1060
  */
1113
- delete: operations["deleteWebhook"];
1061
+ delete: operations["removeProjectMember"];
1114
1062
  options?: never;
1115
1063
  head?: never;
1116
- /**
1117
- * Update a webhook
1118
- * @description Updates the webhook URL, event subscriptions, enabled state, or
1119
- * signing secret. Setting `secret` to an empty string clears the
1120
- * current secret and disables signing. Omitting `secret` leaves the
1121
- * current value unchanged.
1122
- */
1123
- patch: operations["updateWebhook"];
1064
+ patch?: never;
1124
1065
  trace?: never;
1125
1066
  };
1126
- "/v1/projects/{project}/webhooks/{id}/deliveries": {
1067
+ "/v1/projects/{project}/webhooks": {
1127
1068
  parameters: {
1128
1069
  query?: never;
1129
1070
  header?: never;
@@ -1131,74 +1072,55 @@ export interface paths {
1131
1072
  cookie?: never;
1132
1073
  };
1133
1074
  /**
1134
- * List webhook deliveries
1135
- * @description Lists the delivery history for a webhook, newest first. Each entry
1136
- * records the event type, current status, attempt count, and any last
1137
- * error message. Deliveries are retried up to 10 times (5xx, 408,
1138
- * 429 are retryable; other 4xx are not). A delivery transitions to
1139
- * `failed` only after exhausting all retry attempts.
1075
+ * List webhooks
1076
+ * @description Returns all outgoing webhook subscriptions for the project.
1140
1077
  */
1141
- get: operations["listWebhookDeliveries"];
1142
- put?: never;
1143
- post?: never;
1144
- delete?: never;
1145
- options?: never;
1146
- head?: never;
1147
- patch?: never;
1148
- trace?: never;
1149
- };
1150
- "/v1/projects/{project}/integrations": {
1151
- parameters: {
1152
- query?: never;
1153
- header?: never;
1154
- path?: never;
1155
- cookie?: never;
1156
- };
1157
- /** List integrations */
1158
- get: operations["listIntegrations"];
1078
+ get: operations["listWebhooks"];
1159
1079
  put?: never;
1160
1080
  /**
1161
- * Create an integration
1162
- * @description Creates a new integration record. The `provider` + `name` pair must
1163
- * be unique within the project. Returns 400 if validation fails (e.g.,
1164
- * missing required fields).
1081
+ * Create a webhook
1082
+ * @description Creates a new outgoing webhook subscription. Webhook names must be
1083
+ * unique within the project. Returns 409 if the name already exists.
1084
+ *
1085
+ * Treat the `signing_secret` as a shared secret and rotate it via
1086
+ * `PATCH` if compromised.
1165
1087
  */
1166
- post: operations["createIntegration"];
1088
+ post: operations["createWebhook"];
1167
1089
  delete?: never;
1168
1090
  options?: never;
1169
1091
  head?: never;
1170
1092
  patch?: never;
1171
1093
  trace?: never;
1172
1094
  };
1173
- "/v1/projects/{project}/integrations/{id}": {
1095
+ "/v1/projects/{project}/webhooks/{id}": {
1174
1096
  parameters: {
1175
1097
  query?: never;
1176
1098
  header?: never;
1177
1099
  path?: never;
1178
1100
  cookie?: never;
1179
1101
  };
1180
- /** Get an integration */
1181
- get: operations["getIntegration"];
1182
- /**
1183
- * Update an integration
1184
- * @description Replaces the integration's `name`, `config`, and/or `status`. Use
1185
- * `status: inactive` to disable an integration without deleting it.
1186
- * Use `status: active` to re-enable. The `provider` field is
1187
- * immutable after creation.
1188
- */
1189
- put: operations["updateIntegration"];
1102
+ /** Get a webhook */
1103
+ get: operations["getWebhook"];
1104
+ put?: never;
1190
1105
  post?: never;
1191
1106
  /**
1192
- * Delete an integration
1193
- * @description Hard-deletes the integration record and its stored config.
1107
+ * Delete a webhook
1108
+ * @description Deletes the webhook and its delivery history.
1194
1109
  */
1195
- delete: operations["deleteIntegration"];
1110
+ delete: operations["deleteWebhook"];
1196
1111
  options?: never;
1197
1112
  head?: never;
1198
- patch?: never;
1113
+ /**
1114
+ * Update a webhook
1115
+ * @description Updates the webhook URL, event subscriptions, enabled state, or
1116
+ * signing secret. Setting `signing_secret` to an empty string clears
1117
+ * the current secret and disables signing. Omitting `signing_secret`
1118
+ * leaves the current value unchanged.
1119
+ */
1120
+ patch: operations["updateWebhook"];
1199
1121
  trace?: never;
1200
1122
  };
1201
- "/v1/projects/{project}/integrations/copy": {
1123
+ "/v1/projects/{project}/webhooks/{id}/ping": {
1202
1124
  parameters: {
1203
1125
  query?: never;
1204
1126
  header?: never;
@@ -1208,23 +1130,23 @@ export interface paths {
1208
1130
  get?: never;
1209
1131
  put?: never;
1210
1132
  /**
1211
- * Copy an integration from another project
1212
- * @description Clones an integration from another project within the same org into
1213
- * this project. The full `config` blob is copied as-is. The source
1214
- * and destination projects must both belong to the same org.
1215
- *
1216
- * The `(provider, name)` pair must be unique in the destination project;
1217
- * supply a different `name` to avoid conflicts with an existing
1218
- * integration of the same provider and name.
1133
+ * Test a webhook URL
1134
+ * @description Sends a live test POST request to the webhook's saved URL, or to an
1135
+ * override URL supplied in the request body, and returns the result.
1136
+ * Because the webhook URL may be empty at creation time, the typical
1137
+ * flow is: create the webhook without a URL, ping candidate URLs via
1138
+ * the override until one succeeds, then persist the chosen URL with
1139
+ * `PATCH`. The test payload has `type: "ping"` and is signed with the
1140
+ * webhook's secret if one is set.
1219
1141
  */
1220
- post: operations["copyIntegration"];
1142
+ post: operations["pingWebhook"];
1221
1143
  delete?: never;
1222
1144
  options?: never;
1223
1145
  head?: never;
1224
1146
  patch?: never;
1225
1147
  trace?: never;
1226
1148
  };
1227
- "/v1/projects/{project}/metrics": {
1149
+ "/v1/projects/{project}/webhooks/{id}/deliveries": {
1228
1150
  parameters: {
1229
1151
  query?: never;
1230
1152
  header?: never;
@@ -1232,13 +1154,14 @@ export interface paths {
1232
1154
  cookie?: never;
1233
1155
  };
1234
1156
  /**
1235
- * Get operational metrics for a project
1236
- * @description Returns a snapshot of current execution health for the project.
1237
- * All rate and duration metrics are computed over a rolling window
1238
- * (default: 60 minutes). P95 step duration is computed from the
1239
- * 40 most recent completed jobs.
1157
+ * List webhook deliveries
1158
+ * @description Lists the delivery history for a webhook, newest first. Each entry
1159
+ * records the event type, current status, attempt count, and any last
1160
+ * error message. Deliveries are retried up to 10 times (5xx, 408,
1161
+ * 429 are retryable; other 4xx are not). A delivery transitions to
1162
+ * `failed` only after exhausting all retry attempts.
1240
1163
  */
1241
- get: operations["getProjectMetrics"];
1164
+ get: operations["listWebhookDeliveries"];
1242
1165
  put?: never;
1243
1166
  post?: never;
1244
1167
  delete?: never;
@@ -1247,7 +1170,7 @@ export interface paths {
1247
1170
  patch?: never;
1248
1171
  trace?: never;
1249
1172
  };
1250
- "/v1/roles": {
1173
+ "/v1/projects/{project}/metrics": {
1251
1174
  parameters: {
1252
1175
  query?: never;
1253
1176
  header?: never;
@@ -1255,94 +1178,21 @@ export interface paths {
1255
1178
  cookie?: never;
1256
1179
  };
1257
1180
  /**
1258
- * List roles
1259
- * @description Returns system-defined roles plus custom roles for the org. Use `project_id` to narrow results to project-scoped roles.
1260
- */
1261
- get: operations["listRoles"];
1262
- put?: never;
1263
- /**
1264
- * Create a role
1265
- * @description Creates a custom role for the org. Supply `project_id` to scope the
1266
- * role to a specific project. Roles with an empty `project_id` are
1267
- * org-wide and can be assigned across all projects.
1181
+ * Get operational metrics for a project
1182
+ * @description Returns a snapshot of current execution health for the project.
1183
+ * All rate and duration metrics are computed over a rolling window
1184
+ * (default: 60 minutes). P95 step duration is computed from the
1185
+ * 40 most recent completed jobs.
1268
1186
  */
1269
- post: operations["createRole"];
1270
- delete?: never;
1271
- options?: never;
1272
- head?: never;
1273
- patch?: never;
1274
- trace?: never;
1275
- };
1276
- "/v1/roles/{id}": {
1277
- parameters: {
1278
- query?: never;
1279
- header?: never;
1280
- path?: never;
1281
- cookie?: never;
1282
- };
1283
- /** Get a role */
1284
- get: operations["getRole"];
1187
+ get: operations["getProjectMetrics"];
1285
1188
  put?: never;
1286
1189
  post?: never;
1287
- /**
1288
- * Delete a role
1289
- * @description Hard-deletes the role and all its assignments. System-defined roles cannot be deleted.
1290
- */
1291
- delete: operations["deleteRole"];
1292
- options?: never;
1293
- head?: never;
1294
- /**
1295
- * Update a role
1296
- * @description Updates name, description, or permissions of a custom role. System-defined
1297
- * roles (system_defined=true) cannot be updated and return 403.
1298
- */
1299
- patch: operations["updateRole"];
1300
- trace?: never;
1301
- };
1302
- "/v1/role-assignments": {
1303
- parameters: {
1304
- query?: never;
1305
- header?: never;
1306
- path?: never;
1307
- cookie?: never;
1308
- };
1309
- /**
1310
- * List role assignments
1311
- * @description Returns assignments optionally filtered by actor, role, or project scope.
1312
- */
1313
- get: operations["listRoleAssignments"];
1314
- put?: never;
1315
- /**
1316
- * Assign a role to an actor
1317
- * @description Binds a role to a user or service account. Supply `project_id` to create
1318
- * a project-scoped assignment; omit it for an org-wide assignment.
1319
- * The assignment records the creating actor in `granted_by_actor_type` /
1320
- * `granted_by_actor_id` for audit purposes.
1321
- */
1322
- post: operations["createRoleAssignment"];
1323
1190
  delete?: never;
1324
1191
  options?: never;
1325
1192
  head?: never;
1326
1193
  patch?: never;
1327
1194
  trace?: never;
1328
1195
  };
1329
- "/v1/role-assignments/{id}": {
1330
- parameters: {
1331
- query?: never;
1332
- header?: never;
1333
- path?: never;
1334
- cookie?: never;
1335
- };
1336
- get?: never;
1337
- put?: never;
1338
- post?: never;
1339
- /** Remove a role assignment */
1340
- delete: operations["deleteRoleAssignment"];
1341
- options?: never;
1342
- head?: never;
1343
- patch?: never;
1344
- trace?: never;
1345
- };
1346
1196
  "/v1/projects/{project}/interactions": {
1347
1197
  parameters: {
1348
1198
  query?: never;
@@ -1574,9 +1424,17 @@ export interface paths {
1574
1424
  put?: never;
1575
1425
  /**
1576
1426
  * Create an agent
1577
- * @description Creates an agent bound to `service_account_id`. A service account can
1578
- * back multiple agents, but each agent belongs to exactly one service
1579
- * account for the lifetime of the agent.
1427
+ * @description Creates an agent bound to a service account. A service account can back
1428
+ * multiple agents. The service account can be changed after creation via
1429
+ * the PATCH endpoint.
1430
+ *
1431
+ * If `service_account_id` is omitted, a new service account is
1432
+ * auto-created with the same name as the agent and assigned to back it.
1433
+ * Auto-creation requires the caller to hold `mobius.service_account.manage`
1434
+ * in addition to `mobius.agent.manage`. Auto-creation fails if a service
1435
+ * account with that name already exists in the project; to bind an
1436
+ * existing service account to a new agent, pass `service_account_id`
1437
+ * explicitly.
1580
1438
  */
1581
1439
  post: operations["createAgent"];
1582
1440
  delete?: never;
@@ -1605,8 +1463,7 @@ export interface paths {
1605
1463
  head?: never;
1606
1464
  /**
1607
1465
  * Update an agent
1608
- * @description Updates mutable agent fields. The backing `service_account_id` cannot
1609
- * be changed after creation. Setting `status` to `inactive` prevents
1466
+ * @description Updates mutable agent fields. Setting `status` to `inactive` prevents
1610
1467
  * the agent from claiming new jobs but does not terminate active sessions.
1611
1468
  */
1612
1469
  patch: operations["updateAgent"];
@@ -1641,7 +1498,7 @@ export interface paths {
1641
1498
  patch?: never;
1642
1499
  trace?: never;
1643
1500
  };
1644
- "/v1/projects/{project}/agents/sessions/{sessionId}": {
1501
+ "/v1/projects/{project}/agents/{id}/sessions/{sessionId}": {
1645
1502
  parameters: {
1646
1503
  query?: never;
1647
1504
  header?: never;
@@ -1658,7 +1515,7 @@ export interface paths {
1658
1515
  patch?: never;
1659
1516
  trace?: never;
1660
1517
  };
1661
- "/v1/projects/{project}/agents/sessions/{sessionId}/heartbeat": {
1518
+ "/v1/projects/{project}/agents/{id}/sessions/{sessionId}/heartbeat": {
1662
1519
  parameters: {
1663
1520
  query?: never;
1664
1521
  header?: never;
@@ -1680,7 +1537,7 @@ export interface paths {
1680
1537
  patch?: never;
1681
1538
  trace?: never;
1682
1539
  };
1683
- "/v1/projects/{project}/agents/sessions/{sessionId}/disconnect": {
1540
+ "/v1/projects/{project}/agents/{id}/sessions/{sessionId}/disconnect": {
1684
1541
  parameters: {
1685
1542
  query?: never;
1686
1543
  header?: never;
@@ -2014,6 +1871,8 @@ export interface components {
2014
1871
  actor_type?: string;
2015
1872
  /** @description Durable actor ID that performed the action */
2016
1873
  actor_id?: string;
1874
+ /** @description Display name of the actor (email for users, service account name for service accounts) */
1875
+ actor_name?: string;
2017
1876
  /** @description Credential ID used for the request, when applicable */
2018
1877
  credential_id?: string;
2019
1878
  /**
@@ -2043,7 +1902,7 @@ export interface components {
2043
1902
  };
2044
1903
  AuditLogListResponse: {
2045
1904
  /** @description The list of results for this page. */
2046
- items?: components["schemas"]["AuditLogEntry"][];
1905
+ items: components["schemas"]["AuditLogEntry"][];
2047
1906
  /** @description Cursor for fetching next page of results */
2048
1907
  next_cursor?: string;
2049
1908
  /** @description Whether more results are available */
@@ -2202,6 +2061,12 @@ export interface components {
2202
2061
  user_code: string;
2203
2062
  /** @description Optional label to identify this credential in the CLI credentials list. */
2204
2063
  label?: string;
2064
+ /**
2065
+ * @description Optional project ID to pin the issued CLI credential to. When set,
2066
+ * the resulting token is usable only for that project and must carry
2067
+ * the project's handle as a trailing `.<handle>` suffix.
2068
+ */
2069
+ project_id?: string;
2205
2070
  };
2206
2071
  ConfirmDeviceCodeResult: {
2207
2072
  /** @description True when the device code was successfully confirmed and a CLI credential has been issued. */
@@ -2214,6 +2079,17 @@ export interface components {
2214
2079
  id: string;
2215
2080
  /** @description ID of the user who authorized this credential. */
2216
2081
  user_id: string;
2082
+ /**
2083
+ * @description Project ID the credential is pinned to. Empty when the credential
2084
+ * is org-scoped (usable across every project the user can access).
2085
+ */
2086
+ project_id?: string;
2087
+ /**
2088
+ * @description Handle of the pinned project, echoed here so clients can format
2089
+ * the trailing `.<handle>` suffix on every request. Empty when the
2090
+ * credential is not pinned.
2091
+ */
2092
+ project_handle?: string;
2217
2093
  /** @description Human-readable label identifying this credential. */
2218
2094
  label: string;
2219
2095
  /** @description First few characters of the token, shown for identification without exposing the secret. */
@@ -2526,7 +2402,7 @@ export interface components {
2526
2402
  };
2527
2403
  WorkflowDefinitionListResponse: {
2528
2404
  /** @description The list of results for this page. */
2529
- items?: components["schemas"]["WorkflowDefinition"][];
2405
+ items: components["schemas"]["WorkflowDefinition"][];
2530
2406
  /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
2531
2407
  next_cursor?: string;
2532
2408
  /** @description Whether additional pages are available. */
@@ -2649,7 +2525,7 @@ export interface components {
2649
2525
  };
2650
2526
  WorkflowRunListResponse: {
2651
2527
  /** @description The list of results for this page. */
2652
- items?: components["schemas"]["WorkflowRun"][];
2528
+ items: components["schemas"]["WorkflowRun"][];
2653
2529
  /** @description True when more pages are available. */
2654
2530
  has_more: boolean;
2655
2531
  /**
@@ -2805,18 +2681,6 @@ export interface components {
2805
2681
  /** @description Signal topic name matching the wait_signal step's topic. */
2806
2682
  name: string;
2807
2683
  };
2808
- BulkRunRequest: {
2809
- /** @description IDs of the runs to operate on. */
2810
- run_ids: string[];
2811
- };
2812
- BulkRunResult: {
2813
- /** @description IDs of runs that were successfully processed. */
2814
- succeeded: string[];
2815
- /** @description Map of run_id -> error message for per-run failures. */
2816
- failures?: {
2817
- [key: string]: string;
2818
- };
2819
- };
2820
2684
  /**
2821
2685
  * @description Hints that describe the safe-use properties of the action. Used by the
2822
2686
  * engine and tooling to decide retry behavior, dry-run eligibility, etc.
@@ -2918,7 +2782,7 @@ export interface components {
2918
2782
  };
2919
2783
  ActionListResponse: {
2920
2784
  /** @description The list of results for this page. */
2921
- items?: components["schemas"]["Action"][];
2785
+ items: components["schemas"]["Action"][];
2922
2786
  /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
2923
2787
  next_cursor?: string;
2924
2788
  /** @description Whether additional pages are available. */
@@ -3006,7 +2870,7 @@ export interface components {
3006
2870
  };
3007
2871
  ActionAuditLogListResponse: {
3008
2872
  /** @description The list of results for this page. */
3009
- items?: components["schemas"]["ActionAuditLogEntry"][];
2873
+ items: components["schemas"]["ActionAuditLogEntry"][];
3010
2874
  /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
3011
2875
  next_cursor?: string;
3012
2876
  /** @description Whether additional pages are available. */
@@ -3051,7 +2915,7 @@ export interface components {
3051
2915
  run_id: string;
3052
2916
  /** @description Handle of the workflow definition that owns this run. */
3053
2917
  workflow_name: string;
3054
- /** @description Step label from the workflow spec — used for UI and for deriving the interaction signal name when a worker creates a run-backed interaction without an explicit signal_name. */
2918
+ /** @description Step label from the workflow spec — used for UI and interaction signal name derivation. */
3055
2919
  step_name: string;
3056
2920
  /** @description Action name the worker must execute for this step. */
3057
2921
  action: string;
@@ -3249,9 +3113,9 @@ export interface components {
3249
3113
  * @description When target_actor.type is "group", setting require_all=true
3250
3114
  * means all snapshotted group members must respond before the
3251
3115
  * interaction is considered complete. Ignored for non-group targets.
3252
- * @default false
3116
+ * Defaults to false when omitted.
3253
3117
  */
3254
- require_all: boolean;
3118
+ require_all?: boolean;
3255
3119
  /**
3256
3120
  * @description Optional duration string (e.g. "24h", "30m") specifying how long
3257
3121
  * the interaction should remain open before expiring. When absent
@@ -3368,12 +3232,20 @@ export interface components {
3368
3232
  */
3369
3233
  ConcurrencyPolicy: "allow" | "forbid" | "replace";
3370
3234
  /**
3371
- * @description `skipped` means the fire was suppressed by the concurrency policy or a target condition evaluated to false.
3235
+ * @description Outcome of a trigger activation:
3236
+ * - `success` — all enabled targets started their runs (or no targets configured).
3237
+ * - `partial_failure` — at least one target failed while others succeeded.
3238
+ * - `failed` — all targets failed, or a trigger-level error prevented any target.
3239
+ * - `skipped` — the concurrency policy suppressed the entire activation.
3372
3240
  * @enum {string}
3373
3241
  */
3374
- TriggerFireStatus: "success" | "failed" | "skipped";
3242
+ TriggerFireStatus: "success" | "partial_failure" | "failed" | "skipped";
3375
3243
  /** @description A workflow to start when this trigger fires. */
3376
3244
  TriggerTarget: {
3245
+ /** @description Unique identifier for this target. */
3246
+ id: string;
3247
+ /** @description ID of the trigger this target belongs to. */
3248
+ trigger_id: string;
3377
3249
  /** @description ID of the workflow definition to run. */
3378
3250
  workflow_id: string;
3379
3251
  /**
@@ -3388,9 +3260,63 @@ export interface components {
3388
3260
  input_mapping?: {
3389
3261
  [key: string]: string;
3390
3262
  };
3391
- };
3392
- Trigger: {
3393
- /** @description Unique identifier for this trigger. */
3263
+ /** @description When false, this target is paused and will not start a run when the trigger fires. */
3264
+ enabled: boolean;
3265
+ /**
3266
+ * Format: date-time
3267
+ * @description Timestamp when this target was created.
3268
+ */
3269
+ created_at: string;
3270
+ /**
3271
+ * Format: date-time
3272
+ * @description Timestamp when this target was last updated.
3273
+ */
3274
+ updated_at: string;
3275
+ };
3276
+ TriggerTargetListResponse: {
3277
+ /** @description The list of targets for this trigger. */
3278
+ items: components["schemas"]["TriggerTarget"][];
3279
+ };
3280
+ /** @description Parameters for attaching a workflow target to a trigger. */
3281
+ CreateTriggerTargetRequest: {
3282
+ /** @description ID of the workflow definition to run. */
3283
+ workflow_id: string;
3284
+ /** @description Expression evaluated against the event payload. Omit to always run. */
3285
+ condition?: string;
3286
+ /** @description Maps workflow input names to JSONPath expressions. */
3287
+ input_mapping?: {
3288
+ [key: string]: string;
3289
+ };
3290
+ /** @description Whether this target starts enabled. Defaults to true when omitted. */
3291
+ enabled?: boolean;
3292
+ };
3293
+ /** @description Partial update for a trigger target; omitted fields are unchanged. */
3294
+ UpdateTriggerTargetRequest: {
3295
+ /** @description Replacement workflow definition ID. */
3296
+ workflow_id?: string;
3297
+ /** @description Replacement condition expression. Set to empty string to remove. */
3298
+ condition?: string;
3299
+ /** @description Replacement input mapping. Set to null to clear all mappings. */
3300
+ input_mapping?: {
3301
+ [key: string]: string;
3302
+ } | null;
3303
+ /** @description Set to false to pause this target without removing it. */
3304
+ enabled?: boolean;
3305
+ };
3306
+ /** @description Outcome of a single target within a trigger fire activation. */
3307
+ TriggerFireTargetResult: {
3308
+ /** @description ID of the trigger target that was evaluated. */
3309
+ target_id: string;
3310
+ /** @description ID of the workflow definition that was started (or attempted). */
3311
+ workflow_id: string;
3312
+ /** @description ID of the workflow run that was created. Absent when the target failed or was skipped. */
3313
+ run_id?: string;
3314
+ status: components["schemas"]["TriggerFireStatus"];
3315
+ /** @description Error detail when status is `failed`. */
3316
+ error?: string;
3317
+ };
3318
+ Trigger: {
3319
+ /** @description Unique identifier for this trigger. */
3394
3320
  id: string;
3395
3321
  /** @description Human-readable trigger name, unique within the project. */
3396
3322
  name: string;
@@ -3406,7 +3332,7 @@ export interface components {
3406
3332
  filter_config?: {
3407
3333
  [key: string]: unknown;
3408
3334
  };
3409
- /** @description Workflows to start when this trigger fires. */
3335
+ /** @description Targets attached to this trigger, populated via join. */
3410
3336
  targets?: components["schemas"]["TriggerTarget"][];
3411
3337
  concurrency_policy: components["schemas"]["ConcurrencyPolicy"];
3412
3338
  /** @description When false, the trigger is paused and will not fire. */
@@ -3440,7 +3366,7 @@ export interface components {
3440
3366
  };
3441
3367
  TriggerListResponse: {
3442
3368
  /** @description The list of results for this page. */
3443
- items?: components["schemas"]["Trigger"][];
3369
+ items: components["schemas"]["Trigger"][];
3444
3370
  /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
3445
3371
  next_cursor?: string;
3446
3372
  /** @description Whether additional pages are available. */
@@ -3462,8 +3388,8 @@ export interface components {
3462
3388
  * @description When the fire was actually processed.
3463
3389
  */
3464
3390
  fired_at: string;
3465
- /** @description Workflow run created by this fire. Absent when status is `skipped` or `failed` before run creation. */
3466
- run_id?: string;
3391
+ /** @description Per-target outcomes for this activation. */
3392
+ target_results?: components["schemas"]["TriggerFireTargetResult"][];
3467
3393
  status: components["schemas"]["TriggerFireStatus"];
3468
3394
  /** @description Error detail when status is `failed`. */
3469
3395
  error?: string;
@@ -3477,7 +3403,7 @@ export interface components {
3477
3403
  };
3478
3404
  TriggerFireListResponse: {
3479
3405
  /** @description The list of results for this page. */
3480
- items?: components["schemas"]["TriggerFire"][];
3406
+ items: components["schemas"]["TriggerFire"][];
3481
3407
  /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
3482
3408
  next_cursor?: string;
3483
3409
  /** @description Whether additional pages are available. */
@@ -3499,14 +3425,11 @@ export interface components {
3499
3425
  filter_config?: {
3500
3426
  [key: string]: unknown;
3501
3427
  };
3502
- /** @description Workflows to start when this trigger fires. */
3503
- targets?: components["schemas"]["TriggerTarget"][];
3428
+ /** @description Workflows to start when this trigger fires (inline convenience; stored as sub-resources). */
3429
+ targets?: components["schemas"]["CreateTriggerTargetRequest"][];
3504
3430
  concurrency_policy?: components["schemas"]["ConcurrencyPolicy"];
3505
- /**
3506
- * @description Whether the trigger starts enabled. Defaults to true.
3507
- * @default true
3508
- */
3509
- enabled: boolean;
3431
+ /** @description Whether the trigger starts enabled. Defaults to true when omitted. */
3432
+ enabled?: boolean;
3510
3433
  /**
3511
3434
  * @description URL-safe handle that determines the inbound receive URL. Auto-derived
3512
3435
  * from `name` for `webhook` triggers when omitted. Must be unique
@@ -3518,7 +3441,7 @@ export interface components {
3518
3441
  * When set, Mobius validates the `X-Mobius-Signature` header on
3519
3442
  * incoming requests.
3520
3443
  */
3521
- webhook_secret?: string;
3444
+ signing_secret?: string;
3522
3445
  };
3523
3446
  UpdateTriggerRequest: {
3524
3447
  /** @description Replacement human-readable name. */
@@ -3531,17 +3454,15 @@ export interface components {
3531
3454
  filter_config?: {
3532
3455
  [key: string]: unknown;
3533
3456
  };
3534
- /** @description Replaces the entire targets array. */
3535
- targets?: components["schemas"]["TriggerTarget"][];
3536
3457
  concurrency_policy?: components["schemas"]["ConcurrencyPolicy"];
3537
3458
  /** @description Set to false to pause the trigger without deleting it. */
3538
3459
  enabled?: boolean;
3539
3460
  /** @description Changing this changes the `receive_url`; update any upstream integrations. */
3540
3461
  webhook_handle?: string;
3541
3462
  /** @description Replace or clear the inbound signature verification secret. */
3542
- webhook_secret?: string;
3463
+ signing_secret?: string;
3543
3464
  };
3544
- Worker: {
3465
+ WorkerSession: {
3545
3466
  /** @description Caller-assigned stable identifier for this worker process. */
3546
3467
  id: string;
3547
3468
  /** @description Optional human-readable name supplied in the claim request. */
@@ -3550,23 +3471,57 @@ export interface components {
3550
3471
  version?: string;
3551
3472
  /**
3552
3473
  * Format: date-time
3553
- * @description Timestamp of the worker's most recent job claim poll. Updated on
3554
- * every `POST /v1/projects/{project}/jobs/claim` call regardless of whether a job was
3555
- * returned. Used to compute `stale`.
3474
+ * @description Timestamp of this session's most recent job claim poll. Updated on
3475
+ * every `POST /v1/projects/{project}/jobs/claim` call regardless of
3476
+ * whether a job was returned. Used to compute `stale`.
3556
3477
  */
3557
3478
  last_seen_at?: string;
3558
3479
  /** @description Reserved for future capability-based job routing. Not currently used for filtering. */
3559
3480
  capabilities?: string[];
3481
+ /**
3482
+ * @description Service account this session authenticated as on register/heartbeat.
3483
+ * Set when a machine identity is polling; mutually exclusive with
3484
+ * `user_id`. Stable across credential rotation — use this to group
3485
+ * sessions by identity in the admin UI.
3486
+ */
3487
+ service_account_id?: string;
3488
+ /**
3489
+ * @description User this session authenticated as on register/heartbeat. Set when
3490
+ * a human is polling via the CLI; mutually exclusive with
3491
+ * `service_account_id`.
3492
+ */
3493
+ user_id?: string;
3494
+ /**
3495
+ * @description ID of the specific API key this session presented on its most
3496
+ * recent register/heartbeat. Only set for service-account-backed
3497
+ * sessions; changes across credential rotations. Use together with
3498
+ * `service_account_id` to see rotation progress across a fleet.
3499
+ */
3500
+ api_key_id?: string;
3501
+ /**
3502
+ * @description Agent this session represents, when the polling process declared
3503
+ * itself as a registered agent (via `agent_id` on the claim request
3504
+ * or via inference from the service account). Absent for ad-hoc
3505
+ * worker processes that are not tied to a declared agent.
3506
+ */
3507
+ agent_id?: string;
3560
3508
  /**
3561
3509
  * @description True when `last_seen_at` is older than 2 minutes or absent.
3562
3510
  * Computed at read time, not stored.
3563
3511
  */
3564
3512
  stale: boolean;
3565
3513
  };
3566
- WorkerListResponse: {
3567
- /** @description The list of recently seen workers. */
3568
- items: components["schemas"]["Worker"][];
3514
+ WorkerSessionListResponse: {
3515
+ /** @description The list of recently seen worker sessions. */
3516
+ items: components["schemas"]["WorkerSession"][];
3569
3517
  };
3518
+ /**
3519
+ * @description `org_open`: every org member can see and use the project, subject to
3520
+ * role assignments. `restricted`: only listed project members (and org
3521
+ * owners/admins) can see or use the project.
3522
+ * @enum {string}
3523
+ */
3524
+ ProjectAccessMode: "org_open" | "restricted";
3570
3525
  Project: {
3571
3526
  /** @description Unique identifier for this project. */
3572
3527
  id: string;
@@ -3579,6 +3534,7 @@ export interface components {
3579
3534
  handle: string;
3580
3535
  /** @description Optional human-readable description. */
3581
3536
  description?: string;
3537
+ access_mode: components["schemas"]["ProjectAccessMode"];
3582
3538
  /** @description User ID of the org member who created this project. */
3583
3539
  created_by?: string;
3584
3540
  /**
@@ -3606,12 +3562,49 @@ export interface components {
3606
3562
  handle?: string;
3607
3563
  /** @description Optional human-readable description. */
3608
3564
  description?: string;
3565
+ access_mode?: components["schemas"]["ProjectAccessMode"];
3609
3566
  };
3610
3567
  UpdateProjectRequest: {
3611
3568
  /** @description Replacement human-readable name. */
3612
3569
  name?: string;
3613
3570
  /** @description Replacement description. */
3614
3571
  description?: string;
3572
+ access_mode?: components["schemas"]["ProjectAccessMode"];
3573
+ /**
3574
+ * @description When transitioning from `org_open` to `restricted`, set true to
3575
+ * insert all current org members as project members so nobody
3576
+ * loses visibility on the flip. Ignored on other transitions.
3577
+ */
3578
+ seed_existing_members?: boolean;
3579
+ };
3580
+ ProjectMember: {
3581
+ /** @description Unique identifier for this membership record. */
3582
+ id: string;
3583
+ /** @description ID of the project this membership belongs to. */
3584
+ project_id: string;
3585
+ /** @description ID of the user who is a member. */
3586
+ user_id: string;
3587
+ /** @description Actor type of whoever added this member, if recorded. */
3588
+ added_by_actor_type?: string;
3589
+ /** @description Actor ID of whoever added this member, if recorded. */
3590
+ added_by_actor_id?: string;
3591
+ /**
3592
+ * Format: date-time
3593
+ * @description Timestamp when the member was added.
3594
+ */
3595
+ added_at: string;
3596
+ };
3597
+ ProjectMemberListResponse: {
3598
+ /** @description The list of members for this project. */
3599
+ items: components["schemas"]["ProjectMember"][];
3600
+ /** @description Whether more results are available. */
3601
+ has_more: boolean;
3602
+ /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
3603
+ next_cursor?: string;
3604
+ };
3605
+ AddProjectMemberRequest: {
3606
+ /** @description User ID of the org member to add to this project. */
3607
+ user_id: string;
3615
3608
  };
3616
3609
  /**
3617
3610
  * @description `pending` — queued, not yet attempted.
@@ -3702,24 +3695,26 @@ export interface components {
3702
3695
  CreateWebhookRequest: {
3703
3696
  /** @description Human-readable name, unique within the project. */
3704
3697
  name: string;
3705
- /** @description The endpoint Mobius will POST event payloads to. */
3706
- url: string;
3707
3698
  /**
3708
- * @description Optional shared secret. When set, Mobius signs each POST body
3709
- * with HMAC-SHA256 and includes `X-Mobius-Signature: sha256=<hex>`
3710
- * in the request headers.
3699
+ * @description The endpoint Mobius will POST event payloads to. May be left empty
3700
+ * at creation time so a candidate URL can be tested via the ping
3701
+ * endpoint before it is saved; events do not fire for webhooks with
3702
+ * an empty URL.
3703
+ */
3704
+ url?: string;
3705
+ /**
3706
+ * @description Optional HMAC-SHA256 secret. When set, Mobius signs each POST body
3707
+ * and includes `X-Mobius-Signature: sha256=<hex>` in the request
3708
+ * headers.
3711
3709
  */
3712
- secret?: string;
3710
+ signing_secret?: string;
3713
3711
  /**
3714
3712
  * @description Event types to subscribe to. Use wildcards for broad
3715
3713
  * subscriptions, e.g. `["run.*"]` for all run events.
3716
3714
  */
3717
3715
  events: string[];
3718
- /**
3719
- * @description Whether the webhook starts enabled. Defaults to true.
3720
- * @default true
3721
- */
3722
- enabled: boolean;
3716
+ /** @description Whether the webhook starts enabled. Defaults to true when omitted. */
3717
+ enabled?: boolean;
3723
3718
  };
3724
3719
  UpdateWebhookRequest: {
3725
3720
  /** @description Replacement human-readable name. */
@@ -3730,12 +3725,31 @@ export interface components {
3730
3725
  * @description Replace the current signing secret. Set to empty string to
3731
3726
  * disable signing. Omit to leave the current secret unchanged.
3732
3727
  */
3733
- secret?: string;
3728
+ signing_secret?: string;
3734
3729
  /** @description Replacement event subscriptions. Replaces the entire current list. */
3735
3730
  events?: string[];
3736
3731
  /** @description Set to false to disable delivery without deleting the webhook. */
3737
3732
  enabled?: boolean;
3738
3733
  };
3734
+ PingWebhookRequest: {
3735
+ /**
3736
+ * @description URL to test. When supplied, the ping is sent to this URL instead
3737
+ * of the webhook's saved URL — use this to validate a candidate URL
3738
+ * before saving it. When omitted, the webhook's current saved URL
3739
+ * is used.
3740
+ */
3741
+ url?: string;
3742
+ };
3743
+ PingWebhookResult: {
3744
+ /** @description True if the target responded with a 2xx status code. */
3745
+ success: boolean;
3746
+ /** @description HTTP status code returned by the target. Absent on network error. */
3747
+ status_code?: number;
3748
+ /** @description Error message if the request could not be completed. */
3749
+ error?: string;
3750
+ /** @description Round-trip latency in milliseconds. */
3751
+ latency_ms?: number;
3752
+ };
3739
3753
  /**
3740
3754
  * @description `active` — integration is enabled and usable by workflows.
3741
3755
  * `inactive` — manually disabled; no automatic expiry behavior.
@@ -3776,7 +3790,7 @@ export interface components {
3776
3790
  };
3777
3791
  IntegrationListResponse: {
3778
3792
  /** @description The list of results for this page. */
3779
- items?: components["schemas"]["Integration"][];
3793
+ items: components["schemas"]["Integration"][];
3780
3794
  /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
3781
3795
  next_cursor?: string;
3782
3796
  /** @description Whether additional pages are available. */
@@ -4211,9 +4225,9 @@ export interface components {
4211
4225
  items: components["schemas"]["RoleAssignment"][];
4212
4226
  };
4213
4227
  CreateRoleRequest: {
4214
- /** @description Scope the role to a project. Omit for an org-wide role. */
4215
- project_id?: string;
4216
- /** @description Unique name within the org+project scope. */
4228
+ /** @description Project this role belongs to. Custom roles are always project-scoped. */
4229
+ project_id: string;
4230
+ /** @description Unique name within the project. */
4217
4231
  name: string;
4218
4232
  /** @description Optional human-readable description of what this role grants. */
4219
4233
  description?: string;
@@ -4221,10 +4235,6 @@ export interface components {
4221
4235
  permissions: string[];
4222
4236
  };
4223
4237
  UpdateRoleRequest: {
4224
- /** @description Scope to change this role to. Cannot change an org-scoped role to project-scoped after creation. */
4225
- project_id?: string;
4226
- /** @description Replacement role name. */
4227
- name?: string;
4228
4238
  /** @description Replacement description. */
4229
4239
  description?: string;
4230
4240
  /** @description Replaces the existing permissions array entirely. */
@@ -4267,6 +4277,13 @@ export interface components {
4267
4277
  */
4268
4278
  updated_at: string;
4269
4279
  };
4280
+ /**
4281
+ * @description One of the built-in system roles. These are seeded at startup and
4282
+ * cannot be deleted. `Owner` and `Admin` bypass project-member
4283
+ * visibility for restricted projects.
4284
+ * @enum {string}
4285
+ */
4286
+ SystemRoleName: "Owner" | "Admin" | "Operator" | "Worker" | "Viewer";
4270
4287
  Org: {
4271
4288
  /** @description Unique identifier for this organization. */
4272
4289
  id: string;
@@ -4278,6 +4295,18 @@ export interface components {
4278
4295
  metadata?: {
4279
4296
  [key: string]: unknown;
4280
4297
  };
4298
+ /**
4299
+ * @description System-role name assigned at org scope to new org members.
4300
+ * Defaults to `Operator`.
4301
+ */
4302
+ default_member_role?: components["schemas"]["SystemRoleName"];
4303
+ /**
4304
+ * @description Access mode applied to newly-created projects when the caller does
4305
+ * not pass one explicitly. Changing this only affects future
4306
+ * projects.
4307
+ * @enum {string}
4308
+ */
4309
+ default_project_access_mode?: "org_open" | "restricted";
4281
4310
  /**
4282
4311
  * Format: date-time
4283
4312
  * @description Timestamp when this organization was created.
@@ -4316,6 +4345,13 @@ export interface components {
4316
4345
  metadata?: {
4317
4346
  [key: string]: unknown;
4318
4347
  };
4348
+ /** @description System-role name assigned to new org members at org scope. */
4349
+ default_member_role?: components["schemas"]["SystemRoleName"];
4350
+ /**
4351
+ * @description Access mode applied to newly-created projects.
4352
+ * @enum {string}
4353
+ */
4354
+ default_project_access_mode?: "org_open" | "restricted";
4319
4355
  };
4320
4356
  OrgMember: {
4321
4357
  /** @description Unique identifier for this membership record. */
@@ -4323,10 +4359,10 @@ export interface components {
4323
4359
  /** @description ID of the user who is a member. */
4324
4360
  user_id: string;
4325
4361
  /**
4326
- * @description `owner` has full control including org deletion; `admin` can manage members and settings; `member` has read-only org access.
4362
+ * @description `Owner` has full control including org deletion; `Admin` can manage members and settings; `Member` has read-only org access.
4327
4363
  * @enum {string}
4328
4364
  */
4329
- role: "owner" | "admin" | "member";
4365
+ role: "Owner" | "Admin" | "Member";
4330
4366
  /**
4331
4367
  * Format: date-time
4332
4368
  * @description Timestamp when this member joined.
@@ -4351,21 +4387,25 @@ export interface components {
4351
4387
  /** @description Clerk user ID of the user to add. */
4352
4388
  user_id: string;
4353
4389
  /**
4354
- * @description Role to assign the new member: `owner`, `admin`, or `member`.
4390
+ * @description Role to assign the new member: `Owner`, `Admin`, or `Member`.
4355
4391
  * @enum {string}
4356
4392
  */
4357
- role: "owner" | "admin" | "member";
4393
+ role: "Owner" | "Admin" | "Member";
4358
4394
  };
4359
4395
  UpdateOrgMemberRoleRequest: {
4360
4396
  /**
4361
- * @description New role to assign: `owner`, `admin`, or `member`.
4397
+ * @description New role to assign: `Owner`, `Admin`, or `Member`.
4362
4398
  * @enum {string}
4363
4399
  */
4364
- role: "owner" | "admin" | "member";
4400
+ role: "Owner" | "Admin" | "Member";
4365
4401
  };
4366
4402
  InteractionListResponse: {
4367
4403
  /** @description The list of results for this page. */
4368
4404
  items: components["schemas"]["Interaction"][];
4405
+ /** @description Whether additional pages are available. */
4406
+ has_more?: boolean;
4407
+ /** @description Opaque cursor to pass as `cursor` on the next request. Absent when `has_more` is false. */
4408
+ next_cursor?: string;
4369
4409
  };
4370
4410
  /**
4371
4411
  * @description Creates an interaction directly. When `run_id` is provided,
@@ -4393,9 +4433,9 @@ export interface components {
4393
4433
  * @description When target_actor.type is "group", setting require_all=true
4394
4434
  * means all snapshotted group members must respond before the
4395
4435
  * interaction is considered complete. Ignored for non-group targets.
4396
- * @default false
4436
+ * Defaults to false when omitted.
4397
4437
  */
4398
- require_all: boolean;
4438
+ require_all?: boolean;
4399
4439
  /**
4400
4440
  * Format: date-time
4401
4441
  * @description Timestamp after which this interaction expires if not responded to.
@@ -4523,12 +4563,10 @@ export interface components {
4523
4563
  Agent: {
4524
4564
  /** @description Unique identifier for this agent. */
4525
4565
  id: string;
4526
- /** @description The service account whose credentials this agent uses to authenticate. Immutable after creation. */
4566
+ /** @description The service account whose credentials this agent uses to authenticate. Can be changed via PATCH. */
4527
4567
  service_account_id: string;
4528
- /** @description Unique name within the project, used for targeting in job claims. */
4568
+ /** @description Mutable unique name within the project. Free-form human-readable label; use `id` for stable references and job targeting. */
4529
4569
  name: string;
4530
- /** @description Human-readable label shown in the UI. */
4531
- display_name: string;
4532
4570
  /** @description Optional human-readable description. */
4533
4571
  description?: string;
4534
4572
  /** @description Freeform agent classification for tooling and filtering (e.g. "llm", "rpa"). */
@@ -4601,12 +4639,14 @@ export interface components {
4601
4639
  items: components["schemas"]["AgentSession"][];
4602
4640
  };
4603
4641
  CreateAgentRequest: {
4604
- /** @description Service account that backs this agent. Must belong to the same org. */
4605
- service_account_id: string;
4606
- /** @description Project-scoped unique identifier for this agent. */
4642
+ /**
4643
+ * @description Service account that backs this agent. Must be active and belong to
4644
+ * the same project. If omitted, a new service account is auto-created
4645
+ * with the same name as the agent.
4646
+ */
4647
+ service_account_id?: string;
4648
+ /** @description Project-scoped unique name for this agent. Free-form human-readable label, 1-63 characters. */
4607
4649
  name: string;
4608
- /** @description Human-readable label shown in the UI. */
4609
- display_name?: string;
4610
4650
  /** @description Optional human-readable description. */
4611
4651
  description?: string;
4612
4652
  /** @description Freeform classification (e.g. "llm", "rpa", "integration"). */
@@ -4621,8 +4661,10 @@ export interface components {
4621
4661
  };
4622
4662
  };
4623
4663
  UpdateAgentRequest: {
4624
- /** @description Replacement human-readable label. */
4625
- display_name?: string;
4664
+ /** @description Replacement service account. Must be active and belong to the same project. */
4665
+ service_account_id?: string;
4666
+ /** @description Replacement name. Must be unique within the project. */
4667
+ name?: string;
4626
4668
  /** @description Replacement description. */
4627
4669
  description?: string;
4628
4670
  /** @description Replacement freeform agent classification (e.g. `llm`, `rpa`). */
@@ -4653,10 +4695,8 @@ export interface components {
4653
4695
  ServiceAccount: {
4654
4696
  /** @description Unique identifier for this service account. */
4655
4697
  id: string;
4656
- /** @description Stable machine-readable identifier, unique within the project. Immutable after creation. */
4698
+ /** @description Human-readable name for this service account. Immutable after creation. */
4657
4699
  name: string;
4658
- /** @description Human-readable label shown in the UI. */
4659
- display_name: string;
4660
4700
  /** @description Optional human-readable description. */
4661
4701
  description?: string;
4662
4702
  status: components["schemas"]["ServiceAccountStatus"];
@@ -4682,10 +4722,8 @@ export interface components {
4682
4722
  items: components["schemas"]["ServiceAccount"][];
4683
4723
  };
4684
4724
  CreateServiceAccountRequest: {
4685
- /** @description Stable machine-readable identifier, unique within the project. */
4725
+ /** @description Human-readable name for this service account. Immutable after creation. */
4686
4726
  name: string;
4687
- /** @description Human-readable label shown in the UI. */
4688
- display_name?: string;
4689
4727
  /** @description Optional human-readable description. */
4690
4728
  description?: string;
4691
4729
  /** @description Org member responsible for this service account. */
@@ -4695,20 +4733,13 @@ export interface components {
4695
4733
  [key: string]: unknown;
4696
4734
  };
4697
4735
  /**
4698
- * @description Role to assign at creation time. Mutually exclusive with `role_name`.
4699
- * Requires `permission.manage`. The role must belong to this project
4700
- * or be org-scoped (project_id empty).
4736
+ * @description One or more role IDs to assign at creation time. All assignments are
4737
+ * created atomically with the service account. Requires `mobius.permission.manage`.
4738
+ * Each role must belong to this project or be org-scoped (project_id empty).
4701
4739
  */
4702
- role_id?: string;
4703
- /**
4704
- * @description Role name to assign at creation time (resolved to a role ID server-side).
4705
- * Mutually exclusive with `role_id`. Requires `permission.manage`.
4706
- */
4707
- role_name?: string;
4740
+ role_ids?: string[];
4708
4741
  };
4709
4742
  UpdateServiceAccountRequest: {
4710
- /** @description Replacement human-readable label. */
4711
- display_name?: string;
4712
4743
  /** @description Replacement description. */
4713
4744
  description?: string;
4714
4745
  status?: components["schemas"]["ServiceAccountStatus"];
@@ -4862,6 +4893,8 @@ export interface components {
4862
4893
  * treated as org-level and project-pinned keys are excluded.
4863
4894
  */
4864
4895
  APIKeyProjectIDParam: components["schemas"]["ProjectID"];
4896
+ /** @description Trigger target ID. */
4897
+ TriggerTargetIDParam: string;
4865
4898
  /** @description Group ID or handle. */
4866
4899
  GroupIDParam: string;
4867
4900
  };
@@ -5285,127 +5318,6 @@ export interface operations {
5285
5318
  401: components["responses"]["Unauthorized"];
5286
5319
  };
5287
5320
  };
5288
- listAPIKeys: {
5289
- parameters: {
5290
- query?: {
5291
- /**
5292
- * @description Optional project scope for this request. When `project_id` is
5293
- * provided, the API key operation is resolved in that project's
5294
- * permission context. When `project_id` is omitted, the request is
5295
- * treated as org-level and project-pinned keys are excluded.
5296
- */
5297
- project_id?: components["parameters"]["APIKeyProjectIDParam"];
5298
- };
5299
- header?: never;
5300
- path?: never;
5301
- cookie?: never;
5302
- };
5303
- requestBody?: never;
5304
- responses: {
5305
- /** @description OK */
5306
- 200: {
5307
- headers: {
5308
- [name: string]: unknown;
5309
- };
5310
- content: {
5311
- "application/json": components["schemas"]["APIKeyListResponse"];
5312
- };
5313
- };
5314
- 401: components["responses"]["Unauthorized"];
5315
- 404: components["responses"]["NotFound"];
5316
- };
5317
- };
5318
- createAPIKey: {
5319
- parameters: {
5320
- query?: never;
5321
- header?: never;
5322
- path?: never;
5323
- cookie?: never;
5324
- };
5325
- requestBody: {
5326
- content: {
5327
- "application/json": components["schemas"]["CreateAPIKeyRequest"];
5328
- };
5329
- };
5330
- responses: {
5331
- /** @description Created */
5332
- 201: {
5333
- headers: {
5334
- [name: string]: unknown;
5335
- };
5336
- content: {
5337
- "application/json": components["schemas"]["APIKeyCreateResult"];
5338
- };
5339
- };
5340
- 400: components["responses"]["BadRequest"];
5341
- 401: components["responses"]["Unauthorized"];
5342
- 404: components["responses"]["NotFound"];
5343
- };
5344
- };
5345
- getAPIKey: {
5346
- parameters: {
5347
- query?: {
5348
- /**
5349
- * @description Optional project scope for this request. When `project_id` is
5350
- * provided, the API key operation is resolved in that project's
5351
- * permission context. When `project_id` is omitted, the request is
5352
- * treated as org-level and project-pinned keys are excluded.
5353
- */
5354
- project_id?: components["parameters"]["APIKeyProjectIDParam"];
5355
- };
5356
- header?: never;
5357
- path: {
5358
- /** @description Resource ID. */
5359
- id: components["parameters"]["IDParam"];
5360
- };
5361
- cookie?: never;
5362
- };
5363
- requestBody?: never;
5364
- responses: {
5365
- /** @description OK */
5366
- 200: {
5367
- headers: {
5368
- [name: string]: unknown;
5369
- };
5370
- content: {
5371
- "application/json": components["schemas"]["APIKey"];
5372
- };
5373
- };
5374
- 401: components["responses"]["Unauthorized"];
5375
- 404: components["responses"]["NotFound"];
5376
- };
5377
- };
5378
- revokeAPIKey: {
5379
- parameters: {
5380
- query?: {
5381
- /**
5382
- * @description Optional project scope for this request. When `project_id` is
5383
- * provided, the API key operation is resolved in that project's
5384
- * permission context. When `project_id` is omitted, the request is
5385
- * treated as org-level and project-pinned keys are excluded.
5386
- */
5387
- project_id?: components["parameters"]["APIKeyProjectIDParam"];
5388
- };
5389
- header?: never;
5390
- path: {
5391
- /** @description Resource ID. */
5392
- id: components["parameters"]["IDParam"];
5393
- };
5394
- cookie?: never;
5395
- };
5396
- requestBody?: never;
5397
- responses: {
5398
- /** @description No Content */
5399
- 204: {
5400
- headers: {
5401
- [name: string]: unknown;
5402
- };
5403
- content?: never;
5404
- };
5405
- 401: components["responses"]["Unauthorized"];
5406
- 404: components["responses"]["NotFound"];
5407
- };
5408
- };
5409
5321
  listWorkflows: {
5410
5322
  parameters: {
5411
5323
  query?: {
@@ -5712,21 +5624,19 @@ export interface operations {
5712
5624
  429: components["responses"]["TooManyRequests"];
5713
5625
  };
5714
5626
  };
5715
- bulkCancelRuns: {
5627
+ getRun: {
5716
5628
  parameters: {
5717
5629
  query?: never;
5718
5630
  header?: never;
5719
5631
  path: {
5720
5632
  /** @description Project handle (unique per organization) */
5721
5633
  project: components["parameters"]["ProjectHandleParam"];
5634
+ /** @description Resource ID. */
5635
+ id: components["parameters"]["IDParam"];
5722
5636
  };
5723
5637
  cookie?: never;
5724
5638
  };
5725
- requestBody: {
5726
- content: {
5727
- "application/json": components["schemas"]["BulkRunRequest"];
5728
- };
5729
- };
5639
+ requestBody?: never;
5730
5640
  responses: {
5731
5641
  /** @description OK */
5732
5642
  200: {
@@ -5734,28 +5644,26 @@ export interface operations {
5734
5644
  [name: string]: unknown;
5735
5645
  };
5736
5646
  content: {
5737
- "application/json": components["schemas"]["BulkRunResult"];
5647
+ "application/json": components["schemas"]["WorkflowRunDetail"];
5738
5648
  };
5739
5649
  };
5740
- 400: components["responses"]["BadRequest"];
5741
5650
  401: components["responses"]["Unauthorized"];
5651
+ 404: components["responses"]["NotFound"];
5742
5652
  };
5743
5653
  };
5744
- bulkRetryRuns: {
5654
+ listRunActionLog: {
5745
5655
  parameters: {
5746
5656
  query?: never;
5747
5657
  header?: never;
5748
5658
  path: {
5749
5659
  /** @description Project handle (unique per organization) */
5750
5660
  project: components["parameters"]["ProjectHandleParam"];
5661
+ /** @description Resource ID. */
5662
+ id: components["parameters"]["IDParam"];
5751
5663
  };
5752
5664
  cookie?: never;
5753
5665
  };
5754
- requestBody: {
5755
- content: {
5756
- "application/json": components["schemas"]["BulkRunRequest"];
5757
- };
5758
- };
5666
+ requestBody?: never;
5759
5667
  responses: {
5760
5668
  /** @description OK */
5761
5669
  200: {
@@ -5763,14 +5671,14 @@ export interface operations {
5763
5671
  [name: string]: unknown;
5764
5672
  };
5765
5673
  content: {
5766
- "application/json": components["schemas"]["BulkRunResult"];
5674
+ "application/json": components["schemas"]["ActionLogListResponse"];
5767
5675
  };
5768
5676
  };
5769
- 400: components["responses"]["BadRequest"];
5770
5677
  401: components["responses"]["Unauthorized"];
5678
+ 404: components["responses"]["NotFound"];
5771
5679
  };
5772
5680
  };
5773
- getRun: {
5681
+ listRunJobs: {
5774
5682
  parameters: {
5775
5683
  query?: never;
5776
5684
  header?: never;
@@ -5790,95 +5698,41 @@ export interface operations {
5790
5698
  [name: string]: unknown;
5791
5699
  };
5792
5700
  content: {
5793
- "application/json": components["schemas"]["WorkflowRunDetail"];
5701
+ "application/json": components["schemas"]["JobListResponse"];
5794
5702
  };
5795
5703
  };
5796
5704
  401: components["responses"]["Unauthorized"];
5797
5705
  404: components["responses"]["NotFound"];
5798
5706
  };
5799
5707
  };
5800
- getRunActionLog: {
5708
+ streamProjectRunEvents: {
5801
5709
  parameters: {
5802
- query?: never;
5710
+ query?: {
5711
+ /** @description Durable event seq cursor to replay from. */
5712
+ since?: number;
5713
+ };
5803
5714
  header?: never;
5804
5715
  path: {
5805
5716
  /** @description Project handle (unique per organization) */
5806
5717
  project: components["parameters"]["ProjectHandleParam"];
5807
- /** @description Resource ID. */
5808
- id: components["parameters"]["IDParam"];
5809
5718
  };
5810
5719
  cookie?: never;
5811
5720
  };
5812
5721
  requestBody?: never;
5813
5722
  responses: {
5814
- /** @description OK */
5723
+ /** @description OK (text/event-stream) */
5815
5724
  200: {
5816
5725
  headers: {
5817
5726
  [name: string]: unknown;
5818
5727
  };
5819
5728
  content: {
5820
- "application/json": components["schemas"]["ActionLogListResponse"];
5729
+ "text/event-stream": string;
5821
5730
  };
5822
5731
  };
5823
5732
  401: components["responses"]["Unauthorized"];
5824
- 404: components["responses"]["NotFound"];
5825
5733
  };
5826
5734
  };
5827
- getRunJobs: {
5828
- parameters: {
5829
- query?: never;
5830
- header?: never;
5831
- path: {
5832
- /** @description Project handle (unique per organization) */
5833
- project: components["parameters"]["ProjectHandleParam"];
5834
- /** @description Resource ID. */
5835
- id: components["parameters"]["IDParam"];
5836
- };
5837
- cookie?: never;
5838
- };
5839
- requestBody?: never;
5840
- responses: {
5841
- /** @description OK */
5842
- 200: {
5843
- headers: {
5844
- [name: string]: unknown;
5845
- };
5846
- content: {
5847
- "application/json": components["schemas"]["JobListResponse"];
5848
- };
5849
- };
5850
- 401: components["responses"]["Unauthorized"];
5851
- 404: components["responses"]["NotFound"];
5852
- };
5853
- };
5854
- streamProjectRunEvents: {
5855
- parameters: {
5856
- query?: {
5857
- /** @description Durable event seq cursor to replay from. */
5858
- since?: number;
5859
- };
5860
- header?: never;
5861
- path: {
5862
- /** @description Project handle (unique per organization) */
5863
- project: components["parameters"]["ProjectHandleParam"];
5864
- };
5865
- cookie?: never;
5866
- };
5867
- requestBody?: never;
5868
- responses: {
5869
- /** @description OK (text/event-stream) */
5870
- 200: {
5871
- headers: {
5872
- [name: string]: unknown;
5873
- };
5874
- content: {
5875
- "text/event-stream": string;
5876
- };
5877
- };
5878
- 401: components["responses"]["Unauthorized"];
5879
- };
5880
- };
5881
- cancelRun: {
5735
+ cancelRun: {
5882
5736
  parameters: {
5883
5737
  query?: never;
5884
5738
  header?: never;
@@ -6626,13 +6480,15 @@ export interface operations {
6626
6480
  404: components["responses"]["NotFound"];
6627
6481
  };
6628
6482
  };
6629
- listWorkers: {
6483
+ listTriggerTargets: {
6630
6484
  parameters: {
6631
6485
  query?: never;
6632
6486
  header?: never;
6633
6487
  path: {
6634
6488
  /** @description Project handle (unique per organization) */
6635
6489
  project: components["parameters"]["ProjectHandleParam"];
6490
+ /** @description Resource ID. */
6491
+ id: components["parameters"]["IDParam"];
6636
6492
  };
6637
6493
  cookie?: never;
6638
6494
  };
@@ -6644,47 +6500,28 @@ export interface operations {
6644
6500
  [name: string]: unknown;
6645
6501
  };
6646
6502
  content: {
6647
- "application/json": components["schemas"]["WorkerListResponse"];
6503
+ "application/json": components["schemas"]["TriggerTargetListResponse"];
6648
6504
  };
6649
6505
  };
6650
6506
  401: components["responses"]["Unauthorized"];
6651
6507
  404: components["responses"]["NotFound"];
6652
6508
  };
6653
6509
  };
6654
- listProjects: {
6655
- parameters: {
6656
- query?: {
6657
- /** @description Prefix-match filter applied to project name and handle. */
6658
- search?: string;
6659
- };
6660
- header?: never;
6661
- path?: never;
6662
- cookie?: never;
6663
- };
6664
- requestBody?: never;
6665
- responses: {
6666
- /** @description OK */
6667
- 200: {
6668
- headers: {
6669
- [name: string]: unknown;
6670
- };
6671
- content: {
6672
- "application/json": components["schemas"]["ProjectListResponse"];
6673
- };
6674
- };
6675
- 401: components["responses"]["Unauthorized"];
6676
- };
6677
- };
6678
- createProject: {
6510
+ createTriggerTarget: {
6679
6511
  parameters: {
6680
6512
  query?: never;
6681
6513
  header?: never;
6682
- path?: never;
6514
+ path: {
6515
+ /** @description Project handle (unique per organization) */
6516
+ project: components["parameters"]["ProjectHandleParam"];
6517
+ /** @description Resource ID. */
6518
+ id: components["parameters"]["IDParam"];
6519
+ };
6683
6520
  cookie?: never;
6684
6521
  };
6685
6522
  requestBody: {
6686
6523
  content: {
6687
- "application/json": components["schemas"]["CreateProjectRequest"];
6524
+ "application/json": components["schemas"]["CreateTriggerTargetRequest"];
6688
6525
  };
6689
6526
  };
6690
6527
  responses: {
@@ -6694,44 +6531,21 @@ export interface operations {
6694
6531
  [name: string]: unknown;
6695
6532
  };
6696
6533
  content: {
6697
- "application/json": components["schemas"]["Project"];
6534
+ "application/json": components["schemas"]["TriggerTarget"];
6698
6535
  };
6699
6536
  };
6700
6537
  400: components["responses"]["BadRequest"];
6701
6538
  401: components["responses"]["Unauthorized"];
6702
- 409: components["responses"]["Conflict"];
6703
- };
6704
- };
6705
- getProject: {
6706
- parameters: {
6707
- query?: never;
6708
- header?: never;
6709
- path: {
6710
- /** @description Resource ID. */
6711
- id: components["parameters"]["IDParam"];
6712
- };
6713
- cookie?: never;
6714
- };
6715
- requestBody?: never;
6716
- responses: {
6717
- /** @description OK */
6718
- 200: {
6719
- headers: {
6720
- [name: string]: unknown;
6721
- };
6722
- content: {
6723
- "application/json": components["schemas"]["Project"];
6724
- };
6725
- };
6726
- 401: components["responses"]["Unauthorized"];
6727
6539
  404: components["responses"]["NotFound"];
6728
6540
  };
6729
6541
  };
6730
- deleteProject: {
6542
+ deleteAllTriggerTargets: {
6731
6543
  parameters: {
6732
6544
  query?: never;
6733
6545
  header?: never;
6734
6546
  path: {
6547
+ /** @description Project handle (unique per organization) */
6548
+ project: components["parameters"]["ProjectHandleParam"];
6735
6549
  /** @description Resource ID. */
6736
6550
  id: components["parameters"]["IDParam"];
6737
6551
  };
@@ -6750,21 +6564,21 @@ export interface operations {
6750
6564
  404: components["responses"]["NotFound"];
6751
6565
  };
6752
6566
  };
6753
- updateProject: {
6567
+ getTriggerTarget: {
6754
6568
  parameters: {
6755
6569
  query?: never;
6756
6570
  header?: never;
6757
6571
  path: {
6572
+ /** @description Project handle (unique per organization) */
6573
+ project: components["parameters"]["ProjectHandleParam"];
6758
6574
  /** @description Resource ID. */
6759
6575
  id: components["parameters"]["IDParam"];
6576
+ /** @description Trigger target ID. */
6577
+ target_id: components["parameters"]["TriggerTargetIDParam"];
6760
6578
  };
6761
6579
  cookie?: never;
6762
6580
  };
6763
- requestBody: {
6764
- content: {
6765
- "application/json": components["schemas"]["UpdateProjectRequest"];
6766
- };
6767
- };
6581
+ requestBody?: never;
6768
6582
  responses: {
6769
6583
  /** @description OK */
6770
6584
  200: {
@@ -6772,86 +6586,81 @@ export interface operations {
6772
6586
  [name: string]: unknown;
6773
6587
  };
6774
6588
  content: {
6775
- "application/json": components["schemas"]["Project"];
6589
+ "application/json": components["schemas"]["TriggerTarget"];
6776
6590
  };
6777
6591
  };
6778
- 400: components["responses"]["BadRequest"];
6779
6592
  401: components["responses"]["Unauthorized"];
6780
6593
  404: components["responses"]["NotFound"];
6781
6594
  };
6782
6595
  };
6783
- listWebhooks: {
6596
+ deleteTriggerTarget: {
6784
6597
  parameters: {
6785
- query?: {
6786
- /** @description Filter by enabled/disabled state. */
6787
- enabled?: boolean;
6788
- /** @description Opaque pagination cursor returned from the previous response. */
6789
- cursor?: string;
6790
- /** @description Maximum number of results to return per page. */
6791
- limit?: number;
6792
- };
6598
+ query?: never;
6793
6599
  header?: never;
6794
6600
  path: {
6795
6601
  /** @description Project handle (unique per organization) */
6796
6602
  project: components["parameters"]["ProjectHandleParam"];
6603
+ /** @description Resource ID. */
6604
+ id: components["parameters"]["IDParam"];
6605
+ /** @description Trigger target ID. */
6606
+ target_id: components["parameters"]["TriggerTargetIDParam"];
6797
6607
  };
6798
6608
  cookie?: never;
6799
6609
  };
6800
6610
  requestBody?: never;
6801
6611
  responses: {
6802
- /** @description OK */
6803
- 200: {
6612
+ /** @description No Content */
6613
+ 204: {
6804
6614
  headers: {
6805
6615
  [name: string]: unknown;
6806
6616
  };
6807
- content: {
6808
- "application/json": components["schemas"]["WebhookListResponse"];
6809
- };
6617
+ content?: never;
6810
6618
  };
6811
6619
  401: components["responses"]["Unauthorized"];
6812
6620
  404: components["responses"]["NotFound"];
6813
6621
  };
6814
6622
  };
6815
- createWebhook: {
6623
+ updateTriggerTarget: {
6816
6624
  parameters: {
6817
6625
  query?: never;
6818
6626
  header?: never;
6819
6627
  path: {
6820
6628
  /** @description Project handle (unique per organization) */
6821
6629
  project: components["parameters"]["ProjectHandleParam"];
6630
+ /** @description Resource ID. */
6631
+ id: components["parameters"]["IDParam"];
6632
+ /** @description Trigger target ID. */
6633
+ target_id: components["parameters"]["TriggerTargetIDParam"];
6822
6634
  };
6823
6635
  cookie?: never;
6824
6636
  };
6825
6637
  requestBody: {
6826
6638
  content: {
6827
- "application/json": components["schemas"]["CreateWebhookRequest"];
6639
+ "application/json": components["schemas"]["UpdateTriggerTargetRequest"];
6828
6640
  };
6829
6641
  };
6830
6642
  responses: {
6831
- /** @description Created */
6832
- 201: {
6643
+ /** @description OK */
6644
+ 200: {
6833
6645
  headers: {
6834
6646
  [name: string]: unknown;
6835
6647
  };
6836
6648
  content: {
6837
- "application/json": components["schemas"]["Webhook"];
6649
+ "application/json": components["schemas"]["TriggerTarget"];
6838
6650
  };
6839
6651
  };
6840
6652
  400: components["responses"]["BadRequest"];
6841
6653
  401: components["responses"]["Unauthorized"];
6842
6654
  404: components["responses"]["NotFound"];
6843
- 409: components["responses"]["Conflict"];
6844
6655
  };
6845
6656
  };
6846
- getWebhook: {
6657
+ listWorkerSessions: {
6847
6658
  parameters: {
6848
6659
  query?: never;
6849
6660
  header?: never;
6850
6661
  path: {
6851
6662
  /** @description Project handle (unique per organization) */
6852
6663
  project: components["parameters"]["ProjectHandleParam"];
6853
- /** @description Resource ID. */
6854
- id: components["parameters"]["IDParam"];
6855
6664
  };
6856
6665
  cookie?: never;
6857
6666
  };
@@ -6863,82 +6672,69 @@ export interface operations {
6863
6672
  [name: string]: unknown;
6864
6673
  };
6865
6674
  content: {
6866
- "application/json": components["schemas"]["Webhook"];
6675
+ "application/json": components["schemas"]["WorkerSessionListResponse"];
6867
6676
  };
6868
6677
  };
6869
6678
  401: components["responses"]["Unauthorized"];
6870
6679
  404: components["responses"]["NotFound"];
6871
6680
  };
6872
6681
  };
6873
- deleteWebhook: {
6682
+ listProjects: {
6874
6683
  parameters: {
6875
- query?: never;
6876
- header?: never;
6877
- path: {
6878
- /** @description Project handle (unique per organization) */
6879
- project: components["parameters"]["ProjectHandleParam"];
6880
- /** @description Resource ID. */
6881
- id: components["parameters"]["IDParam"];
6684
+ query?: {
6685
+ /** @description Prefix-match filter applied to project name and handle. */
6686
+ search?: string;
6882
6687
  };
6688
+ header?: never;
6689
+ path?: never;
6883
6690
  cookie?: never;
6884
6691
  };
6885
6692
  requestBody?: never;
6886
6693
  responses: {
6887
- /** @description No Content */
6888
- 204: {
6694
+ /** @description OK */
6695
+ 200: {
6889
6696
  headers: {
6890
6697
  [name: string]: unknown;
6891
6698
  };
6892
- content?: never;
6699
+ content: {
6700
+ "application/json": components["schemas"]["ProjectListResponse"];
6701
+ };
6893
6702
  };
6894
6703
  401: components["responses"]["Unauthorized"];
6895
- 404: components["responses"]["NotFound"];
6896
6704
  };
6897
6705
  };
6898
- updateWebhook: {
6706
+ createProject: {
6899
6707
  parameters: {
6900
6708
  query?: never;
6901
6709
  header?: never;
6902
- path: {
6903
- /** @description Project handle (unique per organization) */
6904
- project: components["parameters"]["ProjectHandleParam"];
6905
- /** @description Resource ID. */
6906
- id: components["parameters"]["IDParam"];
6907
- };
6710
+ path?: never;
6908
6711
  cookie?: never;
6909
6712
  };
6910
6713
  requestBody: {
6911
6714
  content: {
6912
- "application/json": components["schemas"]["UpdateWebhookRequest"];
6715
+ "application/json": components["schemas"]["CreateProjectRequest"];
6913
6716
  };
6914
6717
  };
6915
6718
  responses: {
6916
- /** @description OK */
6917
- 200: {
6719
+ /** @description Created */
6720
+ 201: {
6918
6721
  headers: {
6919
6722
  [name: string]: unknown;
6920
6723
  };
6921
6724
  content: {
6922
- "application/json": components["schemas"]["Webhook"];
6725
+ "application/json": components["schemas"]["Project"];
6923
6726
  };
6924
6727
  };
6925
6728
  400: components["responses"]["BadRequest"];
6926
6729
  401: components["responses"]["Unauthorized"];
6927
- 404: components["responses"]["NotFound"];
6730
+ 409: components["responses"]["Conflict"];
6928
6731
  };
6929
6732
  };
6930
- listWebhookDeliveries: {
6733
+ getProject: {
6931
6734
  parameters: {
6932
- query?: {
6933
- /** @description Opaque pagination cursor returned from the previous response. */
6934
- cursor?: string;
6935
- /** @description Maximum number of results to return per page. */
6936
- limit?: number;
6937
- };
6735
+ query?: never;
6938
6736
  header?: never;
6939
6737
  path: {
6940
- /** @description Project handle (unique per organization) */
6941
- project: components["parameters"]["ProjectHandleParam"];
6942
6738
  /** @description Resource ID. */
6943
6739
  id: components["parameters"]["IDParam"];
6944
6740
  };
@@ -6952,82 +6748,76 @@ export interface operations {
6952
6748
  [name: string]: unknown;
6953
6749
  };
6954
6750
  content: {
6955
- "application/json": components["schemas"]["WebhookDeliveryListResponse"];
6751
+ "application/json": components["schemas"]["Project"];
6956
6752
  };
6957
6753
  };
6958
6754
  401: components["responses"]["Unauthorized"];
6959
6755
  404: components["responses"]["NotFound"];
6960
6756
  };
6961
6757
  };
6962
- listIntegrations: {
6758
+ deleteProject: {
6963
6759
  parameters: {
6964
- query?: {
6965
- /** @description Filter by provider string (exact match). */
6966
- provider?: string;
6967
- /** @description Filter by integration status. */
6968
- status?: components["schemas"]["IntegrationStatus"];
6969
- /** @description Opaque pagination cursor returned from the previous response. */
6970
- cursor?: string;
6971
- /** @description Maximum number of results to return per page. */
6972
- limit?: number;
6973
- };
6760
+ query?: never;
6974
6761
  header?: never;
6975
6762
  path: {
6976
- /** @description Project handle (unique per organization) */
6977
- project: components["parameters"]["ProjectHandleParam"];
6763
+ /** @description Resource ID. */
6764
+ id: components["parameters"]["IDParam"];
6978
6765
  };
6979
6766
  cookie?: never;
6980
6767
  };
6981
6768
  requestBody?: never;
6982
6769
  responses: {
6983
- /** @description OK */
6984
- 200: {
6770
+ /** @description No Content */
6771
+ 204: {
6985
6772
  headers: {
6986
6773
  [name: string]: unknown;
6987
6774
  };
6988
- content: {
6989
- "application/json": components["schemas"]["IntegrationListResponse"];
6990
- };
6775
+ content?: never;
6991
6776
  };
6992
6777
  401: components["responses"]["Unauthorized"];
6778
+ 404: components["responses"]["NotFound"];
6993
6779
  };
6994
6780
  };
6995
- createIntegration: {
6781
+ updateProject: {
6996
6782
  parameters: {
6997
6783
  query?: never;
6998
6784
  header?: never;
6999
6785
  path: {
7000
- /** @description Project handle (unique per organization) */
7001
- project: components["parameters"]["ProjectHandleParam"];
6786
+ /** @description Resource ID. */
6787
+ id: components["parameters"]["IDParam"];
7002
6788
  };
7003
6789
  cookie?: never;
7004
6790
  };
7005
6791
  requestBody: {
7006
6792
  content: {
7007
- "application/json": components["schemas"]["CreateIntegrationRequest"];
6793
+ "application/json": components["schemas"]["UpdateProjectRequest"];
7008
6794
  };
7009
6795
  };
7010
6796
  responses: {
7011
- /** @description Created */
7012
- 201: {
6797
+ /** @description OK */
6798
+ 200: {
7013
6799
  headers: {
7014
6800
  [name: string]: unknown;
7015
6801
  };
7016
6802
  content: {
7017
- "application/json": components["schemas"]["Integration"];
6803
+ "application/json": components["schemas"]["Project"];
7018
6804
  };
7019
6805
  };
7020
6806
  400: components["responses"]["BadRequest"];
7021
6807
  401: components["responses"]["Unauthorized"];
6808
+ 404: components["responses"]["NotFound"];
7022
6809
  };
7023
6810
  };
7024
- getIntegration: {
6811
+ listProjectMembers: {
7025
6812
  parameters: {
7026
- query?: never;
6813
+ query?: {
6814
+ /** @description Cursor for pagination (opaque string from previous response) */
6815
+ cursor?: components["parameters"]["CursorParam"];
6816
+ /** @description Maximum number of items to return */
6817
+ limit?: components["parameters"]["LimitParam"];
6818
+ };
7027
6819
  header?: never;
7028
6820
  path: {
7029
- /** @description Project handle (unique per organization) */
7030
- project: components["parameters"]["ProjectHandleParam"];
7031
6821
  /** @description Resource ID. */
7032
6822
  id: components["parameters"]["IDParam"];
7033
6823
  };
@@ -7041,20 +6831,19 @@ export interface operations {
7041
6831
  [name: string]: unknown;
7042
6832
  };
7043
6833
  content: {
7044
- "application/json": components["schemas"]["Integration"];
6834
+ "application/json": components["schemas"]["ProjectMemberListResponse"];
7045
6835
  };
7046
6836
  };
7047
6837
  401: components["responses"]["Unauthorized"];
6838
+ 403: components["responses"]["Forbidden"];
7048
6839
  404: components["responses"]["NotFound"];
7049
6840
  };
7050
6841
  };
7051
- updateIntegration: {
6842
+ addProjectMember: {
7052
6843
  parameters: {
7053
6844
  query?: never;
7054
6845
  header?: never;
7055
6846
  path: {
7056
- /** @description Project handle (unique per organization) */
7057
- project: components["parameters"]["ProjectHandleParam"];
7058
6847
  /** @description Resource ID. */
7059
6848
  id: components["parameters"]["IDParam"];
7060
6849
  };
@@ -7062,114 +6851,76 @@ export interface operations {
7062
6851
  };
7063
6852
  requestBody: {
7064
6853
  content: {
7065
- "application/json": components["schemas"]["UpdateIntegrationRequest"];
6854
+ "application/json": components["schemas"]["AddProjectMemberRequest"];
7066
6855
  };
7067
6856
  };
7068
6857
  responses: {
7069
- /** @description OK */
6858
+ /** @description OK — member already existed */
7070
6859
  200: {
7071
6860
  headers: {
7072
6861
  [name: string]: unknown;
7073
6862
  };
7074
6863
  content: {
7075
- "application/json": components["schemas"]["Integration"];
6864
+ "application/json": components["schemas"]["ProjectMember"];
7076
6865
  };
7077
6866
  };
7078
- 400: components["responses"]["BadRequest"];
7079
- 401: components["responses"]["Unauthorized"];
7080
- 404: components["responses"]["NotFound"];
7081
- };
7082
- };
7083
- deleteIntegration: {
7084
- parameters: {
7085
- query?: never;
7086
- header?: never;
7087
- path: {
7088
- /** @description Project handle (unique per organization) */
7089
- project: components["parameters"]["ProjectHandleParam"];
7090
- /** @description Resource ID. */
7091
- id: components["parameters"]["IDParam"];
7092
- };
7093
- cookie?: never;
7094
- };
7095
- requestBody?: never;
7096
- responses: {
7097
- /** @description No Content */
7098
- 204: {
7099
- headers: {
7100
- [name: string]: unknown;
7101
- };
7102
- content?: never;
7103
- };
7104
- 401: components["responses"]["Unauthorized"];
7105
- 404: components["responses"]["NotFound"];
7106
- };
7107
- };
7108
- copyIntegration: {
7109
- parameters: {
7110
- query?: never;
7111
- header?: never;
7112
- path: {
7113
- /** @description Project handle (unique per organization) */
7114
- project: components["parameters"]["ProjectHandleParam"];
7115
- };
7116
- cookie?: never;
7117
- };
7118
- requestBody: {
7119
- content: {
7120
- "application/json": components["schemas"]["CopyIntegrationRequest"];
7121
- };
7122
- };
7123
- responses: {
7124
6867
  /** @description Created */
7125
6868
  201: {
7126
6869
  headers: {
7127
6870
  [name: string]: unknown;
7128
6871
  };
7129
6872
  content: {
7130
- "application/json": components["schemas"]["Integration"];
6873
+ "application/json": components["schemas"]["ProjectMember"];
7131
6874
  };
7132
6875
  };
7133
6876
  400: components["responses"]["BadRequest"];
7134
6877
  401: components["responses"]["Unauthorized"];
6878
+ 403: components["responses"]["Forbidden"];
7135
6879
  404: components["responses"]["NotFound"];
7136
6880
  };
7137
6881
  };
7138
- getProjectMetrics: {
6882
+ removeProjectMember: {
7139
6883
  parameters: {
7140
6884
  query?: never;
7141
6885
  header?: never;
7142
6886
  path: {
7143
- /** @description Project handle (unique per organization) */
7144
- project: components["parameters"]["ProjectHandleParam"];
6887
+ /** @description Resource ID. */
6888
+ id: components["parameters"]["IDParam"];
6889
+ /** @description User ID of the member to remove. */
6890
+ uid: string;
7145
6891
  };
7146
6892
  cookie?: never;
7147
6893
  };
7148
6894
  requestBody?: never;
7149
6895
  responses: {
7150
- /** @description OK */
7151
- 200: {
6896
+ /** @description No Content */
6897
+ 204: {
7152
6898
  headers: {
7153
6899
  [name: string]: unknown;
7154
6900
  };
7155
- content: {
7156
- "application/json": components["schemas"]["ProjectMetrics"];
7157
- };
6901
+ content?: never;
7158
6902
  };
6903
+ 400: components["responses"]["BadRequest"];
7159
6904
  401: components["responses"]["Unauthorized"];
6905
+ 403: components["responses"]["Forbidden"];
7160
6906
  404: components["responses"]["NotFound"];
7161
6907
  };
7162
6908
  };
7163
- listRoles: {
6909
+ listWebhooks: {
7164
6910
  parameters: {
7165
6911
  query?: {
6912
+ /** @description Filter by enabled/disabled state. */
6913
+ enabled?: boolean;
6914
+ /** @description Opaque pagination cursor returned from the previous response. */
6915
+ cursor?: string;
7166
6916
  /** @description Maximum number of results to return per page. */
7167
6917
  limit?: number;
7168
- /** @description Filter to roles scoped to a specific project. */
7169
- project_id?: string;
7170
6918
  };
7171
6919
  header?: never;
7172
- path?: never;
6920
+ path: {
6921
+ /** @description Project handle (unique per organization) */
6922
+ project: components["parameters"]["ProjectHandleParam"];
6923
+ };
7173
6924
  cookie?: never;
7174
6925
  };
7175
6926
  requestBody?: never;
@@ -7180,23 +6931,26 @@ export interface operations {
7180
6931
  [name: string]: unknown;
7181
6932
  };
7182
6933
  content: {
7183
- "application/json": components["schemas"]["RoleListResponse"];
6934
+ "application/json": components["schemas"]["WebhookListResponse"];
7184
6935
  };
7185
6936
  };
7186
6937
  401: components["responses"]["Unauthorized"];
7187
- 403: components["responses"]["Forbidden"];
6938
+ 404: components["responses"]["NotFound"];
7188
6939
  };
7189
6940
  };
7190
- createRole: {
6941
+ createWebhook: {
7191
6942
  parameters: {
7192
6943
  query?: never;
7193
6944
  header?: never;
7194
- path?: never;
6945
+ path: {
6946
+ /** @description Project handle (unique per organization) */
6947
+ project: components["parameters"]["ProjectHandleParam"];
6948
+ };
7195
6949
  cookie?: never;
7196
6950
  };
7197
6951
  requestBody: {
7198
6952
  content: {
7199
- "application/json": components["schemas"]["CreateRoleRequest"];
6953
+ "application/json": components["schemas"]["CreateWebhookRequest"];
7200
6954
  };
7201
6955
  };
7202
6956
  responses: {
@@ -7206,23 +6960,22 @@ export interface operations {
7206
6960
  [name: string]: unknown;
7207
6961
  };
7208
6962
  content: {
7209
- "application/json": components["schemas"]["Role"];
6963
+ "application/json": components["schemas"]["Webhook"];
7210
6964
  };
7211
6965
  };
7212
6966
  400: components["responses"]["BadRequest"];
7213
6967
  401: components["responses"]["Unauthorized"];
7214
- 403: components["responses"]["Forbidden"];
6968
+ 404: components["responses"]["NotFound"];
7215
6969
  409: components["responses"]["Conflict"];
7216
6970
  };
7217
6971
  };
7218
- getRole: {
6972
+ getWebhook: {
7219
6973
  parameters: {
7220
- query?: {
7221
- /** @description Provide to resolve a project-scoped role. */
7222
- project_id?: string;
7223
- };
6974
+ query?: never;
7224
6975
  header?: never;
7225
6976
  path: {
6977
+ /** @description Project handle (unique per organization) */
6978
+ project: components["parameters"]["ProjectHandleParam"];
7226
6979
  /** @description Resource ID. */
7227
6980
  id: components["parameters"]["IDParam"];
7228
6981
  };
@@ -7236,22 +6989,20 @@ export interface operations {
7236
6989
  [name: string]: unknown;
7237
6990
  };
7238
6991
  content: {
7239
- "application/json": components["schemas"]["Role"];
6992
+ "application/json": components["schemas"]["Webhook"];
7240
6993
  };
7241
6994
  };
7242
6995
  401: components["responses"]["Unauthorized"];
7243
- 403: components["responses"]["Forbidden"];
7244
6996
  404: components["responses"]["NotFound"];
7245
6997
  };
7246
6998
  };
7247
- deleteRole: {
6999
+ deleteWebhook: {
7248
7000
  parameters: {
7249
- query?: {
7250
- /** @description Scope to change this role to. Cannot change an org-scoped role to project-scoped after creation. */
7251
- project_id?: string;
7252
- };
7001
+ query?: never;
7253
7002
  header?: never;
7254
7003
  path: {
7004
+ /** @description Project handle (unique per organization) */
7005
+ project: components["parameters"]["ProjectHandleParam"];
7255
7006
  /** @description Resource ID. */
7256
7007
  id: components["parameters"]["IDParam"];
7257
7008
  };
@@ -7267,18 +7018,16 @@ export interface operations {
7267
7018
  content?: never;
7268
7019
  };
7269
7020
  401: components["responses"]["Unauthorized"];
7270
- 403: components["responses"]["Forbidden"];
7271
7021
  404: components["responses"]["NotFound"];
7272
7022
  };
7273
7023
  };
7274
- updateRole: {
7024
+ updateWebhook: {
7275
7025
  parameters: {
7276
- query?: {
7277
- /** @description Scope to change this role to. Cannot change an org-scoped role to project-scoped after creation. */
7278
- project_id?: string;
7279
- };
7026
+ query?: never;
7280
7027
  header?: never;
7281
7028
  path: {
7029
+ /** @description Project handle (unique per organization) */
7030
+ project: components["parameters"]["ProjectHandleParam"];
7282
7031
  /** @description Resource ID. */
7283
7032
  id: components["parameters"]["IDParam"];
7284
7033
  };
@@ -7286,7 +7035,7 @@ export interface operations {
7286
7035
  };
7287
7036
  requestBody: {
7288
7037
  content: {
7289
- "application/json": components["schemas"]["UpdateRoleRequest"];
7038
+ "application/json": components["schemas"]["UpdateWebhookRequest"];
7290
7039
  };
7291
7040
  };
7292
7041
  responses: {
@@ -7296,33 +7045,31 @@ export interface operations {
7296
7045
  [name: string]: unknown;
7297
7046
  };
7298
7047
  content: {
7299
- "application/json": components["schemas"]["Role"];
7048
+ "application/json": components["schemas"]["Webhook"];
7300
7049
  };
7301
7050
  };
7302
7051
  400: components["responses"]["BadRequest"];
7303
7052
  401: components["responses"]["Unauthorized"];
7304
- 403: components["responses"]["Forbidden"];
7305
7053
  404: components["responses"]["NotFound"];
7306
- 409: components["responses"]["Conflict"];
7307
7054
  };
7308
7055
  };
7309
- listRoleAssignments: {
7056
+ pingWebhook: {
7310
7057
  parameters: {
7311
- query?: {
7312
- /** @description Filter by the type of actor receiving the assignment. */
7313
- actor_type?: "user" | "service_account";
7314
- /** @description Filter to assignments for a specific actor. */
7315
- actor_id?: string;
7316
- /** @description Filter to assignments for a specific role. */
7317
- role_id?: string;
7318
- /** @description Filter to project-scoped assignments for this project. */
7319
- project_id?: string;
7320
- };
7058
+ query?: never;
7321
7059
  header?: never;
7322
- path?: never;
7060
+ path: {
7061
+ /** @description Project handle (unique per organization) */
7062
+ project: components["parameters"]["ProjectHandleParam"];
7063
+ /** @description Resource ID. */
7064
+ id: components["parameters"]["IDParam"];
7065
+ };
7323
7066
  cookie?: never;
7324
7067
  };
7325
- requestBody?: never;
7068
+ requestBody?: {
7069
+ content: {
7070
+ "application/json": components["schemas"]["PingWebhookRequest"];
7071
+ };
7072
+ };
7326
7073
  responses: {
7327
7074
  /** @description OK */
7328
7075
  200: {
@@ -7330,63 +7077,68 @@ export interface operations {
7330
7077
  [name: string]: unknown;
7331
7078
  };
7332
7079
  content: {
7333
- "application/json": components["schemas"]["RoleAssignmentListResponse"];
7080
+ "application/json": components["schemas"]["PingWebhookResult"];
7334
7081
  };
7335
7082
  };
7083
+ 400: components["responses"]["BadRequest"];
7336
7084
  401: components["responses"]["Unauthorized"];
7337
- 403: components["responses"]["Forbidden"];
7085
+ 404: components["responses"]["NotFound"];
7338
7086
  };
7339
7087
  };
7340
- createRoleAssignment: {
7088
+ listWebhookDeliveries: {
7341
7089
  parameters: {
7342
- query?: never;
7090
+ query?: {
7091
+ /** @description Opaque pagination cursor returned from the previous response. */
7092
+ cursor?: string;
7093
+ /** @description Maximum number of results to return per page. */
7094
+ limit?: number;
7095
+ };
7343
7096
  header?: never;
7344
- path?: never;
7345
- cookie?: never;
7346
- };
7347
- requestBody: {
7348
- content: {
7349
- "application/json": components["schemas"]["CreateRoleAssignmentRequest"];
7097
+ path: {
7098
+ /** @description Project handle (unique per organization) */
7099
+ project: components["parameters"]["ProjectHandleParam"];
7100
+ /** @description Resource ID. */
7101
+ id: components["parameters"]["IDParam"];
7350
7102
  };
7103
+ cookie?: never;
7351
7104
  };
7105
+ requestBody?: never;
7352
7106
  responses: {
7353
- /** @description Created */
7354
- 201: {
7107
+ /** @description OK */
7108
+ 200: {
7355
7109
  headers: {
7356
7110
  [name: string]: unknown;
7357
7111
  };
7358
7112
  content: {
7359
- "application/json": components["schemas"]["RoleAssignment"];
7113
+ "application/json": components["schemas"]["WebhookDeliveryListResponse"];
7360
7114
  };
7361
7115
  };
7362
- 400: components["responses"]["BadRequest"];
7363
7116
  401: components["responses"]["Unauthorized"];
7364
- 403: components["responses"]["Forbidden"];
7365
7117
  404: components["responses"]["NotFound"];
7366
- 409: components["responses"]["Conflict"];
7367
7118
  };
7368
7119
  };
7369
- deleteRoleAssignment: {
7120
+ getProjectMetrics: {
7370
7121
  parameters: {
7371
7122
  query?: never;
7372
7123
  header?: never;
7373
7124
  path: {
7374
- /** @description Resource ID. */
7375
- id: components["parameters"]["IDParam"];
7125
+ /** @description Project handle (unique per organization) */
7126
+ project: components["parameters"]["ProjectHandleParam"];
7376
7127
  };
7377
7128
  cookie?: never;
7378
7129
  };
7379
7130
  requestBody?: never;
7380
7131
  responses: {
7381
- /** @description No Content */
7382
- 204: {
7132
+ /** @description OK */
7133
+ 200: {
7383
7134
  headers: {
7384
7135
  [name: string]: unknown;
7385
7136
  };
7386
- content?: never;
7137
+ content: {
7138
+ "application/json": components["schemas"]["ProjectMetrics"];
7139
+ };
7387
7140
  };
7388
7141
  401: components["responses"]["Unauthorized"];
7389
- 403: components["responses"]["Forbidden"];
7390
7142
  404: components["responses"]["NotFound"];
7391
7143
  };
7392
7144
  };
@@ -7982,6 +7734,7 @@ export interface operations {
7982
7734
  400: components["responses"]["BadRequest"];
7983
7735
  401: components["responses"]["Unauthorized"];
7984
7736
  404: components["responses"]["NotFound"];
7737
+ 409: components["responses"]["Conflict"];
7985
7738
  };
7986
7739
  };
7987
7740
  listAgentSessions: {
@@ -8057,6 +7810,8 @@ export interface operations {
8057
7810
  path: {
8058
7811
  /** @description Project handle (unique per organization) */
8059
7812
  project: components["parameters"]["ProjectHandleParam"];
7813
+ /** @description Resource ID. */
7814
+ id: components["parameters"]["IDParam"];
8060
7815
  /** @description ID of the agent session. */
8061
7816
  sessionId: string;
8062
7817
  };
@@ -8084,6 +7839,8 @@ export interface operations {
8084
7839
  path: {
8085
7840
  /** @description Project handle (unique per organization) */
8086
7841
  project: components["parameters"]["ProjectHandleParam"];
7842
+ /** @description Resource ID. */
7843
+ id: components["parameters"]["IDParam"];
8087
7844
  /** @description ID of the agent session. */
8088
7845
  sessionId: string;
8089
7846
  };
@@ -8111,6 +7868,8 @@ export interface operations {
8111
7868
  path: {
8112
7869
  /** @description Project handle (unique per organization) */
8113
7870
  project: components["parameters"]["ProjectHandleParam"];
7871
+ /** @description Resource ID. */
7872
+ id: components["parameters"]["IDParam"];
8114
7873
  /** @description ID of the agent session. */
8115
7874
  sessionId: string;
8116
7875
  };