@1claw/openapi-spec 0.61.34 → 0.61.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openapi.json +653 -3
- package/openapi.yaml +460 -3
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "1Claw API",
|
|
5
|
-
"version": "0.61.
|
|
5
|
+
"version": "0.61.36",
|
|
6
6
|
"description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging. Automations (workflow_spec,\nwebhook tokens, event triggers, Assist), cloud runtimes with\ninteractive shell sessions, agent memory, and discovery.\n\n## Domains\n\n`api.1claw.co` is canonical: it is the OIDC issuer, the `aud` the API\nmints, and the first entry in `servers` — a generated client takes its\nbase URL from there, and the previous ordering pointed every SDK at the\ndomain the issuer had already left. `api.1claw.xyz` still answers and is\nstill accepted on token validation, because tokens minted before the\nmove carry it; it is never minted now.\n\nOne deliberate exception: the Shroud attestation identity token is\nrequested from GCP with `audience: https://api.1claw.xyz`, so\n`/v1/shroud/attestation` reports that as its `expected_audience`. That\nis accurate rather than stale — the audience is a verification contract\nwith anyone already checking the token, and moving it is a breaking\nchange for them, not a rename.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
7
7
|
"contact": {
|
|
8
8
|
"email": "ops@1claw.co"
|
|
@@ -18839,6 +18839,7 @@
|
|
|
18839
18839
|
],
|
|
18840
18840
|
"summary": "Trigger automation",
|
|
18841
18841
|
"operationId": "triggerAutomation",
|
|
18842
|
+
"description": "Start a run now. With an `idempotency_key` (body or `Idempotency-Key` header) the\nsame key returns the run already started for it (200) rather than a second run\n(201). `input` is exposed to steps as `{{trigger.*}}`.\n",
|
|
18842
18843
|
"parameters": [
|
|
18843
18844
|
{
|
|
18844
18845
|
"name": "automationId",
|
|
@@ -18850,9 +18851,29 @@
|
|
|
18850
18851
|
}
|
|
18851
18852
|
}
|
|
18852
18853
|
],
|
|
18854
|
+
"requestBody": {
|
|
18855
|
+
"required": false,
|
|
18856
|
+
"content": {
|
|
18857
|
+
"application/json": {
|
|
18858
|
+
"schema": {
|
|
18859
|
+
"$ref": "#/components/schemas/TriggerAutomationRequest"
|
|
18860
|
+
}
|
|
18861
|
+
}
|
|
18862
|
+
}
|
|
18863
|
+
},
|
|
18853
18864
|
"responses": {
|
|
18854
18865
|
"200": {
|
|
18855
|
-
"description": "
|
|
18866
|
+
"description": "An earlier run with the same idempotency key",
|
|
18867
|
+
"content": {
|
|
18868
|
+
"application/json": {
|
|
18869
|
+
"schema": {
|
|
18870
|
+
"$ref": "#/components/schemas/AutomationRunResponse"
|
|
18871
|
+
}
|
|
18872
|
+
}
|
|
18873
|
+
}
|
|
18874
|
+
},
|
|
18875
|
+
"201": {
|
|
18876
|
+
"description": "Run started",
|
|
18856
18877
|
"content": {
|
|
18857
18878
|
"application/json": {
|
|
18858
18879
|
"schema": {
|
|
@@ -19267,6 +19288,326 @@
|
|
|
19267
19288
|
}
|
|
19268
19289
|
}
|
|
19269
19290
|
},
|
|
19291
|
+
"/v1/automations/{automationId}/runs/{runId}/callback/{token}": {
|
|
19292
|
+
"post": {
|
|
19293
|
+
"tags": [
|
|
19294
|
+
"Automations"
|
|
19295
|
+
],
|
|
19296
|
+
"summary": "Continue a run parked on awaiting_callback",
|
|
19297
|
+
"operationId": "automationRunCallback",
|
|
19298
|
+
"security": [],
|
|
19299
|
+
"description": "Public, authenticated by the per-run token. A spec with an `awaiting_callback`\nstep gets the token at run start as `{{run.callback_url}}` / `{{run.callback_token}}`;\nan earlier step hands the URL to the external system, the step parks the run\n(`awaiting_callback`, up to its `timeout_secs`), and this POST continues it. The\nJSON body becomes `{{resume.*}}`. 409 when the run is not (yet) parked on a\ncallback; 401 for a wrong token.\n",
|
|
19300
|
+
"parameters": [
|
|
19301
|
+
{
|
|
19302
|
+
"name": "automationId",
|
|
19303
|
+
"in": "path",
|
|
19304
|
+
"required": true,
|
|
19305
|
+
"schema": {
|
|
19306
|
+
"type": "string",
|
|
19307
|
+
"format": "uuid"
|
|
19308
|
+
}
|
|
19309
|
+
},
|
|
19310
|
+
{
|
|
19311
|
+
"name": "runId",
|
|
19312
|
+
"in": "path",
|
|
19313
|
+
"required": true,
|
|
19314
|
+
"schema": {
|
|
19315
|
+
"type": "string",
|
|
19316
|
+
"format": "uuid"
|
|
19317
|
+
}
|
|
19318
|
+
},
|
|
19319
|
+
{
|
|
19320
|
+
"name": "token",
|
|
19321
|
+
"in": "path",
|
|
19322
|
+
"required": true,
|
|
19323
|
+
"schema": {
|
|
19324
|
+
"type": "string"
|
|
19325
|
+
}
|
|
19326
|
+
}
|
|
19327
|
+
],
|
|
19328
|
+
"requestBody": {
|
|
19329
|
+
"required": false,
|
|
19330
|
+
"content": {
|
|
19331
|
+
"application/json": {
|
|
19332
|
+
"schema": {
|
|
19333
|
+
"type": "object",
|
|
19334
|
+
"additionalProperties": true
|
|
19335
|
+
}
|
|
19336
|
+
}
|
|
19337
|
+
}
|
|
19338
|
+
},
|
|
19339
|
+
"responses": {
|
|
19340
|
+
"202": {
|
|
19341
|
+
"description": "The run, continuing",
|
|
19342
|
+
"content": {
|
|
19343
|
+
"application/json": {
|
|
19344
|
+
"schema": {
|
|
19345
|
+
"$ref": "#/components/schemas/AutomationRunResponse"
|
|
19346
|
+
}
|
|
19347
|
+
}
|
|
19348
|
+
}
|
|
19349
|
+
},
|
|
19350
|
+
"401": {
|
|
19351
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
19352
|
+
},
|
|
19353
|
+
"409": {
|
|
19354
|
+
"$ref": "#/components/responses/Conflict"
|
|
19355
|
+
}
|
|
19356
|
+
}
|
|
19357
|
+
}
|
|
19358
|
+
},
|
|
19359
|
+
"/v1/automations/dry-run": {
|
|
19360
|
+
"post": {
|
|
19361
|
+
"tags": [
|
|
19362
|
+
"Automations"
|
|
19363
|
+
],
|
|
19364
|
+
"summary": "Preview an unsaved workflow spec",
|
|
19365
|
+
"operationId": "dryRunAutomationSpec",
|
|
19366
|
+
"description": "What a run would do, with nothing done: every step after template substitution\nagainst a simulated context, its side effect, its `on_error` policy, templates\nthat would resolve to nothing, conditions, and the budget it would hit. Step\noutputs are placeholders, so later steps' `{{steps.N.output…}}` show empty here.\n",
|
|
19367
|
+
"requestBody": {
|
|
19368
|
+
"required": true,
|
|
19369
|
+
"content": {
|
|
19370
|
+
"application/json": {
|
|
19371
|
+
"schema": {
|
|
19372
|
+
"$ref": "#/components/schemas/DryRunRequest"
|
|
19373
|
+
}
|
|
19374
|
+
}
|
|
19375
|
+
}
|
|
19376
|
+
},
|
|
19377
|
+
"responses": {
|
|
19378
|
+
"200": {
|
|
19379
|
+
"description": "Preview",
|
|
19380
|
+
"content": {
|
|
19381
|
+
"application/json": {
|
|
19382
|
+
"schema": {
|
|
19383
|
+
"$ref": "#/components/schemas/DryRunResponse"
|
|
19384
|
+
}
|
|
19385
|
+
}
|
|
19386
|
+
}
|
|
19387
|
+
},
|
|
19388
|
+
"401": {
|
|
19389
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
19390
|
+
}
|
|
19391
|
+
}
|
|
19392
|
+
}
|
|
19393
|
+
},
|
|
19394
|
+
"/v1/automations/{automationId}/dry-run": {
|
|
19395
|
+
"post": {
|
|
19396
|
+
"tags": [
|
|
19397
|
+
"Automations"
|
|
19398
|
+
],
|
|
19399
|
+
"summary": "Preview a run of this automation",
|
|
19400
|
+
"operationId": "dryRunAutomation",
|
|
19401
|
+
"description": "Same as the unsaved preview, defaulting to the automation's current spec.",
|
|
19402
|
+
"parameters": [
|
|
19403
|
+
{
|
|
19404
|
+
"name": "automationId",
|
|
19405
|
+
"in": "path",
|
|
19406
|
+
"required": true,
|
|
19407
|
+
"schema": {
|
|
19408
|
+
"type": "string",
|
|
19409
|
+
"format": "uuid"
|
|
19410
|
+
}
|
|
19411
|
+
}
|
|
19412
|
+
],
|
|
19413
|
+
"requestBody": {
|
|
19414
|
+
"required": false,
|
|
19415
|
+
"content": {
|
|
19416
|
+
"application/json": {
|
|
19417
|
+
"schema": {
|
|
19418
|
+
"$ref": "#/components/schemas/DryRunRequest"
|
|
19419
|
+
}
|
|
19420
|
+
}
|
|
19421
|
+
}
|
|
19422
|
+
},
|
|
19423
|
+
"responses": {
|
|
19424
|
+
"200": {
|
|
19425
|
+
"description": "Preview",
|
|
19426
|
+
"content": {
|
|
19427
|
+
"application/json": {
|
|
19428
|
+
"schema": {
|
|
19429
|
+
"$ref": "#/components/schemas/DryRunResponse"
|
|
19430
|
+
}
|
|
19431
|
+
}
|
|
19432
|
+
}
|
|
19433
|
+
},
|
|
19434
|
+
"401": {
|
|
19435
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
19436
|
+
},
|
|
19437
|
+
"404": {
|
|
19438
|
+
"$ref": "#/components/responses/NotFound"
|
|
19439
|
+
}
|
|
19440
|
+
}
|
|
19441
|
+
}
|
|
19442
|
+
},
|
|
19443
|
+
"/v1/automations/{automationId}/runs/{runId}/rerun": {
|
|
19444
|
+
"post": {
|
|
19445
|
+
"tags": [
|
|
19446
|
+
"Automations"
|
|
19447
|
+
],
|
|
19448
|
+
"summary": "Re-run from a step",
|
|
19449
|
+
"operationId": "rerunAutomationFromStep",
|
|
19450
|
+
"description": "Start a new run seeded with this run's results up to `from_step` and continue from\nthere, on the spec version the original run executed. Human-only; the original\nrun must be finished. The new run has `trigger_source: rerun` and `parent_run_id`.\n",
|
|
19451
|
+
"parameters": [
|
|
19452
|
+
{
|
|
19453
|
+
"name": "automationId",
|
|
19454
|
+
"in": "path",
|
|
19455
|
+
"required": true,
|
|
19456
|
+
"schema": {
|
|
19457
|
+
"type": "string",
|
|
19458
|
+
"format": "uuid"
|
|
19459
|
+
}
|
|
19460
|
+
},
|
|
19461
|
+
{
|
|
19462
|
+
"name": "runId",
|
|
19463
|
+
"in": "path",
|
|
19464
|
+
"required": true,
|
|
19465
|
+
"schema": {
|
|
19466
|
+
"type": "string",
|
|
19467
|
+
"format": "uuid"
|
|
19468
|
+
}
|
|
19469
|
+
}
|
|
19470
|
+
],
|
|
19471
|
+
"requestBody": {
|
|
19472
|
+
"required": false,
|
|
19473
|
+
"content": {
|
|
19474
|
+
"application/json": {
|
|
19475
|
+
"schema": {
|
|
19476
|
+
"type": "object",
|
|
19477
|
+
"properties": {
|
|
19478
|
+
"from_step": {
|
|
19479
|
+
"type": "integer",
|
|
19480
|
+
"minimum": 0,
|
|
19481
|
+
"default": 0,
|
|
19482
|
+
"description": "Zero-based step index to start from."
|
|
19483
|
+
}
|
|
19484
|
+
}
|
|
19485
|
+
}
|
|
19486
|
+
}
|
|
19487
|
+
}
|
|
19488
|
+
},
|
|
19489
|
+
"responses": {
|
|
19490
|
+
"201": {
|
|
19491
|
+
"description": "The new run",
|
|
19492
|
+
"content": {
|
|
19493
|
+
"application/json": {
|
|
19494
|
+
"schema": {
|
|
19495
|
+
"$ref": "#/components/schemas/AutomationRunResponse"
|
|
19496
|
+
}
|
|
19497
|
+
}
|
|
19498
|
+
}
|
|
19499
|
+
},
|
|
19500
|
+
"400": {
|
|
19501
|
+
"$ref": "#/components/responses/BadRequest"
|
|
19502
|
+
},
|
|
19503
|
+
"401": {
|
|
19504
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
19505
|
+
},
|
|
19506
|
+
"404": {
|
|
19507
|
+
"$ref": "#/components/responses/NotFound"
|
|
19508
|
+
}
|
|
19509
|
+
}
|
|
19510
|
+
}
|
|
19511
|
+
},
|
|
19512
|
+
"/v1/automations/{automationId}/versions": {
|
|
19513
|
+
"get": {
|
|
19514
|
+
"tags": [
|
|
19515
|
+
"Automations"
|
|
19516
|
+
],
|
|
19517
|
+
"summary": "List spec versions",
|
|
19518
|
+
"operationId": "listAutomationVersions",
|
|
19519
|
+
"description": "Every `workflow_spec` the automation has had, newest first. Version 1 is the\nspec it was created with; every update that changes the spec publishes the\nnext one. Runs record the version they executed.\n",
|
|
19520
|
+
"parameters": [
|
|
19521
|
+
{
|
|
19522
|
+
"name": "automationId",
|
|
19523
|
+
"in": "path",
|
|
19524
|
+
"required": true,
|
|
19525
|
+
"schema": {
|
|
19526
|
+
"type": "string",
|
|
19527
|
+
"format": "uuid"
|
|
19528
|
+
}
|
|
19529
|
+
}
|
|
19530
|
+
],
|
|
19531
|
+
"responses": {
|
|
19532
|
+
"200": {
|
|
19533
|
+
"description": "Versions",
|
|
19534
|
+
"content": {
|
|
19535
|
+
"application/json": {
|
|
19536
|
+
"schema": {
|
|
19537
|
+
"$ref": "#/components/schemas/AutomationVersionListResponse"
|
|
19538
|
+
}
|
|
19539
|
+
}
|
|
19540
|
+
}
|
|
19541
|
+
},
|
|
19542
|
+
"401": {
|
|
19543
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
19544
|
+
},
|
|
19545
|
+
"404": {
|
|
19546
|
+
"$ref": "#/components/responses/NotFound"
|
|
19547
|
+
}
|
|
19548
|
+
}
|
|
19549
|
+
}
|
|
19550
|
+
},
|
|
19551
|
+
"/v1/automations/{automationId}/versions/{version}/rollback": {
|
|
19552
|
+
"post": {
|
|
19553
|
+
"tags": [
|
|
19554
|
+
"Automations"
|
|
19555
|
+
],
|
|
19556
|
+
"summary": "Roll back to an earlier spec version",
|
|
19557
|
+
"operationId": "rollbackAutomationVersion",
|
|
19558
|
+
"description": "Publishes the chosen version's spec as a new version and makes it current.\nHuman-only. A rollback that widens what the automation can do relative to the\nlive spec goes through the `automation.widen` control-plane consensus gate,\nlike an edit would.\n",
|
|
19559
|
+
"parameters": [
|
|
19560
|
+
{
|
|
19561
|
+
"name": "automationId",
|
|
19562
|
+
"in": "path",
|
|
19563
|
+
"required": true,
|
|
19564
|
+
"schema": {
|
|
19565
|
+
"type": "string",
|
|
19566
|
+
"format": "uuid"
|
|
19567
|
+
}
|
|
19568
|
+
},
|
|
19569
|
+
{
|
|
19570
|
+
"name": "version",
|
|
19571
|
+
"in": "path",
|
|
19572
|
+
"required": true,
|
|
19573
|
+
"schema": {
|
|
19574
|
+
"type": "integer"
|
|
19575
|
+
}
|
|
19576
|
+
}
|
|
19577
|
+
],
|
|
19578
|
+
"requestBody": {
|
|
19579
|
+
"required": false,
|
|
19580
|
+
"content": {
|
|
19581
|
+
"application/json": {
|
|
19582
|
+
"schema": {
|
|
19583
|
+
"$ref": "#/components/schemas/RollbackAutomationRequest"
|
|
19584
|
+
}
|
|
19585
|
+
}
|
|
19586
|
+
}
|
|
19587
|
+
},
|
|
19588
|
+
"responses": {
|
|
19589
|
+
"200": {
|
|
19590
|
+
"description": "The automation with the rolled-back spec current",
|
|
19591
|
+
"content": {
|
|
19592
|
+
"application/json": {
|
|
19593
|
+
"schema": {
|
|
19594
|
+
"$ref": "#/components/schemas/AutomationResponse"
|
|
19595
|
+
}
|
|
19596
|
+
}
|
|
19597
|
+
}
|
|
19598
|
+
},
|
|
19599
|
+
"401": {
|
|
19600
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
19601
|
+
},
|
|
19602
|
+
"403": {
|
|
19603
|
+
"$ref": "#/components/responses/Forbidden"
|
|
19604
|
+
},
|
|
19605
|
+
"404": {
|
|
19606
|
+
"$ref": "#/components/responses/NotFound"
|
|
19607
|
+
}
|
|
19608
|
+
}
|
|
19609
|
+
}
|
|
19610
|
+
},
|
|
19270
19611
|
"/v1/automations/presets": {
|
|
19271
19612
|
"get": {
|
|
19272
19613
|
"tags": [
|
|
@@ -42891,6 +43232,260 @@
|
|
|
42891
43232
|
},
|
|
42892
43233
|
"is_active": {
|
|
42893
43234
|
"type": "boolean"
|
|
43235
|
+
},
|
|
43236
|
+
"approval_id": {
|
|
43237
|
+
"type": "string",
|
|
43238
|
+
"format": "uuid",
|
|
43239
|
+
"description": "Control-plane approval authorising a widening change (adding a step that\nmoves funds or reaches the network, raising or removing a `budget` cap).\nRequired only when the org's consensus policy gates `automation.widen`.\n"
|
|
43240
|
+
},
|
|
43241
|
+
"version_note": {
|
|
43242
|
+
"type": "string",
|
|
43243
|
+
"description": "Note recorded on the new spec version."
|
|
43244
|
+
},
|
|
43245
|
+
"webhook_signature": {
|
|
43246
|
+
"nullable": true,
|
|
43247
|
+
"description": "Inbound signature scheme for a webhook-triggered automation. `stripe`\n(`Stripe-Signature: t=…,v1=…` over `<t>.<body>`), `github`\n(`X-Hub-Signature-256: sha256=…` over the body) or `hmac_sha256`\n(`<header>: <hex|base64>` over the body). The secret is stored encrypted\nand never returned; `null` removes the scheme. With a scheme set, an\nunsigned or mis-signed delivery starts nothing.\n",
|
|
43248
|
+
"type": "object",
|
|
43249
|
+
"properties": {
|
|
43250
|
+
"scheme": {
|
|
43251
|
+
"type": "string",
|
|
43252
|
+
"enum": [
|
|
43253
|
+
"stripe",
|
|
43254
|
+
"github",
|
|
43255
|
+
"hmac_sha256"
|
|
43256
|
+
]
|
|
43257
|
+
},
|
|
43258
|
+
"secret": {
|
|
43259
|
+
"type": "string",
|
|
43260
|
+
"minLength": 8,
|
|
43261
|
+
"maxLength": 512
|
|
43262
|
+
},
|
|
43263
|
+
"header": {
|
|
43264
|
+
"type": "string",
|
|
43265
|
+
"description": "Header carrying the signature (defaults per scheme)."
|
|
43266
|
+
},
|
|
43267
|
+
"tolerance_secs": {
|
|
43268
|
+
"type": "integer",
|
|
43269
|
+
"default": 300,
|
|
43270
|
+
"description": "Timestamp tolerance for schemes that carry one (stripe)."
|
|
43271
|
+
}
|
|
43272
|
+
}
|
|
43273
|
+
}
|
|
43274
|
+
}
|
|
43275
|
+
},
|
|
43276
|
+
"AutomationVersionResponse": {
|
|
43277
|
+
"type": "object",
|
|
43278
|
+
"required": [
|
|
43279
|
+
"version",
|
|
43280
|
+
"spec_hash",
|
|
43281
|
+
"workflow_spec",
|
|
43282
|
+
"created_by_type",
|
|
43283
|
+
"created_at",
|
|
43284
|
+
"current"
|
|
43285
|
+
],
|
|
43286
|
+
"properties": {
|
|
43287
|
+
"version": {
|
|
43288
|
+
"type": "integer"
|
|
43289
|
+
},
|
|
43290
|
+
"spec_hash": {
|
|
43291
|
+
"type": "string",
|
|
43292
|
+
"description": "SHA-256 of the canonical (sorted-key) JSON of the spec."
|
|
43293
|
+
},
|
|
43294
|
+
"workflow_spec": {
|
|
43295
|
+
"oneOf": [
|
|
43296
|
+
{
|
|
43297
|
+
"type": "array",
|
|
43298
|
+
"items": {
|
|
43299
|
+
"type": "object",
|
|
43300
|
+
"additionalProperties": true
|
|
43301
|
+
}
|
|
43302
|
+
},
|
|
43303
|
+
{
|
|
43304
|
+
"type": "object",
|
|
43305
|
+
"additionalProperties": true
|
|
43306
|
+
}
|
|
43307
|
+
]
|
|
43308
|
+
},
|
|
43309
|
+
"created_by_type": {
|
|
43310
|
+
"type": "string"
|
|
43311
|
+
},
|
|
43312
|
+
"note": {
|
|
43313
|
+
"type": "string",
|
|
43314
|
+
"nullable": true
|
|
43315
|
+
},
|
|
43316
|
+
"created_at": {
|
|
43317
|
+
"type": "string",
|
|
43318
|
+
"format": "date-time"
|
|
43319
|
+
},
|
|
43320
|
+
"current": {
|
|
43321
|
+
"type": "boolean"
|
|
43322
|
+
}
|
|
43323
|
+
}
|
|
43324
|
+
},
|
|
43325
|
+
"AutomationVersionListResponse": {
|
|
43326
|
+
"type": "object",
|
|
43327
|
+
"required": [
|
|
43328
|
+
"current_version",
|
|
43329
|
+
"versions"
|
|
43330
|
+
],
|
|
43331
|
+
"properties": {
|
|
43332
|
+
"current_version": {
|
|
43333
|
+
"type": "integer"
|
|
43334
|
+
},
|
|
43335
|
+
"versions": {
|
|
43336
|
+
"type": "array",
|
|
43337
|
+
"items": {
|
|
43338
|
+
"$ref": "#/components/schemas/AutomationVersionResponse"
|
|
43339
|
+
}
|
|
43340
|
+
}
|
|
43341
|
+
}
|
|
43342
|
+
},
|
|
43343
|
+
"RollbackAutomationRequest": {
|
|
43344
|
+
"type": "object",
|
|
43345
|
+
"properties": {
|
|
43346
|
+
"note": {
|
|
43347
|
+
"type": "string"
|
|
43348
|
+
},
|
|
43349
|
+
"approval_id": {
|
|
43350
|
+
"type": "string",
|
|
43351
|
+
"format": "uuid",
|
|
43352
|
+
"description": "Control-plane approval when rolling back to a wider spec."
|
|
43353
|
+
}
|
|
43354
|
+
}
|
|
43355
|
+
},
|
|
43356
|
+
"DryRunRequest": {
|
|
43357
|
+
"type": "object",
|
|
43358
|
+
"properties": {
|
|
43359
|
+
"workflow_spec": {
|
|
43360
|
+
"description": "Spec to preview (required on the unsaved-spec route).",
|
|
43361
|
+
"oneOf": [
|
|
43362
|
+
{
|
|
43363
|
+
"type": "array",
|
|
43364
|
+
"items": {
|
|
43365
|
+
"type": "object",
|
|
43366
|
+
"additionalProperties": true
|
|
43367
|
+
}
|
|
43368
|
+
},
|
|
43369
|
+
{
|
|
43370
|
+
"type": "object",
|
|
43371
|
+
"additionalProperties": true
|
|
43372
|
+
}
|
|
43373
|
+
]
|
|
43374
|
+
},
|
|
43375
|
+
"input": {
|
|
43376
|
+
"type": "object",
|
|
43377
|
+
"additionalProperties": true,
|
|
43378
|
+
"description": "Simulated trigger payload (`{{trigger.*}}`)."
|
|
43379
|
+
}
|
|
43380
|
+
}
|
|
43381
|
+
},
|
|
43382
|
+
"DryRunResponse": {
|
|
43383
|
+
"type": "object",
|
|
43384
|
+
"required": [
|
|
43385
|
+
"ok"
|
|
43386
|
+
],
|
|
43387
|
+
"properties": {
|
|
43388
|
+
"ok": {
|
|
43389
|
+
"type": "boolean",
|
|
43390
|
+
"description": "True when there are no warnings."
|
|
43391
|
+
},
|
|
43392
|
+
"error": {
|
|
43393
|
+
"type": "string"
|
|
43394
|
+
},
|
|
43395
|
+
"warnings": {
|
|
43396
|
+
"type": "array",
|
|
43397
|
+
"items": {
|
|
43398
|
+
"type": "string"
|
|
43399
|
+
}
|
|
43400
|
+
},
|
|
43401
|
+
"parks": {
|
|
43402
|
+
"type": "integer",
|
|
43403
|
+
"description": "How many steps park the run."
|
|
43404
|
+
},
|
|
43405
|
+
"budget": {
|
|
43406
|
+
"type": "object",
|
|
43407
|
+
"additionalProperties": true
|
|
43408
|
+
},
|
|
43409
|
+
"steps": {
|
|
43410
|
+
"type": "array",
|
|
43411
|
+
"items": {
|
|
43412
|
+
"type": "object",
|
|
43413
|
+
"required": [
|
|
43414
|
+
"index",
|
|
43415
|
+
"type",
|
|
43416
|
+
"known",
|
|
43417
|
+
"resolved",
|
|
43418
|
+
"effect",
|
|
43419
|
+
"on_error",
|
|
43420
|
+
"unresolved_templates"
|
|
43421
|
+
],
|
|
43422
|
+
"properties": {
|
|
43423
|
+
"index": {
|
|
43424
|
+
"type": "integer"
|
|
43425
|
+
},
|
|
43426
|
+
"name": {
|
|
43427
|
+
"type": "string",
|
|
43428
|
+
"nullable": true
|
|
43429
|
+
},
|
|
43430
|
+
"type": {
|
|
43431
|
+
"type": "string"
|
|
43432
|
+
},
|
|
43433
|
+
"known": {
|
|
43434
|
+
"type": "boolean"
|
|
43435
|
+
},
|
|
43436
|
+
"resolved": {
|
|
43437
|
+
"type": "object",
|
|
43438
|
+
"additionalProperties": true,
|
|
43439
|
+
"description": "The step after template substitution."
|
|
43440
|
+
},
|
|
43441
|
+
"skipped_by": {
|
|
43442
|
+
"type": "string",
|
|
43443
|
+
"nullable": true
|
|
43444
|
+
},
|
|
43445
|
+
"effect": {
|
|
43446
|
+
"type": "string"
|
|
43447
|
+
},
|
|
43448
|
+
"on_error": {
|
|
43449
|
+
"type": "object",
|
|
43450
|
+
"properties": {
|
|
43451
|
+
"action": {
|
|
43452
|
+
"type": "string"
|
|
43453
|
+
},
|
|
43454
|
+
"max_attempts": {
|
|
43455
|
+
"type": "integer"
|
|
43456
|
+
},
|
|
43457
|
+
"backoff_secs": {
|
|
43458
|
+
"type": "integer"
|
|
43459
|
+
}
|
|
43460
|
+
}
|
|
43461
|
+
},
|
|
43462
|
+
"unresolved_templates": {
|
|
43463
|
+
"type": "array",
|
|
43464
|
+
"items": {
|
|
43465
|
+
"type": "string"
|
|
43466
|
+
}
|
|
43467
|
+
},
|
|
43468
|
+
"budget_exceeded": {
|
|
43469
|
+
"type": "string",
|
|
43470
|
+
"nullable": true
|
|
43471
|
+
}
|
|
43472
|
+
}
|
|
43473
|
+
}
|
|
43474
|
+
}
|
|
43475
|
+
}
|
|
43476
|
+
},
|
|
43477
|
+
"TriggerAutomationRequest": {
|
|
43478
|
+
"type": "object",
|
|
43479
|
+
"properties": {
|
|
43480
|
+
"input": {
|
|
43481
|
+
"type": "object",
|
|
43482
|
+
"additionalProperties": true,
|
|
43483
|
+
"description": "Exposed to steps as `{{trigger.*}}`."
|
|
43484
|
+
},
|
|
43485
|
+
"idempotency_key": {
|
|
43486
|
+
"type": "string",
|
|
43487
|
+
"maxLength": 128,
|
|
43488
|
+
"description": "Same key twice for one automation returns the existing run (200) instead\nof starting a second (201). `Idempotency-Key` header is equivalent.\n"
|
|
42894
43489
|
}
|
|
42895
43490
|
}
|
|
42896
43491
|
},
|
|
@@ -43003,6 +43598,15 @@
|
|
|
43003
43598
|
"updated_at": {
|
|
43004
43599
|
"type": "string",
|
|
43005
43600
|
"format": "date-time"
|
|
43601
|
+
},
|
|
43602
|
+
"spec_version": {
|
|
43603
|
+
"type": "integer",
|
|
43604
|
+
"description": "Current `automation_versions` version."
|
|
43605
|
+
},
|
|
43606
|
+
"webhook_signature_scheme": {
|
|
43607
|
+
"type": "string",
|
|
43608
|
+
"nullable": true,
|
|
43609
|
+
"description": "Inbound signature scheme name, never the secret."
|
|
43006
43610
|
}
|
|
43007
43611
|
}
|
|
43008
43612
|
},
|
|
@@ -43135,12 +43739,58 @@
|
|
|
43135
43739
|
"enum": [
|
|
43136
43740
|
"running",
|
|
43137
43741
|
"success",
|
|
43742
|
+
"completed_with_skips",
|
|
43138
43743
|
"failed",
|
|
43139
43744
|
"timed_out",
|
|
43140
43745
|
"cancelled",
|
|
43141
|
-
"awaiting_approval"
|
|
43746
|
+
"awaiting_approval",
|
|
43747
|
+
"waiting",
|
|
43748
|
+
"awaiting_callback"
|
|
43749
|
+
],
|
|
43750
|
+
"description": "`awaiting_approval`, `waiting` (a `wait_until` park) and `awaiting_callback`\nare parked states: the run's clock is stopped and it continues when the\napproval is decided, the wake time passes, or the callback URL is posted to.\n"
|
|
43751
|
+
},
|
|
43752
|
+
"paused_reason": {
|
|
43753
|
+
"type": "string",
|
|
43754
|
+
"nullable": true,
|
|
43755
|
+
"enum": [
|
|
43756
|
+
"approval",
|
|
43757
|
+
"wait_until",
|
|
43758
|
+
"callback"
|
|
43142
43759
|
]
|
|
43143
43760
|
},
|
|
43761
|
+
"paused_at_step": {
|
|
43762
|
+
"type": "integer",
|
|
43763
|
+
"nullable": true
|
|
43764
|
+
},
|
|
43765
|
+
"paused_approval_id": {
|
|
43766
|
+
"type": "string",
|
|
43767
|
+
"format": "uuid",
|
|
43768
|
+
"nullable": true
|
|
43769
|
+
},
|
|
43770
|
+
"paused_until": {
|
|
43771
|
+
"type": "string",
|
|
43772
|
+
"format": "date-time",
|
|
43773
|
+
"nullable": true
|
|
43774
|
+
},
|
|
43775
|
+
"paused_expires_at": {
|
|
43776
|
+
"type": "string",
|
|
43777
|
+
"format": "date-time",
|
|
43778
|
+
"nullable": true
|
|
43779
|
+
},
|
|
43780
|
+
"spec_version": {
|
|
43781
|
+
"type": "integer",
|
|
43782
|
+
"nullable": true
|
|
43783
|
+
},
|
|
43784
|
+
"idempotency_key": {
|
|
43785
|
+
"type": "string",
|
|
43786
|
+
"nullable": true
|
|
43787
|
+
},
|
|
43788
|
+
"parent_run_id": {
|
|
43789
|
+
"type": "string",
|
|
43790
|
+
"format": "uuid",
|
|
43791
|
+
"nullable": true,
|
|
43792
|
+
"description": "Set when a `call_automation` step started this run."
|
|
43793
|
+
},
|
|
43144
43794
|
"step_results": {
|
|
43145
43795
|
"nullable": true
|
|
43146
43796
|
},
|
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: "0.61.
|
|
5
|
+
version: "0.61.36"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -11989,6 +11989,10 @@ paths:
|
|
|
11989
11989
|
tags: [Automations]
|
|
11990
11990
|
summary: Trigger automation
|
|
11991
11991
|
operationId: triggerAutomation
|
|
11992
|
+
description: |
|
|
11993
|
+
Start a run now. With an `idempotency_key` (body or `Idempotency-Key` header) the
|
|
11994
|
+
same key returns the run already started for it (200) rather than a second run
|
|
11995
|
+
(201). `input` is exposed to steps as `{{trigger.*}}`.
|
|
11992
11996
|
parameters:
|
|
11993
11997
|
- name: automationId
|
|
11994
11998
|
in: path
|
|
@@ -11996,9 +12000,21 @@ paths:
|
|
|
11996
12000
|
schema:
|
|
11997
12001
|
type: string
|
|
11998
12002
|
format: uuid
|
|
12003
|
+
requestBody:
|
|
12004
|
+
required: false
|
|
12005
|
+
content:
|
|
12006
|
+
application/json:
|
|
12007
|
+
schema:
|
|
12008
|
+
$ref: "#/components/schemas/TriggerAutomationRequest"
|
|
11999
12009
|
responses:
|
|
12010
|
+
"201":
|
|
12011
|
+
description: Run started
|
|
12012
|
+
content:
|
|
12013
|
+
application/json:
|
|
12014
|
+
schema:
|
|
12015
|
+
$ref: "#/components/schemas/AutomationRunResponse"
|
|
12000
12016
|
"200":
|
|
12001
|
-
description:
|
|
12017
|
+
description: An earlier run with the same idempotency key
|
|
12002
12018
|
content:
|
|
12003
12019
|
application/json:
|
|
12004
12020
|
schema:
|
|
@@ -12272,6 +12288,231 @@ paths:
|
|
|
12272
12288
|
"404":
|
|
12273
12289
|
$ref: "#/components/responses/NotFound"
|
|
12274
12290
|
|
|
12291
|
+
/v1/automations/{automationId}/runs/{runId}/callback/{token}:
|
|
12292
|
+
post:
|
|
12293
|
+
tags: [Automations]
|
|
12294
|
+
summary: Continue a run parked on awaiting_callback
|
|
12295
|
+
operationId: automationRunCallback
|
|
12296
|
+
security: []
|
|
12297
|
+
description: |
|
|
12298
|
+
Public, authenticated by the per-run token. A spec with an `awaiting_callback`
|
|
12299
|
+
step gets the token at run start as `{{run.callback_url}}` / `{{run.callback_token}}`;
|
|
12300
|
+
an earlier step hands the URL to the external system, the step parks the run
|
|
12301
|
+
(`awaiting_callback`, up to its `timeout_secs`), and this POST continues it. The
|
|
12302
|
+
JSON body becomes `{{resume.*}}`. 409 when the run is not (yet) parked on a
|
|
12303
|
+
callback; 401 for a wrong token.
|
|
12304
|
+
parameters:
|
|
12305
|
+
- name: automationId
|
|
12306
|
+
in: path
|
|
12307
|
+
required: true
|
|
12308
|
+
schema:
|
|
12309
|
+
type: string
|
|
12310
|
+
format: uuid
|
|
12311
|
+
- name: runId
|
|
12312
|
+
in: path
|
|
12313
|
+
required: true
|
|
12314
|
+
schema:
|
|
12315
|
+
type: string
|
|
12316
|
+
format: uuid
|
|
12317
|
+
- name: token
|
|
12318
|
+
in: path
|
|
12319
|
+
required: true
|
|
12320
|
+
schema:
|
|
12321
|
+
type: string
|
|
12322
|
+
requestBody:
|
|
12323
|
+
required: false
|
|
12324
|
+
content:
|
|
12325
|
+
application/json:
|
|
12326
|
+
schema:
|
|
12327
|
+
type: object
|
|
12328
|
+
additionalProperties: true
|
|
12329
|
+
responses:
|
|
12330
|
+
"202":
|
|
12331
|
+
description: The run, continuing
|
|
12332
|
+
content:
|
|
12333
|
+
application/json:
|
|
12334
|
+
schema:
|
|
12335
|
+
$ref: "#/components/schemas/AutomationRunResponse"
|
|
12336
|
+
"401":
|
|
12337
|
+
$ref: "#/components/responses/Unauthorized"
|
|
12338
|
+
"409":
|
|
12339
|
+
$ref: "#/components/responses/Conflict"
|
|
12340
|
+
|
|
12341
|
+
/v1/automations/dry-run:
|
|
12342
|
+
post:
|
|
12343
|
+
tags: [Automations]
|
|
12344
|
+
summary: Preview an unsaved workflow spec
|
|
12345
|
+
operationId: dryRunAutomationSpec
|
|
12346
|
+
description: |
|
|
12347
|
+
What a run would do, with nothing done: every step after template substitution
|
|
12348
|
+
against a simulated context, its side effect, its `on_error` policy, templates
|
|
12349
|
+
that would resolve to nothing, conditions, and the budget it would hit. Step
|
|
12350
|
+
outputs are placeholders, so later steps' `{{steps.N.output…}}` show empty here.
|
|
12351
|
+
requestBody:
|
|
12352
|
+
required: true
|
|
12353
|
+
content:
|
|
12354
|
+
application/json:
|
|
12355
|
+
schema:
|
|
12356
|
+
$ref: "#/components/schemas/DryRunRequest"
|
|
12357
|
+
responses:
|
|
12358
|
+
"200":
|
|
12359
|
+
description: Preview
|
|
12360
|
+
content:
|
|
12361
|
+
application/json:
|
|
12362
|
+
schema:
|
|
12363
|
+
$ref: "#/components/schemas/DryRunResponse"
|
|
12364
|
+
"401":
|
|
12365
|
+
$ref: "#/components/responses/Unauthorized"
|
|
12366
|
+
|
|
12367
|
+
/v1/automations/{automationId}/dry-run:
|
|
12368
|
+
post:
|
|
12369
|
+
tags: [Automations]
|
|
12370
|
+
summary: Preview a run of this automation
|
|
12371
|
+
operationId: dryRunAutomation
|
|
12372
|
+
description: Same as the unsaved preview, defaulting to the automation's current spec.
|
|
12373
|
+
parameters:
|
|
12374
|
+
- name: automationId
|
|
12375
|
+
in: path
|
|
12376
|
+
required: true
|
|
12377
|
+
schema:
|
|
12378
|
+
type: string
|
|
12379
|
+
format: uuid
|
|
12380
|
+
requestBody:
|
|
12381
|
+
required: false
|
|
12382
|
+
content:
|
|
12383
|
+
application/json:
|
|
12384
|
+
schema:
|
|
12385
|
+
$ref: "#/components/schemas/DryRunRequest"
|
|
12386
|
+
responses:
|
|
12387
|
+
"200":
|
|
12388
|
+
description: Preview
|
|
12389
|
+
content:
|
|
12390
|
+
application/json:
|
|
12391
|
+
schema:
|
|
12392
|
+
$ref: "#/components/schemas/DryRunResponse"
|
|
12393
|
+
"401":
|
|
12394
|
+
$ref: "#/components/responses/Unauthorized"
|
|
12395
|
+
"404":
|
|
12396
|
+
$ref: "#/components/responses/NotFound"
|
|
12397
|
+
|
|
12398
|
+
/v1/automations/{automationId}/runs/{runId}/rerun:
|
|
12399
|
+
post:
|
|
12400
|
+
tags: [Automations]
|
|
12401
|
+
summary: Re-run from a step
|
|
12402
|
+
operationId: rerunAutomationFromStep
|
|
12403
|
+
description: |
|
|
12404
|
+
Start a new run seeded with this run's results up to `from_step` and continue from
|
|
12405
|
+
there, on the spec version the original run executed. Human-only; the original
|
|
12406
|
+
run must be finished. The new run has `trigger_source: rerun` and `parent_run_id`.
|
|
12407
|
+
parameters:
|
|
12408
|
+
- name: automationId
|
|
12409
|
+
in: path
|
|
12410
|
+
required: true
|
|
12411
|
+
schema:
|
|
12412
|
+
type: string
|
|
12413
|
+
format: uuid
|
|
12414
|
+
- name: runId
|
|
12415
|
+
in: path
|
|
12416
|
+
required: true
|
|
12417
|
+
schema:
|
|
12418
|
+
type: string
|
|
12419
|
+
format: uuid
|
|
12420
|
+
requestBody:
|
|
12421
|
+
required: false
|
|
12422
|
+
content:
|
|
12423
|
+
application/json:
|
|
12424
|
+
schema:
|
|
12425
|
+
type: object
|
|
12426
|
+
properties:
|
|
12427
|
+
from_step:
|
|
12428
|
+
type: integer
|
|
12429
|
+
minimum: 0
|
|
12430
|
+
default: 0
|
|
12431
|
+
description: Zero-based step index to start from.
|
|
12432
|
+
responses:
|
|
12433
|
+
"201":
|
|
12434
|
+
description: The new run
|
|
12435
|
+
content:
|
|
12436
|
+
application/json:
|
|
12437
|
+
schema:
|
|
12438
|
+
$ref: "#/components/schemas/AutomationRunResponse"
|
|
12439
|
+
"400":
|
|
12440
|
+
$ref: "#/components/responses/BadRequest"
|
|
12441
|
+
"401":
|
|
12442
|
+
$ref: "#/components/responses/Unauthorized"
|
|
12443
|
+
"404":
|
|
12444
|
+
$ref: "#/components/responses/NotFound"
|
|
12445
|
+
|
|
12446
|
+
/v1/automations/{automationId}/versions:
|
|
12447
|
+
get:
|
|
12448
|
+
tags: [Automations]
|
|
12449
|
+
summary: List spec versions
|
|
12450
|
+
operationId: listAutomationVersions
|
|
12451
|
+
description: |
|
|
12452
|
+
Every `workflow_spec` the automation has had, newest first. Version 1 is the
|
|
12453
|
+
spec it was created with; every update that changes the spec publishes the
|
|
12454
|
+
next one. Runs record the version they executed.
|
|
12455
|
+
parameters:
|
|
12456
|
+
- name: automationId
|
|
12457
|
+
in: path
|
|
12458
|
+
required: true
|
|
12459
|
+
schema:
|
|
12460
|
+
type: string
|
|
12461
|
+
format: uuid
|
|
12462
|
+
responses:
|
|
12463
|
+
"200":
|
|
12464
|
+
description: Versions
|
|
12465
|
+
content:
|
|
12466
|
+
application/json:
|
|
12467
|
+
schema:
|
|
12468
|
+
$ref: "#/components/schemas/AutomationVersionListResponse"
|
|
12469
|
+
"401":
|
|
12470
|
+
$ref: "#/components/responses/Unauthorized"
|
|
12471
|
+
"404":
|
|
12472
|
+
$ref: "#/components/responses/NotFound"
|
|
12473
|
+
|
|
12474
|
+
/v1/automations/{automationId}/versions/{version}/rollback:
|
|
12475
|
+
post:
|
|
12476
|
+
tags: [Automations]
|
|
12477
|
+
summary: Roll back to an earlier spec version
|
|
12478
|
+
operationId: rollbackAutomationVersion
|
|
12479
|
+
description: |
|
|
12480
|
+
Publishes the chosen version's spec as a new version and makes it current.
|
|
12481
|
+
Human-only. A rollback that widens what the automation can do relative to the
|
|
12482
|
+
live spec goes through the `automation.widen` control-plane consensus gate,
|
|
12483
|
+
like an edit would.
|
|
12484
|
+
parameters:
|
|
12485
|
+
- name: automationId
|
|
12486
|
+
in: path
|
|
12487
|
+
required: true
|
|
12488
|
+
schema:
|
|
12489
|
+
type: string
|
|
12490
|
+
format: uuid
|
|
12491
|
+
- name: version
|
|
12492
|
+
in: path
|
|
12493
|
+
required: true
|
|
12494
|
+
schema:
|
|
12495
|
+
type: integer
|
|
12496
|
+
requestBody:
|
|
12497
|
+
required: false
|
|
12498
|
+
content:
|
|
12499
|
+
application/json:
|
|
12500
|
+
schema:
|
|
12501
|
+
$ref: "#/components/schemas/RollbackAutomationRequest"
|
|
12502
|
+
responses:
|
|
12503
|
+
"200":
|
|
12504
|
+
description: The automation with the rolled-back spec current
|
|
12505
|
+
content:
|
|
12506
|
+
application/json:
|
|
12507
|
+
schema:
|
|
12508
|
+
$ref: "#/components/schemas/AutomationResponse"
|
|
12509
|
+
"401":
|
|
12510
|
+
$ref: "#/components/responses/Unauthorized"
|
|
12511
|
+
"403":
|
|
12512
|
+
$ref: "#/components/responses/Forbidden"
|
|
12513
|
+
"404":
|
|
12514
|
+
$ref: "#/components/responses/NotFound"
|
|
12515
|
+
|
|
12275
12516
|
/v1/automations/presets:
|
|
12276
12517
|
get:
|
|
12277
12518
|
tags: [Automations]
|
|
@@ -27735,6 +27976,181 @@ components:
|
|
|
27735
27976
|
additionalProperties: true
|
|
27736
27977
|
is_active:
|
|
27737
27978
|
type: boolean
|
|
27979
|
+
approval_id:
|
|
27980
|
+
type: string
|
|
27981
|
+
format: uuid
|
|
27982
|
+
description: |
|
|
27983
|
+
Control-plane approval authorising a widening change (adding a step that
|
|
27984
|
+
moves funds or reaches the network, raising or removing a `budget` cap).
|
|
27985
|
+
Required only when the org's consensus policy gates `automation.widen`.
|
|
27986
|
+
version_note:
|
|
27987
|
+
type: string
|
|
27988
|
+
description: Note recorded on the new spec version.
|
|
27989
|
+
webhook_signature:
|
|
27990
|
+
nullable: true
|
|
27991
|
+
description: |
|
|
27992
|
+
Inbound signature scheme for a webhook-triggered automation. `stripe`
|
|
27993
|
+
(`Stripe-Signature: t=…,v1=…` over `<t>.<body>`), `github`
|
|
27994
|
+
(`X-Hub-Signature-256: sha256=…` over the body) or `hmac_sha256`
|
|
27995
|
+
(`<header>: <hex|base64>` over the body). The secret is stored encrypted
|
|
27996
|
+
and never returned; `null` removes the scheme. With a scheme set, an
|
|
27997
|
+
unsigned or mis-signed delivery starts nothing.
|
|
27998
|
+
type: object
|
|
27999
|
+
properties:
|
|
28000
|
+
scheme:
|
|
28001
|
+
type: string
|
|
28002
|
+
enum: [stripe, github, hmac_sha256]
|
|
28003
|
+
secret:
|
|
28004
|
+
type: string
|
|
28005
|
+
minLength: 8
|
|
28006
|
+
maxLength: 512
|
|
28007
|
+
header:
|
|
28008
|
+
type: string
|
|
28009
|
+
description: Header carrying the signature (defaults per scheme).
|
|
28010
|
+
tolerance_secs:
|
|
28011
|
+
type: integer
|
|
28012
|
+
default: 300
|
|
28013
|
+
description: Timestamp tolerance for schemes that carry one (stripe).
|
|
28014
|
+
|
|
28015
|
+
AutomationVersionResponse:
|
|
28016
|
+
type: object
|
|
28017
|
+
required: [version, spec_hash, workflow_spec, created_by_type, created_at, current]
|
|
28018
|
+
properties:
|
|
28019
|
+
version:
|
|
28020
|
+
type: integer
|
|
28021
|
+
spec_hash:
|
|
28022
|
+
type: string
|
|
28023
|
+
description: SHA-256 of the canonical (sorted-key) JSON of the spec.
|
|
28024
|
+
workflow_spec:
|
|
28025
|
+
oneOf:
|
|
28026
|
+
- type: array
|
|
28027
|
+
items:
|
|
28028
|
+
type: object
|
|
28029
|
+
additionalProperties: true
|
|
28030
|
+
- type: object
|
|
28031
|
+
additionalProperties: true
|
|
28032
|
+
created_by_type:
|
|
28033
|
+
type: string
|
|
28034
|
+
note:
|
|
28035
|
+
type: string
|
|
28036
|
+
nullable: true
|
|
28037
|
+
created_at:
|
|
28038
|
+
type: string
|
|
28039
|
+
format: date-time
|
|
28040
|
+
current:
|
|
28041
|
+
type: boolean
|
|
28042
|
+
|
|
28043
|
+
AutomationVersionListResponse:
|
|
28044
|
+
type: object
|
|
28045
|
+
required: [current_version, versions]
|
|
28046
|
+
properties:
|
|
28047
|
+
current_version:
|
|
28048
|
+
type: integer
|
|
28049
|
+
versions:
|
|
28050
|
+
type: array
|
|
28051
|
+
items:
|
|
28052
|
+
$ref: "#/components/schemas/AutomationVersionResponse"
|
|
28053
|
+
|
|
28054
|
+
RollbackAutomationRequest:
|
|
28055
|
+
type: object
|
|
28056
|
+
properties:
|
|
28057
|
+
note:
|
|
28058
|
+
type: string
|
|
28059
|
+
approval_id:
|
|
28060
|
+
type: string
|
|
28061
|
+
format: uuid
|
|
28062
|
+
description: Control-plane approval when rolling back to a wider spec.
|
|
28063
|
+
|
|
28064
|
+
DryRunRequest:
|
|
28065
|
+
type: object
|
|
28066
|
+
properties:
|
|
28067
|
+
workflow_spec:
|
|
28068
|
+
description: Spec to preview (required on the unsaved-spec route).
|
|
28069
|
+
oneOf:
|
|
28070
|
+
- type: array
|
|
28071
|
+
items:
|
|
28072
|
+
type: object
|
|
28073
|
+
additionalProperties: true
|
|
28074
|
+
- type: object
|
|
28075
|
+
additionalProperties: true
|
|
28076
|
+
input:
|
|
28077
|
+
type: object
|
|
28078
|
+
additionalProperties: true
|
|
28079
|
+
description: Simulated trigger payload (`{{trigger.*}}`).
|
|
28080
|
+
|
|
28081
|
+
DryRunResponse:
|
|
28082
|
+
type: object
|
|
28083
|
+
required: [ok]
|
|
28084
|
+
properties:
|
|
28085
|
+
ok:
|
|
28086
|
+
type: boolean
|
|
28087
|
+
description: True when there are no warnings.
|
|
28088
|
+
error:
|
|
28089
|
+
type: string
|
|
28090
|
+
warnings:
|
|
28091
|
+
type: array
|
|
28092
|
+
items:
|
|
28093
|
+
type: string
|
|
28094
|
+
parks:
|
|
28095
|
+
type: integer
|
|
28096
|
+
description: How many steps park the run.
|
|
28097
|
+
budget:
|
|
28098
|
+
type: object
|
|
28099
|
+
additionalProperties: true
|
|
28100
|
+
steps:
|
|
28101
|
+
type: array
|
|
28102
|
+
items:
|
|
28103
|
+
type: object
|
|
28104
|
+
required: [index, type, known, resolved, effect, on_error, unresolved_templates]
|
|
28105
|
+
properties:
|
|
28106
|
+
index:
|
|
28107
|
+
type: integer
|
|
28108
|
+
name:
|
|
28109
|
+
type: string
|
|
28110
|
+
nullable: true
|
|
28111
|
+
type:
|
|
28112
|
+
type: string
|
|
28113
|
+
known:
|
|
28114
|
+
type: boolean
|
|
28115
|
+
resolved:
|
|
28116
|
+
type: object
|
|
28117
|
+
additionalProperties: true
|
|
28118
|
+
description: The step after template substitution.
|
|
28119
|
+
skipped_by:
|
|
28120
|
+
type: string
|
|
28121
|
+
nullable: true
|
|
28122
|
+
effect:
|
|
28123
|
+
type: string
|
|
28124
|
+
on_error:
|
|
28125
|
+
type: object
|
|
28126
|
+
properties:
|
|
28127
|
+
action:
|
|
28128
|
+
type: string
|
|
28129
|
+
max_attempts:
|
|
28130
|
+
type: integer
|
|
28131
|
+
backoff_secs:
|
|
28132
|
+
type: integer
|
|
28133
|
+
unresolved_templates:
|
|
28134
|
+
type: array
|
|
28135
|
+
items:
|
|
28136
|
+
type: string
|
|
28137
|
+
budget_exceeded:
|
|
28138
|
+
type: string
|
|
28139
|
+
nullable: true
|
|
28140
|
+
|
|
28141
|
+
TriggerAutomationRequest:
|
|
28142
|
+
type: object
|
|
28143
|
+
properties:
|
|
28144
|
+
input:
|
|
28145
|
+
type: object
|
|
28146
|
+
additionalProperties: true
|
|
28147
|
+
description: Exposed to steps as `{{trigger.*}}`.
|
|
28148
|
+
idempotency_key:
|
|
28149
|
+
type: string
|
|
28150
|
+
maxLength: 128
|
|
28151
|
+
description: |
|
|
28152
|
+
Same key twice for one automation returns the existing run (200) instead
|
|
28153
|
+
of starting a second (201). `Idempotency-Key` header is equivalent.
|
|
27738
28154
|
|
|
27739
28155
|
AutomationResponse:
|
|
27740
28156
|
type: object
|
|
@@ -27804,6 +28220,13 @@ components:
|
|
|
27804
28220
|
updated_at:
|
|
27805
28221
|
type: string
|
|
27806
28222
|
format: date-time
|
|
28223
|
+
spec_version:
|
|
28224
|
+
type: integer
|
|
28225
|
+
description: Current `automation_versions` version.
|
|
28226
|
+
webhook_signature_scheme:
|
|
28227
|
+
type: string
|
|
28228
|
+
nullable: true
|
|
28229
|
+
description: Inbound signature scheme name, never the secret.
|
|
27807
28230
|
|
|
27808
28231
|
AutomationCreatedResponse:
|
|
27809
28232
|
allOf:
|
|
@@ -27882,7 +28305,41 @@ components:
|
|
|
27882
28305
|
format: uuid
|
|
27883
28306
|
status:
|
|
27884
28307
|
type: string
|
|
27885
|
-
enum: [running, success, failed, timed_out, cancelled, awaiting_approval]
|
|
28308
|
+
enum: [running, success, completed_with_skips, failed, timed_out, cancelled, awaiting_approval, waiting, awaiting_callback]
|
|
28309
|
+
description: |
|
|
28310
|
+
`awaiting_approval`, `waiting` (a `wait_until` park) and `awaiting_callback`
|
|
28311
|
+
are parked states: the run's clock is stopped and it continues when the
|
|
28312
|
+
approval is decided, the wake time passes, or the callback URL is posted to.
|
|
28313
|
+
paused_reason:
|
|
28314
|
+
type: string
|
|
28315
|
+
nullable: true
|
|
28316
|
+
enum: [approval, wait_until, callback]
|
|
28317
|
+
paused_at_step:
|
|
28318
|
+
type: integer
|
|
28319
|
+
nullable: true
|
|
28320
|
+
paused_approval_id:
|
|
28321
|
+
type: string
|
|
28322
|
+
format: uuid
|
|
28323
|
+
nullable: true
|
|
28324
|
+
paused_until:
|
|
28325
|
+
type: string
|
|
28326
|
+
format: date-time
|
|
28327
|
+
nullable: true
|
|
28328
|
+
paused_expires_at:
|
|
28329
|
+
type: string
|
|
28330
|
+
format: date-time
|
|
28331
|
+
nullable: true
|
|
28332
|
+
spec_version:
|
|
28333
|
+
type: integer
|
|
28334
|
+
nullable: true
|
|
28335
|
+
idempotency_key:
|
|
28336
|
+
type: string
|
|
28337
|
+
nullable: true
|
|
28338
|
+
parent_run_id:
|
|
28339
|
+
type: string
|
|
28340
|
+
format: uuid
|
|
28341
|
+
nullable: true
|
|
28342
|
+
description: Set when a `call_automation` step started this run.
|
|
27886
28343
|
step_results:
|
|
27887
28344
|
nullable: true
|
|
27888
28345
|
error:
|