pgbeam 0.4.9 → 0.4.11
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/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{operations-map.gen-gco09oqg.cjs → operations-map.gen-iasufy3r.cjs} +94 -0
- package/dist/{operations-map.gen-ltx3brqw.d.ts → operations-map.gen-j0pyh1mi.d.ts} +3472 -787
- package/dist/{operations-map.gen-dojer3ji.js → operations-map.gen-nws17nv5.js} +94 -0
- package/dist/operations.cjs +680 -14
- package/dist/operations.d.cts +1 -1
- package/dist/operations.d.mts +1 -1
- package/dist/operations.mjs +680 -14
- package/package.json +4 -4
package/dist/operations.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2
2
|
|
|
3
|
-
var operationsMap_gen = require('./operations-map.gen-
|
|
3
|
+
var operationsMap_gen = require('./operations-map.gen-iasufy3r.cjs');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Generated by generate-sdk-ts-maps.ts from backend/openapi/bundles/public.yaml — do not edit manually.
|
|
@@ -16,7 +16,15 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
16
16
|
"path": "/v1/account/export",
|
|
17
17
|
"summary": "Export account data",
|
|
18
18
|
"description": "Returns all personal data associated with the authenticated user in a structured JSON format. Supports GDPR data portability and CCPA right to know. Audit logs are limited to the most recent 1000 entries.",
|
|
19
|
-
"parameters": [
|
|
19
|
+
"parameters": [
|
|
20
|
+
{
|
|
21
|
+
"name": "If-None-Match",
|
|
22
|
+
"in": "header",
|
|
23
|
+
"required": false,
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
26
|
+
}
|
|
27
|
+
],
|
|
20
28
|
"requestBodyType": "",
|
|
21
29
|
"requestBodyRequired": false,
|
|
22
30
|
"responseType": "{ audit_logs: ({ action: string; created_at: string; id: string; ip_address?: string; resource_id?: string; resource_type?: string })[]; consents: ({ accepted_at: string; document_type: string; document_version: string; id: string; ip_address?: string })[]; databases: ({ created_at: string; host: string; id: string; name: string; port: number; project_id: string; role: string; ssl_mode: string })[]; email_preferences: { marketing_emails?: boolean; usage_limit_alerts?: boolean }; exported_at: string; organizations: ({ created_at: string; id: string; name: string; role: string; slug: string })[]; projects: ({ created_at: string; description: string; id: string; name: string; org_id: string; status: string })[]; sessions: ({ created_at: string; expires_at: string; id: string; ip_address?: string; user_agent?: string })[]; user: { created_at: string; email: string; email_verified: boolean; id: string; image?: string; name: string; updated_at: string } }",
|
|
@@ -49,6 +57,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
49
57
|
"required": false,
|
|
50
58
|
"type": "string",
|
|
51
59
|
"description": "Opaque token for cursor-based pagination."
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "If-None-Match",
|
|
63
|
+
"in": "header",
|
|
64
|
+
"required": false,
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
52
67
|
}
|
|
53
68
|
],
|
|
54
69
|
"requestBodyType": "",
|
|
@@ -69,6 +84,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
69
84
|
"required": true,
|
|
70
85
|
"type": "string",
|
|
71
86
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "Idempotency-Key",
|
|
90
|
+
"in": "header",
|
|
91
|
+
"required": false,
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
72
94
|
}
|
|
73
95
|
],
|
|
74
96
|
"requestBodyType": "{ expires_at?: string; name: string; policy_profile_id: string; principal_type?: \"agent\" | \"human\" }",
|
|
@@ -96,6 +118,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
96
118
|
"required": true,
|
|
97
119
|
"type": "string",
|
|
98
120
|
"description": "Unique agent credential identifier (prefixed, e.g. agt_xxx)."
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "If-None-Match",
|
|
124
|
+
"in": "header",
|
|
125
|
+
"required": false,
|
|
126
|
+
"type": "string",
|
|
127
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
99
128
|
}
|
|
100
129
|
],
|
|
101
130
|
"requestBodyType": "",
|
|
@@ -108,7 +137,7 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
108
137
|
"method": "PATCH",
|
|
109
138
|
"path": "/v1/projects/{project_id}/agents/{agent_id}",
|
|
110
139
|
"summary": "Enable or disable an agent credential",
|
|
111
|
-
"description": "Toggles the kill-switch. Disabling drops live connections within seconds.",
|
|
140
|
+
"description": "Toggles the kill-switch between active and disabled. Disabling drops live connections within seconds. Revocation is terminal and cannot be undone here: a revoked credential answers 409, because revoking does not change its secrets, so putting it back to active would make the revoked password and MCP token work again. Issue a new credential instead.",
|
|
112
141
|
"parameters": [
|
|
113
142
|
{
|
|
114
143
|
"name": "project_id",
|
|
@@ -123,6 +152,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
123
152
|
"required": true,
|
|
124
153
|
"type": "string",
|
|
125
154
|
"description": "Unique agent credential identifier (prefixed, e.g. agt_xxx)."
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "If-Match",
|
|
158
|
+
"in": "header",
|
|
159
|
+
"required": false,
|
|
160
|
+
"type": "string",
|
|
161
|
+
"description": "Entity tag the write is based on, taken from the `ETag` of the read that produced the values being sent. The write proceeds only if it still matches the current representation; otherwise it is refused with `412 Precondition Failed` and nothing is changed.\n\nThis is what makes a read-modify-write safe. Without it the last writer wins and a concurrent edit is silently discarded, which is the failure an agent is most likely to cause and least likely to notice. The `412` response carries the current `ETag`, so a caller can re-read, re-apply its change and retry.\n\nOmitting the header keeps the old unconditional behaviour. `*` matches any current representation, which asserts only that the resource exists."
|
|
126
162
|
}
|
|
127
163
|
],
|
|
128
164
|
"requestBodyType": "{ status: \"active\" | \"disabled\" }",
|
|
@@ -177,6 +213,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
177
213
|
"required": true,
|
|
178
214
|
"type": "string",
|
|
179
215
|
"description": "Unique agent credential identifier (prefixed, e.g. agt_xxx)."
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"name": "Idempotency-Key",
|
|
219
|
+
"in": "header",
|
|
220
|
+
"required": false,
|
|
221
|
+
"type": "string",
|
|
222
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
180
223
|
}
|
|
181
224
|
],
|
|
182
225
|
"requestBodyType": "",
|
|
@@ -245,6 +288,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
245
288
|
"required": false,
|
|
246
289
|
"type": "string",
|
|
247
290
|
"description": "Opaque token for cursor-based pagination."
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"name": "If-None-Match",
|
|
294
|
+
"in": "header",
|
|
295
|
+
"required": false,
|
|
296
|
+
"type": "string",
|
|
297
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
248
298
|
}
|
|
249
299
|
],
|
|
250
300
|
"requestBodyType": "",
|
|
@@ -313,6 +363,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
313
363
|
"required": false,
|
|
314
364
|
"type": "string",
|
|
315
365
|
"description": "Opaque token for cursor-based pagination."
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"name": "If-None-Match",
|
|
369
|
+
"in": "header",
|
|
370
|
+
"required": false,
|
|
371
|
+
"type": "string",
|
|
372
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
316
373
|
}
|
|
317
374
|
],
|
|
318
375
|
"requestBodyType": "",
|
|
@@ -443,6 +500,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
443
500
|
"required": false,
|
|
444
501
|
"type": "number",
|
|
445
502
|
"description": "Maximum number of items to return (1-100, default 20)."
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"name": "If-None-Match",
|
|
506
|
+
"in": "header",
|
|
507
|
+
"required": false,
|
|
508
|
+
"type": "string",
|
|
509
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
446
510
|
}
|
|
447
511
|
],
|
|
448
512
|
"requestBodyType": "",
|
|
@@ -546,6 +610,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
546
610
|
"required": false,
|
|
547
611
|
"type": "string",
|
|
548
612
|
"description": "Return entries strictly older than this timestamp (cursor / upper bound)."
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"name": "If-None-Match",
|
|
616
|
+
"in": "header",
|
|
617
|
+
"required": false,
|
|
618
|
+
"type": "string",
|
|
619
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
549
620
|
}
|
|
550
621
|
],
|
|
551
622
|
"requestBodyType": "",
|
|
@@ -580,6 +651,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
580
651
|
"required": false,
|
|
581
652
|
"type": "string",
|
|
582
653
|
"description": "Return entries strictly older than this timestamp (cursor / upper bound)."
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"name": "If-None-Match",
|
|
657
|
+
"in": "header",
|
|
658
|
+
"required": false,
|
|
659
|
+
"type": "string",
|
|
660
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
583
661
|
}
|
|
584
662
|
],
|
|
585
663
|
"requestBodyType": "",
|
|
@@ -587,13 +665,41 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
587
665
|
"responseType": "{ anchor_status?: string; anchor_verified_from_seq?: number; anchor_verified_through_seq?: number; chain_end_seq?: number; chain_start_seq?: number; failure_reason?: string; first_broken_seq?: number; keyed_count: number; link_status?: string; link_verified_from_seq?: number; ok: boolean; unchained_count: number; verified_at: string; verified_count: number }",
|
|
588
666
|
"responseStatus": "200"
|
|
589
667
|
},
|
|
668
|
+
"executeBatch": {
|
|
669
|
+
"operationId": "executeBatch",
|
|
670
|
+
"method": "POST",
|
|
671
|
+
"path": "/v1/projects/{project_id}/batch",
|
|
672
|
+
"summary": "Apply many project operations in one request",
|
|
673
|
+
"description": "Applies up to 100 project-scoped operations in a single request, so an agent acting on many resources does not have to loop one call at a time. The loops this exists for are the ones the single-resource endpoints leave an operator running by hand: revoking or disabling every agent credential during an incident, triaging a burst of anomaly alerts, and importing the column descriptions for a whole schema.\n\nThe operation set is closed. A batch is not a tunnel for arbitrary requests; each kind it can perform is named in the contract, carries its own permission, and is authorized independently against the caller's scope before any of them runs, so a batch can never act outside the scope the caller already had. Every operation targets the project in the path, and an id belonging to another project is reported exactly as a nonexistent one is, so this cannot be used to probe for resources the caller cannot see.\n\n`mode` is required and decides what a failure means. `atomic` runs the whole batch in one transaction: the first runtime failure rolls it back, the response is 409, and every operation that did not itself fail is reported `not_applied`. `independent` applies each operation on its own and answers 200 with a per-operation status, so a caller can retry exactly the failures. Structural problems (an unknown operation kind, a missing field, a duplicate target) are all found before any work happens and are answered with a single 400.\n\nA batch costs the rate limiter one unit per operation, not one per HTTP request, so it is exactly as expensive as the loop it replaces and cannot be used to sidestep the quota. When the remaining quota cannot cover the whole batch the response is 429 and nothing runs, which is a better answer than a loop that discovers the same thing halfway through. A batch refused this way still costs the one unit any request costs, so an oversized batch is not a free way to probe the quota.",
|
|
674
|
+
"parameters": [
|
|
675
|
+
{
|
|
676
|
+
"name": "project_id",
|
|
677
|
+
"in": "path",
|
|
678
|
+
"required": true,
|
|
679
|
+
"type": "string",
|
|
680
|
+
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
681
|
+
}
|
|
682
|
+
],
|
|
683
|
+
"requestBodyType": "{ mode: \"atomic\" | \"independent\"; operations: ({ agent_id?: string; agent_status?: \"active\" | \"disabled\"; annotation?: { column_name?: string; description: string; schema_name?: string; table_name: string }; anomaly_id?: string; anomaly_status?: \"acknowledged\" | \"resolved\"; id: string; op: \"revoke_agent_credential\" | \"set_agent_credential_status\" | \"update_anomaly_alert\" | \"put_schema_annotation\" })[] }",
|
|
684
|
+
"requestBodyRequired": true,
|
|
685
|
+
"responseType": "{ applied: boolean; mode: \"atomic\" | \"independent\"; results: ({ error?: { code: \"invalid_input\" | \"not_found\" | \"conflict\" | \"internal\"; message: string }; id: string; op: string; status: \"succeeded\" | \"failed\" | \"not_applied\" })[]; summary: { failed: number; not_applied: number; requested: number; succeeded: number } }",
|
|
686
|
+
"responseStatus": "200"
|
|
687
|
+
},
|
|
590
688
|
"listPlans": {
|
|
591
689
|
"operationId": "listPlans",
|
|
592
690
|
"method": "GET",
|
|
593
691
|
"path": "/v1/plans",
|
|
594
692
|
"summary": "List available plans",
|
|
595
693
|
"description": "Returns all available plan tiers with their limits and pricing.",
|
|
596
|
-
"parameters": [
|
|
694
|
+
"parameters": [
|
|
695
|
+
{
|
|
696
|
+
"name": "If-None-Match",
|
|
697
|
+
"in": "header",
|
|
698
|
+
"required": false,
|
|
699
|
+
"type": "string",
|
|
700
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
701
|
+
}
|
|
702
|
+
],
|
|
597
703
|
"requestBodyType": "",
|
|
598
704
|
"requestBodyRequired": false,
|
|
599
705
|
"responseType": "{ plans: ({ annual_price?: number; description?: string; label: string; limits: { audit_retention_days: number; bytes_per_month: number; included_seats: number; max_agent_credentials: number; max_connections: number; max_databases: number; max_projects: number; max_query_shapes: number; queries_per_day: number; queries_per_second: number; sandbox_idle_seconds: number; sandbox_max_branches: number; sandbox_max_upstream_bytes: number; sandbox_ttl_seconds: number }; monthly_price: number; name: string; overage_text?: string; trial_days?: number })[] }",
|
|
@@ -612,6 +718,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
612
718
|
"required": true,
|
|
613
719
|
"type": "string",
|
|
614
720
|
"description": "Unique organization identifier."
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"name": "If-None-Match",
|
|
724
|
+
"in": "header",
|
|
725
|
+
"required": false,
|
|
726
|
+
"type": "string",
|
|
727
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
615
728
|
}
|
|
616
729
|
],
|
|
617
730
|
"requestBodyType": "",
|
|
@@ -632,6 +745,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
632
745
|
"required": true,
|
|
633
746
|
"type": "string",
|
|
634
747
|
"description": "Unique organization identifier."
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"name": "If-None-Match",
|
|
751
|
+
"in": "header",
|
|
752
|
+
"required": false,
|
|
753
|
+
"type": "string",
|
|
754
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
635
755
|
}
|
|
636
756
|
],
|
|
637
757
|
"requestBodyType": "",
|
|
@@ -713,6 +833,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
713
833
|
"required": false,
|
|
714
834
|
"type": "string",
|
|
715
835
|
"description": "Opaque token for cursor-based pagination."
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
"name": "If-None-Match",
|
|
839
|
+
"in": "header",
|
|
840
|
+
"required": false,
|
|
841
|
+
"type": "string",
|
|
842
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
716
843
|
}
|
|
717
844
|
],
|
|
718
845
|
"requestBodyType": "",
|
|
@@ -781,6 +908,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
781
908
|
"required": false,
|
|
782
909
|
"type": "string",
|
|
783
910
|
"description": "Opaque token for cursor-based pagination."
|
|
911
|
+
},
|
|
912
|
+
{
|
|
913
|
+
"name": "If-None-Match",
|
|
914
|
+
"in": "header",
|
|
915
|
+
"required": false,
|
|
916
|
+
"type": "string",
|
|
917
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
784
918
|
}
|
|
785
919
|
],
|
|
786
920
|
"requestBodyType": "",
|
|
@@ -849,6 +983,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
849
983
|
"required": false,
|
|
850
984
|
"type": "string",
|
|
851
985
|
"description": "Opaque token for cursor-based pagination."
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
"name": "If-None-Match",
|
|
989
|
+
"in": "header",
|
|
990
|
+
"required": false,
|
|
991
|
+
"type": "string",
|
|
992
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
852
993
|
}
|
|
853
994
|
],
|
|
854
995
|
"requestBodyType": "",
|
|
@@ -869,6 +1010,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
869
1010
|
"required": true,
|
|
870
1011
|
"type": "string",
|
|
871
1012
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
"name": "Idempotency-Key",
|
|
1016
|
+
"in": "header",
|
|
1017
|
+
"required": false,
|
|
1018
|
+
"type": "string",
|
|
1019
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
872
1020
|
}
|
|
873
1021
|
],
|
|
874
1022
|
"requestBodyType": "{ auto_read_routing?: boolean; cache_config?: { enabled: boolean; max_entries: number; swr_seconds: number; ttl_seconds: number }; host: string; name: string; password: string; pool_config?: { max_active?: number; min_pool_size: number; pool_mode: \"session\" | \"transaction\" | \"statement\"; pool_size: number }; pool_region?: string; port: number; query_timeout_ms?: number; role?: \"primary\" | \"replica\"; ssl_mode?: \"disable\" | \"allow\" | \"prefer\" | \"require\" | \"verify-ca\" | \"verify-full\"; username: string }",
|
|
@@ -896,6 +1044,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
896
1044
|
"required": true,
|
|
897
1045
|
"type": "string",
|
|
898
1046
|
"description": "Unique database identifier (prefixed, e.g. db_xxx)."
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
"name": "If-None-Match",
|
|
1050
|
+
"in": "header",
|
|
1051
|
+
"required": false,
|
|
1052
|
+
"type": "string",
|
|
1053
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
899
1054
|
}
|
|
900
1055
|
],
|
|
901
1056
|
"requestBodyType": "",
|
|
@@ -923,6 +1078,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
923
1078
|
"required": true,
|
|
924
1079
|
"type": "string",
|
|
925
1080
|
"description": "Unique database identifier (prefixed, e.g. db_xxx)."
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"name": "If-Match",
|
|
1084
|
+
"in": "header",
|
|
1085
|
+
"required": false,
|
|
1086
|
+
"type": "string",
|
|
1087
|
+
"description": "Entity tag the write is based on, taken from the `ETag` of the read that produced the values being sent. The write proceeds only if it still matches the current representation; otherwise it is refused with `412 Precondition Failed` and nothing is changed.\n\nThis is what makes a read-modify-write safe. Without it the last writer wins and a concurrent edit is silently discarded, which is the failure an agent is most likely to cause and least likely to notice. The `412` response carries the current `ETag`, so a caller can re-read, re-apply its change and retry.\n\nOmitting the header keeps the old unconditional behaviour. `*` matches any current representation, which asserts only that the resource exists."
|
|
926
1088
|
}
|
|
927
1089
|
],
|
|
928
1090
|
"requestBodyType": "{ auto_read_routing?: boolean; cache_config?: { enabled: boolean; max_entries: number; swr_seconds: number; ttl_seconds: number }; host?: string; name?: string; password?: string; pool_config?: { max_active?: number; min_pool_size: number; pool_mode: \"session\" | \"transaction\" | \"statement\"; pool_size: number }; pool_region?: string; port?: number; query_timeout_ms?: number; role?: \"primary\" | \"replica\"; ssl_mode?: \"disable\" | \"allow\" | \"prefer\" | \"require\" | \"verify-ca\" | \"verify-full\"; username?: string }",
|
|
@@ -1031,6 +1193,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1031
1193
|
"required": true,
|
|
1032
1194
|
"type": "string",
|
|
1033
1195
|
"description": "Unique database identifier (prefixed, e.g. db_xxx)."
|
|
1196
|
+
},
|
|
1197
|
+
{
|
|
1198
|
+
"name": "If-None-Match",
|
|
1199
|
+
"in": "header",
|
|
1200
|
+
"required": false,
|
|
1201
|
+
"type": "string",
|
|
1202
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1034
1203
|
}
|
|
1035
1204
|
],
|
|
1036
1205
|
"requestBodyType": "",
|
|
@@ -1038,6 +1207,50 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1038
1207
|
"responseType": "{ error?: string; relations: ({ columns: ({ data_type: string; is_binary: boolean; name: string })[]; kind: \"table\" | \"view\" | \"materialized_view\" | \"other\"; name: string; schema: string })[]; scanned_columns: number; scanned_relations: number; truncated?: boolean }",
|
|
1039
1208
|
"responseStatus": "200"
|
|
1040
1209
|
},
|
|
1210
|
+
"getDemo": {
|
|
1211
|
+
"operationId": "getDemo",
|
|
1212
|
+
"method": "GET",
|
|
1213
|
+
"path": "/v1/demo",
|
|
1214
|
+
"summary": "Describe the demo sandbox",
|
|
1215
|
+
"description": "Returns everything an unauthenticated caller needs before asking for a demo credential: whether the demo is up, how much of the global ceiling is left, what each tier costs, the dataset schema with the treatment the demo policy applies to every column, and the walkthrough of statements that demonstrate each guardrail. Requires no account and no key.",
|
|
1216
|
+
"parameters": [],
|
|
1217
|
+
"requestBodyType": "",
|
|
1218
|
+
"requestBodyRequired": false,
|
|
1219
|
+
"responseType": "{ available: boolean; dataset: { schema: string; tables: ({ columns: ({ name: string; treatment: \"visible\" | \"redacted\" | \"hashed\" | \"nulled\"; type: string })[]; description: string; name: string; reachable: boolean })[] }; live_sessions: number; max_live_sessions: number; max_sessions_per_hour_per_client: number; retry_after_seconds?: number; tiers: ({ max_rows: number; name: \"free\" | \"extended\"; price_usd_cents: number; purchasable: boolean; query_budget: number; resource?: string; ttl_seconds: number })[]; unavailable_reason?: string; upgrade: { description: string; docs_url: string; policy_endpoint: string; signup_url: string }; walkthrough: ({ expect: \"allow\" | \"masked\" | \"blocked\"; expect_columns?: ({ name: string; treatment: \"visible\" | \"redacted\" | \"hashed\" | \"nulled\"; type: string })[]; expect_rule?: string; sql: string; step: number; title: string; why: string })[] }",
|
|
1220
|
+
"responseStatus": "200"
|
|
1221
|
+
},
|
|
1222
|
+
"createDemoCredential": {
|
|
1223
|
+
"operationId": "createDemoCredential",
|
|
1224
|
+
"method": "POST",
|
|
1225
|
+
"path": "/v1/demo/credentials",
|
|
1226
|
+
"summary": "Issue a demo credential",
|
|
1227
|
+
"description": "Issues a scoped, read-only, short-lived PostgreSQL credential plus a hosted MCP token against PgBeam's own demo database, with no account and no key. The credential is governed by the same wire-protocol policy engine every customer credential runs through, so a SELECT of a PII column comes back masked, a statement naming the table left off the allowlist is blocked, and a write is refused, all with machine-readable reasons. The connection string and MCP token are shown once. The response also carries the policy document that governed the demo, so a caller who then opens an account can create the same policy on its own database verbatim.\nRefusals are distinct on purpose. 429 means this client has asked for too many credentials in the last hour and should wait. 503 with a Retry-After header means the global ceiling on concurrent demo credentials is full, so backing off individually will not help; the header says when the oldest session expires. 503 also covers a deployment with no demo database configured.",
|
|
1228
|
+
"parameters": [],
|
|
1229
|
+
"requestBodyType": "{ label?: string; payment_proof?: string; tier?: \"free\" | \"extended\" }",
|
|
1230
|
+
"requestBodyRequired": false,
|
|
1231
|
+
"responseType": "{ connection_string: string; dataset: { schema: string; tables: ({ columns: ({ name: string; treatment: \"visible\" | \"redacted\" | \"hashed\" | \"nulled\"; type: string })[]; description: string; name: string; reachable: boolean })[] }; expires_at: string; mcp_token: string; mcp_url: string; policy_template: { access_mode?: \"read_only\" | \"read_write\"; approval_auto_max_rows?: number; approval_mode?: \"off\" | \"writes\" | \"ddl\" | \"all\"; approval_timeout_seconds?: number; budget_queries_per_day?: number; budget_queries_per_hour?: number; egress_bytes_per_day?: number; masking_rules?: ({ column: string; kind: \"redact\" | \"null\" | \"hash\"; table: string })[]; max_affected_rows?: number; max_rows?: number; migration_safety?: \"off\" | \"warn\" | \"block\"; name: string; row_filters?: ({ predicate: string; table: string })[]; statement_rules?: { allow?: string[]; deny?: string[] }; statement_timeout_ms?: number; table_allowlist?: string[]; table_denylist?: string[]; write_mode?: \"normal\" | \"rollback\" | \"sandbox\" }; query_budget: number; session_id: string; tier: string; ttl_seconds: number; upgrade: { description: string; docs_url: string; policy_endpoint: string; signup_url: string }; walkthrough: ({ expect: \"allow\" | \"masked\" | \"blocked\"; expect_columns?: ({ name: string; treatment: \"visible\" | \"redacted\" | \"hashed\" | \"nulled\"; type: string })[]; expect_rule?: string; sql: string; step: number; title: string; why: string })[] }",
|
|
1232
|
+
"responseStatus": "201"
|
|
1233
|
+
},
|
|
1234
|
+
"releaseDemoCredential": {
|
|
1235
|
+
"operationId": "releaseDemoCredential",
|
|
1236
|
+
"method": "POST",
|
|
1237
|
+
"path": "/v1/demo/credentials/{session_id}/release",
|
|
1238
|
+
"summary": "Release a demo credential",
|
|
1239
|
+
"description": "Revokes a demo credential before its TTL runs out and returns its slot to the global ceiling. Callers that finish early should do this so the next evaluating agent is not turned away by a session nobody is using. The MCP token issued with the credential proves the caller holds it. Releasing an already-expired or already-released session succeeds with released=false.",
|
|
1240
|
+
"parameters": [
|
|
1241
|
+
{
|
|
1242
|
+
"name": "session_id",
|
|
1243
|
+
"in": "path",
|
|
1244
|
+
"required": true,
|
|
1245
|
+
"type": "string",
|
|
1246
|
+
"description": "The demo session to release, as returned when it was issued."
|
|
1247
|
+
}
|
|
1248
|
+
],
|
|
1249
|
+
"requestBodyType": "{ mcp_token: string }",
|
|
1250
|
+
"requestBodyRequired": true,
|
|
1251
|
+
"responseType": "{ live_sessions: number; released: boolean; session_id: string }",
|
|
1252
|
+
"responseStatus": "200"
|
|
1253
|
+
},
|
|
1041
1254
|
"listCustomDomains": {
|
|
1042
1255
|
"operationId": "listCustomDomains",
|
|
1043
1256
|
"method": "GET",
|
|
@@ -1065,6 +1278,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1065
1278
|
"required": false,
|
|
1066
1279
|
"type": "string",
|
|
1067
1280
|
"description": "Opaque token for cursor-based pagination."
|
|
1281
|
+
},
|
|
1282
|
+
{
|
|
1283
|
+
"name": "If-None-Match",
|
|
1284
|
+
"in": "header",
|
|
1285
|
+
"required": false,
|
|
1286
|
+
"type": "string",
|
|
1287
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1068
1288
|
}
|
|
1069
1289
|
],
|
|
1070
1290
|
"requestBodyType": "",
|
|
@@ -1085,6 +1305,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1085
1305
|
"required": true,
|
|
1086
1306
|
"type": "string",
|
|
1087
1307
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"name": "Idempotency-Key",
|
|
1311
|
+
"in": "header",
|
|
1312
|
+
"required": false,
|
|
1313
|
+
"type": "string",
|
|
1314
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
1088
1315
|
}
|
|
1089
1316
|
],
|
|
1090
1317
|
"requestBodyType": "{ domain: string }",
|
|
@@ -1152,7 +1379,15 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1152
1379
|
"path": "/v1/health",
|
|
1153
1380
|
"summary": "Health check",
|
|
1154
1381
|
"description": "Returns the health status of the API server.",
|
|
1155
|
-
"parameters": [
|
|
1382
|
+
"parameters": [
|
|
1383
|
+
{
|
|
1384
|
+
"name": "If-None-Match",
|
|
1385
|
+
"in": "header",
|
|
1386
|
+
"required": false,
|
|
1387
|
+
"type": "string",
|
|
1388
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1389
|
+
}
|
|
1390
|
+
],
|
|
1156
1391
|
"requestBodyType": "",
|
|
1157
1392
|
"requestBodyRequired": false,
|
|
1158
1393
|
"responseType": "{ image_sha: string; status: \"ok\" | \"degraded\"; timestamp?: string; version: string }",
|
|
@@ -1185,6 +1420,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1185
1420
|
"required": false,
|
|
1186
1421
|
"type": "string",
|
|
1187
1422
|
"description": "Opaque token for cursor-based pagination."
|
|
1423
|
+
},
|
|
1424
|
+
{
|
|
1425
|
+
"name": "If-None-Match",
|
|
1426
|
+
"in": "header",
|
|
1427
|
+
"required": false,
|
|
1428
|
+
"type": "string",
|
|
1429
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1188
1430
|
}
|
|
1189
1431
|
],
|
|
1190
1432
|
"requestBodyType": "",
|
|
@@ -1205,6 +1447,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1205
1447
|
"required": true,
|
|
1206
1448
|
"type": "string",
|
|
1207
1449
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
1450
|
+
},
|
|
1451
|
+
{
|
|
1452
|
+
"name": "Idempotency-Key",
|
|
1453
|
+
"in": "header",
|
|
1454
|
+
"required": false,
|
|
1455
|
+
"type": "string",
|
|
1456
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
1208
1457
|
}
|
|
1209
1458
|
],
|
|
1210
1459
|
"requestBodyType": "{ action: \"audit_only\" | \"kill\"; relation_name: string; schema_name?: string }",
|
|
@@ -1232,6 +1481,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1232
1481
|
"required": true,
|
|
1233
1482
|
"type": "string",
|
|
1234
1483
|
"description": "Unique honeytoken identifier (prefixed, e.g. hnt_xxx)."
|
|
1484
|
+
},
|
|
1485
|
+
{
|
|
1486
|
+
"name": "If-None-Match",
|
|
1487
|
+
"in": "header",
|
|
1488
|
+
"required": false,
|
|
1489
|
+
"type": "string",
|
|
1490
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1235
1491
|
}
|
|
1236
1492
|
],
|
|
1237
1493
|
"requestBodyType": "",
|
|
@@ -1259,6 +1515,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1259
1515
|
"required": true,
|
|
1260
1516
|
"type": "string",
|
|
1261
1517
|
"description": "Unique honeytoken identifier (prefixed, e.g. hnt_xxx)."
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
"name": "If-Match",
|
|
1521
|
+
"in": "header",
|
|
1522
|
+
"required": false,
|
|
1523
|
+
"type": "string",
|
|
1524
|
+
"description": "Entity tag the write is based on, taken from the `ETag` of the read that produced the values being sent. The write proceeds only if it still matches the current representation; otherwise it is refused with `412 Precondition Failed` and nothing is changed.\n\nThis is what makes a read-modify-write safe. Without it the last writer wins and a concurrent edit is silently discarded, which is the failure an agent is most likely to cause and least likely to notice. The `412` response carries the current `ETag`, so a caller can re-read, re-apply its change and retry.\n\nOmitting the header keeps the old unconditional behaviour. `*` matches any current representation, which asserts only that the resource exists."
|
|
1262
1525
|
}
|
|
1263
1526
|
],
|
|
1264
1527
|
"requestBodyType": "{ action: \"audit_only\" | \"kill\"; relation_name: string; schema_name?: string }",
|
|
@@ -1320,6 +1583,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1320
1583
|
"required": false,
|
|
1321
1584
|
"type": "number",
|
|
1322
1585
|
"description": "Maximum number of top queries to return (1-100)."
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"name": "If-None-Match",
|
|
1589
|
+
"in": "header",
|
|
1590
|
+
"required": false,
|
|
1591
|
+
"type": "string",
|
|
1592
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1323
1593
|
}
|
|
1324
1594
|
],
|
|
1325
1595
|
"requestBodyType": "",
|
|
@@ -1327,6 +1597,196 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1327
1597
|
"responseType": "{ cache: { hit_rate: number; total_hits: number; total_misses: number }; latency: { avg_ms: number; p99_ms: number }; queries: ({ avg_latency_ms: number; p99_latency_ms: number; query_hash: string; query_pattern: string; total_cache_hits: number; total_cache_misses: number; total_count: number })[] }",
|
|
1328
1598
|
"responseStatus": "200"
|
|
1329
1599
|
},
|
|
1600
|
+
"listOrgMembers": {
|
|
1601
|
+
"operationId": "listOrgMembers",
|
|
1602
|
+
"method": "GET",
|
|
1603
|
+
"path": "/v1/organizations/{org_id}/members",
|
|
1604
|
+
"summary": "List organization members",
|
|
1605
|
+
"description": "Lists the people who belong to the organization, and their roles.",
|
|
1606
|
+
"parameters": [
|
|
1607
|
+
{
|
|
1608
|
+
"name": "org_id",
|
|
1609
|
+
"in": "path",
|
|
1610
|
+
"required": true,
|
|
1611
|
+
"type": "string",
|
|
1612
|
+
"description": "Unique organization identifier."
|
|
1613
|
+
},
|
|
1614
|
+
{
|
|
1615
|
+
"name": "page_size",
|
|
1616
|
+
"in": "query",
|
|
1617
|
+
"required": false,
|
|
1618
|
+
"type": "number",
|
|
1619
|
+
"description": "Maximum number of items to return (1-100, default 20)."
|
|
1620
|
+
},
|
|
1621
|
+
{
|
|
1622
|
+
"name": "page_token",
|
|
1623
|
+
"in": "query",
|
|
1624
|
+
"required": false,
|
|
1625
|
+
"type": "string",
|
|
1626
|
+
"description": "Opaque token for cursor-based pagination."
|
|
1627
|
+
},
|
|
1628
|
+
{
|
|
1629
|
+
"name": "If-None-Match",
|
|
1630
|
+
"in": "header",
|
|
1631
|
+
"required": false,
|
|
1632
|
+
"type": "string",
|
|
1633
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1634
|
+
}
|
|
1635
|
+
],
|
|
1636
|
+
"requestBodyType": "",
|
|
1637
|
+
"requestBodyRequired": false,
|
|
1638
|
+
"responseType": "{ members: ({ created_at: string; email: string; id: string; image?: string; name: string; role: \"owner\" | \"admin\" | \"member\" | \"security_admin\" | \"billing_admin\" | \"auditor\" | \"policy-author\" | \"approver\"; user_id: string })[]; next_page_token?: string }",
|
|
1639
|
+
"responseStatus": "200"
|
|
1640
|
+
},
|
|
1641
|
+
"updateOrgMemberRole": {
|
|
1642
|
+
"operationId": "updateOrgMemberRole",
|
|
1643
|
+
"method": "PATCH",
|
|
1644
|
+
"path": "/v1/organizations/{org_id}/members/{member_id}",
|
|
1645
|
+
"summary": "Change a member's role",
|
|
1646
|
+
"description": "Changes what a member is allowed to do. An organization must keep at least one owner, so the last owner cannot be demoted, and `owner` cannot be assigned here: ownership transfer is a separate, higher-privilege flow.",
|
|
1647
|
+
"parameters": [
|
|
1648
|
+
{
|
|
1649
|
+
"name": "org_id",
|
|
1650
|
+
"in": "path",
|
|
1651
|
+
"required": true,
|
|
1652
|
+
"type": "string",
|
|
1653
|
+
"description": "Unique organization identifier."
|
|
1654
|
+
},
|
|
1655
|
+
{
|
|
1656
|
+
"name": "member_id",
|
|
1657
|
+
"in": "path",
|
|
1658
|
+
"required": true,
|
|
1659
|
+
"type": "string",
|
|
1660
|
+
"description": "Unique organization membership identifier. Unlike the resources PgBeam mints itself, memberships carry no type prefix: the id is opaque and is assigned when the membership row is created. Read it from `listOrgMembers` rather than constructing it."
|
|
1661
|
+
}
|
|
1662
|
+
],
|
|
1663
|
+
"requestBodyType": "{ role: \"admin\" | \"member\" | \"security_admin\" | \"billing_admin\" | \"auditor\" | \"policy-author\" | \"approver\" }",
|
|
1664
|
+
"requestBodyRequired": true,
|
|
1665
|
+
"responseType": "{ created_at: string; email: string; id: string; image?: string; name: string; role: \"owner\" | \"admin\" | \"member\" | \"security_admin\" | \"billing_admin\" | \"auditor\" | \"policy-author\" | \"approver\"; user_id: string }",
|
|
1666
|
+
"responseStatus": "200"
|
|
1667
|
+
},
|
|
1668
|
+
"removeOrgMember": {
|
|
1669
|
+
"operationId": "removeOrgMember",
|
|
1670
|
+
"method": "DELETE",
|
|
1671
|
+
"path": "/v1/organizations/{org_id}/members/{member_id}",
|
|
1672
|
+
"summary": "Remove a member",
|
|
1673
|
+
"description": "Removes someone from the organization. An organization must keep at least one owner, so the last remaining owner cannot be removed and cannot be demoted either: transfer ownership first.",
|
|
1674
|
+
"parameters": [
|
|
1675
|
+
{
|
|
1676
|
+
"name": "org_id",
|
|
1677
|
+
"in": "path",
|
|
1678
|
+
"required": true,
|
|
1679
|
+
"type": "string",
|
|
1680
|
+
"description": "Unique organization identifier."
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
"name": "member_id",
|
|
1684
|
+
"in": "path",
|
|
1685
|
+
"required": true,
|
|
1686
|
+
"type": "string",
|
|
1687
|
+
"description": "Unique organization membership identifier. Unlike the resources PgBeam mints itself, memberships carry no type prefix: the id is opaque and is assigned when the membership row is created. Read it from `listOrgMembers` rather than constructing it."
|
|
1688
|
+
}
|
|
1689
|
+
],
|
|
1690
|
+
"requestBodyType": "",
|
|
1691
|
+
"requestBodyRequired": false,
|
|
1692
|
+
"responseType": "",
|
|
1693
|
+
"responseStatus": "204"
|
|
1694
|
+
},
|
|
1695
|
+
"listOrgInvitations": {
|
|
1696
|
+
"operationId": "listOrgInvitations",
|
|
1697
|
+
"method": "GET",
|
|
1698
|
+
"path": "/v1/organizations/{org_id}/invitations",
|
|
1699
|
+
"summary": "List invitations",
|
|
1700
|
+
"description": "Lists invitations to join the organization and where each has got to.",
|
|
1701
|
+
"parameters": [
|
|
1702
|
+
{
|
|
1703
|
+
"name": "org_id",
|
|
1704
|
+
"in": "path",
|
|
1705
|
+
"required": true,
|
|
1706
|
+
"type": "string",
|
|
1707
|
+
"description": "Unique organization identifier."
|
|
1708
|
+
},
|
|
1709
|
+
{
|
|
1710
|
+
"name": "status",
|
|
1711
|
+
"in": "query",
|
|
1712
|
+
"required": false,
|
|
1713
|
+
"type": "\"pending\" | \"accepted\" | \"rejected\" | \"canceled\"",
|
|
1714
|
+
"description": "Filter to a single status. Omit to list every invitation."
|
|
1715
|
+
},
|
|
1716
|
+
{
|
|
1717
|
+
"name": "page_size",
|
|
1718
|
+
"in": "query",
|
|
1719
|
+
"required": false,
|
|
1720
|
+
"type": "number",
|
|
1721
|
+
"description": "Maximum number of items to return (1-100, default 20)."
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
"name": "page_token",
|
|
1725
|
+
"in": "query",
|
|
1726
|
+
"required": false,
|
|
1727
|
+
"type": "string",
|
|
1728
|
+
"description": "Opaque token for cursor-based pagination."
|
|
1729
|
+
},
|
|
1730
|
+
{
|
|
1731
|
+
"name": "If-None-Match",
|
|
1732
|
+
"in": "header",
|
|
1733
|
+
"required": false,
|
|
1734
|
+
"type": "string",
|
|
1735
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1736
|
+
}
|
|
1737
|
+
],
|
|
1738
|
+
"requestBodyType": "",
|
|
1739
|
+
"requestBodyRequired": false,
|
|
1740
|
+
"responseType": "{ invitations: ({ created_at: string; email: string; expires_at: string; id: string; role: \"owner\" | \"admin\" | \"member\" | \"security_admin\" | \"billing_admin\" | \"auditor\" | \"policy-author\" | \"approver\"; status: \"pending\" | \"accepted\" | \"rejected\" | \"canceled\" })[]; next_page_token?: string }",
|
|
1741
|
+
"responseStatus": "200"
|
|
1742
|
+
},
|
|
1743
|
+
"createOrgInvitation": {
|
|
1744
|
+
"operationId": "createOrgInvitation",
|
|
1745
|
+
"method": "POST",
|
|
1746
|
+
"path": "/v1/organizations/{org_id}/invitations",
|
|
1747
|
+
"summary": "Invite someone to the organization",
|
|
1748
|
+
"description": "Creates an invitation and emails it. Inviting an address that already has a pending invitation returns a conflict rather than a second invitation. `owner` cannot be invited: ownership transfer is a separate, higher-privilege flow.",
|
|
1749
|
+
"parameters": [
|
|
1750
|
+
{
|
|
1751
|
+
"name": "org_id",
|
|
1752
|
+
"in": "path",
|
|
1753
|
+
"required": true,
|
|
1754
|
+
"type": "string",
|
|
1755
|
+
"description": "Unique organization identifier."
|
|
1756
|
+
}
|
|
1757
|
+
],
|
|
1758
|
+
"requestBodyType": "{ email: string; role?: \"admin\" | \"member\" | \"security_admin\" | \"billing_admin\" | \"auditor\" | \"policy-author\" | \"approver\" }",
|
|
1759
|
+
"requestBodyRequired": true,
|
|
1760
|
+
"responseType": "{ created_at: string; email: string; expires_at: string; id: string; role: \"owner\" | \"admin\" | \"member\" | \"security_admin\" | \"billing_admin\" | \"auditor\" | \"policy-author\" | \"approver\"; status: \"pending\" | \"accepted\" | \"rejected\" | \"canceled\" }",
|
|
1761
|
+
"responseStatus": "201"
|
|
1762
|
+
},
|
|
1763
|
+
"revokeOrgInvitation": {
|
|
1764
|
+
"operationId": "revokeOrgInvitation",
|
|
1765
|
+
"method": "DELETE",
|
|
1766
|
+
"path": "/v1/organizations/{org_id}/invitations/{invitation_id}",
|
|
1767
|
+
"summary": "Revoke an invitation",
|
|
1768
|
+
"description": "Cancels a pending invitation so it can no longer be accepted.",
|
|
1769
|
+
"parameters": [
|
|
1770
|
+
{
|
|
1771
|
+
"name": "org_id",
|
|
1772
|
+
"in": "path",
|
|
1773
|
+
"required": true,
|
|
1774
|
+
"type": "string",
|
|
1775
|
+
"description": "Unique organization identifier."
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
"name": "invitation_id",
|
|
1779
|
+
"in": "path",
|
|
1780
|
+
"required": true,
|
|
1781
|
+
"type": "string",
|
|
1782
|
+
"description": "Unique organization invitation identifier. Opaque, with no type prefix. Invitations created through this API are 32 lowercase hex characters; invitations created in the dashboard carry an id of a different shape, so treat it as opaque and read it from `listOrgInvitations`."
|
|
1783
|
+
}
|
|
1784
|
+
],
|
|
1785
|
+
"requestBodyType": "",
|
|
1786
|
+
"requestBodyRequired": false,
|
|
1787
|
+
"responseType": "",
|
|
1788
|
+
"responseStatus": "204"
|
|
1789
|
+
},
|
|
1330
1790
|
"lintMigration": {
|
|
1331
1791
|
"operationId": "lintMigration",
|
|
1332
1792
|
"method": "POST",
|
|
@@ -1360,6 +1820,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1360
1820
|
"required": true,
|
|
1361
1821
|
"type": "string",
|
|
1362
1822
|
"description": "Unique organization identifier."
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
"name": "If-None-Match",
|
|
1826
|
+
"in": "header",
|
|
1827
|
+
"required": false,
|
|
1828
|
+
"type": "string",
|
|
1829
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1363
1830
|
}
|
|
1364
1831
|
],
|
|
1365
1832
|
"requestBodyType": "",
|
|
@@ -1393,7 +1860,15 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1393
1860
|
"path": "/v1/organizations",
|
|
1394
1861
|
"summary": "List organizations",
|
|
1395
1862
|
"description": "Lists the organizations visible to the caller's credential. An organization-scoped API key (pbo_) returns exactly the organization it belongs to. A user credential (account-scoped API key or dashboard session token) returns the organizations the user is a member of, including the caller's role in each.",
|
|
1396
|
-
"parameters": [
|
|
1863
|
+
"parameters": [
|
|
1864
|
+
{
|
|
1865
|
+
"name": "If-None-Match",
|
|
1866
|
+
"in": "header",
|
|
1867
|
+
"required": false,
|
|
1868
|
+
"type": "string",
|
|
1869
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1870
|
+
}
|
|
1871
|
+
],
|
|
1397
1872
|
"requestBodyType": "",
|
|
1398
1873
|
"requestBodyRequired": false,
|
|
1399
1874
|
"responseType": "{ organizations: ({ id: string; name: string; role?: string; slug: string })[] }",
|
|
@@ -1426,6 +1901,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1426
1901
|
"required": false,
|
|
1427
1902
|
"type": "string",
|
|
1428
1903
|
"description": "Opaque token for cursor-based pagination."
|
|
1904
|
+
},
|
|
1905
|
+
{
|
|
1906
|
+
"name": "If-None-Match",
|
|
1907
|
+
"in": "header",
|
|
1908
|
+
"required": false,
|
|
1909
|
+
"type": "string",
|
|
1910
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1429
1911
|
}
|
|
1430
1912
|
],
|
|
1431
1913
|
"requestBodyType": "",
|
|
@@ -1446,6 +1928,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1446
1928
|
"required": true,
|
|
1447
1929
|
"type": "string",
|
|
1448
1930
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
1931
|
+
},
|
|
1932
|
+
{
|
|
1933
|
+
"name": "Idempotency-Key",
|
|
1934
|
+
"in": "header",
|
|
1935
|
+
"required": false,
|
|
1936
|
+
"type": "string",
|
|
1937
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
1449
1938
|
}
|
|
1450
1939
|
],
|
|
1451
1940
|
"requestBodyType": "{ access_mode?: \"read_only\" | \"read_write\"; approval_auto_max_rows?: number; approval_mode?: \"off\" | \"writes\" | \"ddl\" | \"all\"; approval_timeout_seconds?: number; budget_queries_per_day?: number; budget_queries_per_hour?: number; egress_bytes_per_day?: number; masking_rules?: ({ column: string; kind: \"redact\" | \"null\" | \"hash\"; table: string })[]; max_affected_rows?: number; max_rows?: number; migration_safety?: \"off\" | \"warn\" | \"block\"; name: string; row_filters?: ({ predicate: string; table: string })[]; statement_rules?: { allow?: string[]; deny?: string[] }; statement_timeout_ms?: number; table_allowlist?: string[]; table_denylist?: string[]; write_mode?: \"normal\" | \"rollback\" | \"sandbox\" }",
|
|
@@ -1473,6 +1962,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1473
1962
|
"required": true,
|
|
1474
1963
|
"type": "string",
|
|
1475
1964
|
"description": "Unique policy profile identifier (prefixed, e.g. pol_xxx)."
|
|
1965
|
+
},
|
|
1966
|
+
{
|
|
1967
|
+
"name": "If-None-Match",
|
|
1968
|
+
"in": "header",
|
|
1969
|
+
"required": false,
|
|
1970
|
+
"type": "string",
|
|
1971
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1476
1972
|
}
|
|
1477
1973
|
],
|
|
1478
1974
|
"requestBodyType": "",
|
|
@@ -1500,6 +1996,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1500
1996
|
"required": true,
|
|
1501
1997
|
"type": "string",
|
|
1502
1998
|
"description": "Unique policy profile identifier (prefixed, e.g. pol_xxx)."
|
|
1999
|
+
},
|
|
2000
|
+
{
|
|
2001
|
+
"name": "If-Match",
|
|
2002
|
+
"in": "header",
|
|
2003
|
+
"required": false,
|
|
2004
|
+
"type": "string",
|
|
2005
|
+
"description": "Entity tag the write is based on, taken from the `ETag` of the read that produced the values being sent. The write proceeds only if it still matches the current representation; otherwise it is refused with `412 Precondition Failed` and nothing is changed.\n\nThis is what makes a read-modify-write safe. Without it the last writer wins and a concurrent edit is silently discarded, which is the failure an agent is most likely to cause and least likely to notice. The `412` response carries the current `ETag`, so a caller can re-read, re-apply its change and retry.\n\nOmitting the header keeps the old unconditional behaviour. `*` matches any current representation, which asserts only that the resource exists."
|
|
1503
2006
|
}
|
|
1504
2007
|
],
|
|
1505
2008
|
"requestBodyType": "{ access_mode?: \"read_only\" | \"read_write\"; approval_auto_max_rows?: number; approval_mode?: \"off\" | \"writes\" | \"ddl\" | \"all\"; approval_timeout_seconds?: number; budget_queries_per_day?: number; budget_queries_per_hour?: number; egress_bytes_per_day?: number; masking_rules?: ({ column: string; kind: \"redact\" | \"null\" | \"hash\"; table: string })[]; max_affected_rows?: number; max_rows?: number; migration_safety?: \"off\" | \"warn\" | \"block\"; name: string; row_filters?: ({ predicate: string; table: string })[]; statement_rules?: { allow?: string[]; deny?: string[] }; statement_timeout_ms?: number; table_allowlist?: string[]; table_denylist?: string[]; write_mode?: \"normal\" | \"rollback\" | \"sandbox\" }",
|
|
@@ -1608,6 +2111,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1608
2111
|
"required": false,
|
|
1609
2112
|
"type": "\"name\" | \"created_at\" | \"active_connections\"",
|
|
1610
2113
|
"description": "Sort field for projects list."
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
"name": "If-None-Match",
|
|
2117
|
+
"in": "header",
|
|
2118
|
+
"required": false,
|
|
2119
|
+
"type": "string",
|
|
2120
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1611
2121
|
}
|
|
1612
2122
|
],
|
|
1613
2123
|
"requestBodyType": "",
|
|
@@ -1621,7 +2131,15 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1621
2131
|
"path": "/v1/projects",
|
|
1622
2132
|
"summary": "Create a project",
|
|
1623
2133
|
"description": "Creates a new project within the specified organization.",
|
|
1624
|
-
"parameters": [
|
|
2134
|
+
"parameters": [
|
|
2135
|
+
{
|
|
2136
|
+
"name": "Idempotency-Key",
|
|
2137
|
+
"in": "header",
|
|
2138
|
+
"required": false,
|
|
2139
|
+
"type": "string",
|
|
2140
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
2141
|
+
}
|
|
2142
|
+
],
|
|
1625
2143
|
"requestBodyType": "{ cloud?: \"aws\" | \"azure\" | \"gcp\"; database: { auto_read_routing?: boolean; cache_config?: { enabled: boolean; max_entries: number; swr_seconds: number; ttl_seconds: number }; host: string; name: string; password: string; pool_config?: { max_active?: number; min_pool_size: number; pool_mode: \"session\" | \"transaction\" | \"statement\"; pool_size: number }; pool_region?: string; port: number; query_timeout_ms?: number; role?: \"primary\" | \"replica\"; ssl_mode?: \"disable\" | \"allow\" | \"prefer\" | \"require\" | \"verify-ca\" | \"verify-full\"; username: string }; description?: string; name: string; org_id: string; self_hosted?: boolean; tags?: string[] }",
|
|
1626
2144
|
"requestBodyRequired": true,
|
|
1627
2145
|
"responseType": "{ database?: { auto_read_routing?: boolean; cache_config: { enabled: boolean; max_entries: number; swr_seconds: number; ttl_seconds: number }; connection_string?: string; created_at: string; host: string; id: string; name: string; pool_config: { max_active?: number; min_pool_size: number; pool_mode: \"session\" | \"transaction\" | \"statement\"; pool_size: number }; pool_region?: string; port: number; project_id: string; query_timeout_ms?: number; role?: \"primary\" | \"replica\"; ssl_mode: \"disable\" | \"allow\" | \"prefer\" | \"require\" | \"verify-ca\" | \"verify-full\"; updated_at: string; username: string }; project: { active_connections?: number; agents_disabled?: boolean; allowed_cidrs?: ({ cidr: string; label?: string })[]; burst_size?: number; cloud?: \"aws\" | \"azure\" | \"gcp\"; created_at: string; database_count?: number; default_policy_profile_id?: string; description?: string; id: string; max_connections?: number; name: string; org_id: string; proxy_host?: string; queries_per_second?: number; residency?: \"any\" | \"us\" | \"eu\"; self_hosted?: boolean; status: \"active\" | \"suspended\" | \"deleted\"; tags?: string[]; updated_at: string } }",
|
|
@@ -1640,6 +2158,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1640
2158
|
"required": true,
|
|
1641
2159
|
"type": "string",
|
|
1642
2160
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
2161
|
+
},
|
|
2162
|
+
{
|
|
2163
|
+
"name": "If-None-Match",
|
|
2164
|
+
"in": "header",
|
|
2165
|
+
"required": false,
|
|
2166
|
+
"type": "string",
|
|
2167
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1643
2168
|
}
|
|
1644
2169
|
],
|
|
1645
2170
|
"requestBodyType": "",
|
|
@@ -1660,6 +2185,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1660
2185
|
"required": true,
|
|
1661
2186
|
"type": "string",
|
|
1662
2187
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
2188
|
+
},
|
|
2189
|
+
{
|
|
2190
|
+
"name": "If-Match",
|
|
2191
|
+
"in": "header",
|
|
2192
|
+
"required": false,
|
|
2193
|
+
"type": "string",
|
|
2194
|
+
"description": "Entity tag the write is based on, taken from the `ETag` of the read that produced the values being sent. The write proceeds only if it still matches the current representation; otherwise it is refused with `412 Precondition Failed` and nothing is changed.\n\nThis is what makes a read-modify-write safe. Without it the last writer wins and a concurrent edit is silently discarded, which is the failure an agent is most likely to cause and least likely to notice. The `412` response carries the current `ETag`, so a caller can re-read, re-apply its change and retry.\n\nOmitting the header keeps the old unconditional behaviour. `*` matches any current representation, which asserts only that the resource exists."
|
|
1663
2195
|
}
|
|
1664
2196
|
],
|
|
1665
2197
|
"requestBodyType": "{ agents_disabled?: boolean; allowed_cidrs?: ({ cidr: string; label?: string })[]; default_policy_profile_id?: string; description?: string; name?: string; residency?: \"any\" | \"us\" | \"eu\"; status?: \"active\" | \"suspended\" | \"deleted\"; tags?: string[] }",
|
|
@@ -1714,6 +2246,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1714
2246
|
"required": false,
|
|
1715
2247
|
"type": "string",
|
|
1716
2248
|
"description": "Filter metrics by region code."
|
|
2249
|
+
},
|
|
2250
|
+
{
|
|
2251
|
+
"name": "If-None-Match",
|
|
2252
|
+
"in": "header",
|
|
2253
|
+
"required": false,
|
|
2254
|
+
"type": "string",
|
|
2255
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1717
2256
|
}
|
|
1718
2257
|
],
|
|
1719
2258
|
"requestBodyType": "",
|
|
@@ -1727,7 +2266,15 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1727
2266
|
"path": "/v1/regions",
|
|
1728
2267
|
"summary": "List available regions",
|
|
1729
2268
|
"description": "Returns all active data plane regions.",
|
|
1730
|
-
"parameters": [
|
|
2269
|
+
"parameters": [
|
|
2270
|
+
{
|
|
2271
|
+
"name": "If-None-Match",
|
|
2272
|
+
"in": "header",
|
|
2273
|
+
"required": false,
|
|
2274
|
+
"type": "string",
|
|
2275
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2276
|
+
}
|
|
2277
|
+
],
|
|
1731
2278
|
"requestBodyType": "",
|
|
1732
2279
|
"requestBodyRequired": false,
|
|
1733
2280
|
"responseType": "{ regions: ({ available: boolean; continent?: string; country?: string; id: string; name: string; provider: \"aws\" | \"azure\" | \"gcp\"; status: \"active\" | \"draining\" | \"inactive\" })[] }",
|
|
@@ -1746,6 +2293,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1746
2293
|
"required": true,
|
|
1747
2294
|
"type": "string",
|
|
1748
2295
|
"description": "Unique database identifier (prefixed, e.g. db_xxx)."
|
|
2296
|
+
},
|
|
2297
|
+
{
|
|
2298
|
+
"name": "If-None-Match",
|
|
2299
|
+
"in": "header",
|
|
2300
|
+
"required": false,
|
|
2301
|
+
"type": "string",
|
|
2302
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1749
2303
|
}
|
|
1750
2304
|
],
|
|
1751
2305
|
"requestBodyType": "",
|
|
@@ -1766,6 +2320,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1766
2320
|
"required": true,
|
|
1767
2321
|
"type": "string",
|
|
1768
2322
|
"description": "Unique database identifier (prefixed, e.g. db_xxx)."
|
|
2323
|
+
},
|
|
2324
|
+
{
|
|
2325
|
+
"name": "Idempotency-Key",
|
|
2326
|
+
"in": "header",
|
|
2327
|
+
"required": false,
|
|
2328
|
+
"type": "string",
|
|
2329
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
1769
2330
|
}
|
|
1770
2331
|
],
|
|
1771
2332
|
"requestBodyType": "{ host: string; port: number; ssl_mode?: \"disable\" | \"allow\" | \"prefer\" | \"require\" | \"verify-ca\" | \"verify-full\" }",
|
|
@@ -1827,6 +2388,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1827
2388
|
"required": false,
|
|
1828
2389
|
"type": "string",
|
|
1829
2390
|
"description": "Opaque token for cursor-based pagination."
|
|
2391
|
+
},
|
|
2392
|
+
{
|
|
2393
|
+
"name": "If-None-Match",
|
|
2394
|
+
"in": "header",
|
|
2395
|
+
"required": false,
|
|
2396
|
+
"type": "string",
|
|
2397
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1830
2398
|
}
|
|
1831
2399
|
],
|
|
1832
2400
|
"requestBodyType": "",
|
|
@@ -1908,6 +2476,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1908
2476
|
"required": true,
|
|
1909
2477
|
"type": "string",
|
|
1910
2478
|
"description": "Unique organization identifier."
|
|
2479
|
+
},
|
|
2480
|
+
{
|
|
2481
|
+
"name": "If-None-Match",
|
|
2482
|
+
"in": "header",
|
|
2483
|
+
"required": false,
|
|
2484
|
+
"type": "string",
|
|
2485
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
1911
2486
|
}
|
|
1912
2487
|
],
|
|
1913
2488
|
"requestBodyType": "",
|
|
@@ -1928,6 +2503,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1928
2503
|
"required": true,
|
|
1929
2504
|
"type": "string",
|
|
1930
2505
|
"description": "Unique organization identifier."
|
|
2506
|
+
},
|
|
2507
|
+
{
|
|
2508
|
+
"name": "Idempotency-Key",
|
|
2509
|
+
"in": "header",
|
|
2510
|
+
"required": false,
|
|
2511
|
+
"type": "string",
|
|
2512
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
1931
2513
|
}
|
|
1932
2514
|
],
|
|
1933
2515
|
"requestBodyType": "{ description?: string; expires_at?: string; region_label?: string }",
|
|
@@ -1982,6 +2564,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
1982
2564
|
"required": true,
|
|
1983
2565
|
"type": "string",
|
|
1984
2566
|
"description": "Unique enrollment identifier."
|
|
2567
|
+
},
|
|
2568
|
+
{
|
|
2569
|
+
"name": "Idempotency-Key",
|
|
2570
|
+
"in": "header",
|
|
2571
|
+
"required": false,
|
|
2572
|
+
"type": "string",
|
|
2573
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
1985
2574
|
}
|
|
1986
2575
|
],
|
|
1987
2576
|
"requestBodyType": "",
|
|
@@ -2030,6 +2619,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2030
2619
|
"required": false,
|
|
2031
2620
|
"type": "number",
|
|
2032
2621
|
"description": "Page number (1-based, default 1)."
|
|
2622
|
+
},
|
|
2623
|
+
{
|
|
2624
|
+
"name": "If-None-Match",
|
|
2625
|
+
"in": "header",
|
|
2626
|
+
"required": false,
|
|
2627
|
+
"type": "string",
|
|
2628
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2033
2629
|
}
|
|
2034
2630
|
],
|
|
2035
2631
|
"requestBodyType": "",
|
|
@@ -2050,6 +2646,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2050
2646
|
"required": true,
|
|
2051
2647
|
"type": "string",
|
|
2052
2648
|
"description": "Unique organization identifier."
|
|
2649
|
+
},
|
|
2650
|
+
{
|
|
2651
|
+
"name": "Idempotency-Key",
|
|
2652
|
+
"in": "header",
|
|
2653
|
+
"required": false,
|
|
2654
|
+
"type": "string",
|
|
2655
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
2053
2656
|
}
|
|
2054
2657
|
],
|
|
2055
2658
|
"requestBodyType": "{ body: string; org_id: string; severity?: number; title: string }",
|
|
@@ -2077,6 +2680,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2077
2680
|
"required": true,
|
|
2078
2681
|
"type": "string",
|
|
2079
2682
|
"description": "Unique support case identifier (prefixed, e.g. sc_xxx)."
|
|
2683
|
+
},
|
|
2684
|
+
{
|
|
2685
|
+
"name": "If-None-Match",
|
|
2686
|
+
"in": "header",
|
|
2687
|
+
"required": false,
|
|
2688
|
+
"type": "string",
|
|
2689
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2080
2690
|
}
|
|
2081
2691
|
],
|
|
2082
2692
|
"requestBodyType": "",
|
|
@@ -2131,6 +2741,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2131
2741
|
"required": true,
|
|
2132
2742
|
"type": "string",
|
|
2133
2743
|
"description": "Unique support case identifier (prefixed, e.g. sc_xxx)."
|
|
2744
|
+
},
|
|
2745
|
+
{
|
|
2746
|
+
"name": "Idempotency-Key",
|
|
2747
|
+
"in": "header",
|
|
2748
|
+
"required": false,
|
|
2749
|
+
"type": "string",
|
|
2750
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
2134
2751
|
}
|
|
2135
2752
|
],
|
|
2136
2753
|
"requestBodyType": "{ body: string }",
|
|
@@ -2177,6 +2794,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2177
2794
|
"required": true,
|
|
2178
2795
|
"type": "string",
|
|
2179
2796
|
"description": "End date (inclusive, YYYY-MM-DD)."
|
|
2797
|
+
},
|
|
2798
|
+
{
|
|
2799
|
+
"name": "If-None-Match",
|
|
2800
|
+
"in": "header",
|
|
2801
|
+
"required": false,
|
|
2802
|
+
"type": "string",
|
|
2803
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2180
2804
|
}
|
|
2181
2805
|
],
|
|
2182
2806
|
"requestBodyType": "",
|
|
@@ -2211,6 +2835,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2211
2835
|
"required": true,
|
|
2212
2836
|
"type": "string",
|
|
2213
2837
|
"description": "End date (inclusive, YYYY-MM-DD)."
|
|
2838
|
+
},
|
|
2839
|
+
{
|
|
2840
|
+
"name": "If-None-Match",
|
|
2841
|
+
"in": "header",
|
|
2842
|
+
"required": false,
|
|
2843
|
+
"type": "string",
|
|
2844
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2214
2845
|
}
|
|
2215
2846
|
],
|
|
2216
2847
|
"requestBodyType": "",
|
|
@@ -2245,6 +2876,13 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2245
2876
|
"required": false,
|
|
2246
2877
|
"type": "string",
|
|
2247
2878
|
"description": "Return entries strictly older than this timestamp (cursor / upper bound)."
|
|
2879
|
+
},
|
|
2880
|
+
{
|
|
2881
|
+
"name": "If-None-Match",
|
|
2882
|
+
"in": "header",
|
|
2883
|
+
"required": false,
|
|
2884
|
+
"type": "string",
|
|
2885
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2248
2886
|
}
|
|
2249
2887
|
],
|
|
2250
2888
|
"requestBodyType": "",
|
|
@@ -2279,11 +2917,18 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2279
2917
|
"required": false,
|
|
2280
2918
|
"type": "string",
|
|
2281
2919
|
"description": "Opaque token for cursor-based pagination."
|
|
2920
|
+
},
|
|
2921
|
+
{
|
|
2922
|
+
"name": "If-None-Match",
|
|
2923
|
+
"in": "header",
|
|
2924
|
+
"required": false,
|
|
2925
|
+
"type": "string",
|
|
2926
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2282
2927
|
}
|
|
2283
2928
|
],
|
|
2284
2929
|
"requestBodyType": "",
|
|
2285
2930
|
"requestBodyRequired": false,
|
|
2286
|
-
"responseType": "{ next_page_token?: string; webhooks: ({ created_at: string; description?: string; enabled: boolean; event_types?:
|
|
2931
|
+
"responseType": "{ next_page_token?: string; webhooks: ({ created_at: string; description?: string; enabled: boolean; event_types?: (\"query_blocked\" | \"budget_exhausted\" | \"kill_switch\" | \"masked\" | \"migration_flagged\" | \"approval_requested\" | \"anomaly_alert\" | \"canary_tripped\" | \"audit_checkpoint\" | \"webhook.test\")[]; format: \"json\" | \"splunk_hec\" | \"datadog\" | \"elastic\"; id: string; project_id: string; updated_at: string; url: string })[] }",
|
|
2287
2932
|
"responseStatus": "200"
|
|
2288
2933
|
},
|
|
2289
2934
|
"createWebhookEndpoint": {
|
|
@@ -2299,11 +2944,18 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2299
2944
|
"required": true,
|
|
2300
2945
|
"type": "string",
|
|
2301
2946
|
"description": "Unique project identifier (prefixed, e.g. prj_xxx)."
|
|
2947
|
+
},
|
|
2948
|
+
{
|
|
2949
|
+
"name": "Idempotency-Key",
|
|
2950
|
+
"in": "header",
|
|
2951
|
+
"required": false,
|
|
2952
|
+
"type": "string",
|
|
2953
|
+
"description": "Client-generated key that makes a retry of this request safe. The first request carrying a given key executes normally and its response (status, content type and body) is stored for 24 hours; a later request with the same key returns that stored response without running the operation again, so a retry after a lost or timed-out response cannot create a second resource.\n\nReusing a key with a different request body returns `409 Conflict`: a key is a promise about one specific request, so a changed body is a client bug rather than a retry. Keys are scoped to the calling organization (or to the user, for account-scoped tokens), so one tenant can never read another's stored response.\n\nA `5xx`, `408` or `429` is never stored, because those describe a request that produced no settled answer and the next attempt with the same key must run for real. A `4xx` is stored: it is the server's settled answer about this exact request.\n\nUse a fresh UUID per logical operation. The PgBeam SDKs generate one per call and reuse it across their own automatic retries."
|
|
2302
2954
|
}
|
|
2303
2955
|
],
|
|
2304
|
-
"requestBodyType": "{ description?: string; enabled?: boolean; event_types?:
|
|
2956
|
+
"requestBodyType": "{ description?: string; enabled?: boolean; event_types?: (\"query_blocked\" | \"budget_exhausted\" | \"kill_switch\" | \"masked\" | \"migration_flagged\" | \"approval_requested\" | \"anomaly_alert\" | \"canary_tripped\" | \"audit_checkpoint\" | \"webhook.test\")[]; format?: \"json\" | \"splunk_hec\" | \"datadog\" | \"elastic\"; secret?: string; url: string }",
|
|
2305
2957
|
"requestBodyRequired": true,
|
|
2306
|
-
"responseType": "{ created_at: string; description?: string; enabled: boolean; event_types?:
|
|
2958
|
+
"responseType": "{ created_at: string; description?: string; enabled: boolean; event_types?: (\"query_blocked\" | \"budget_exhausted\" | \"kill_switch\" | \"masked\" | \"migration_flagged\" | \"approval_requested\" | \"anomaly_alert\" | \"canary_tripped\" | \"audit_checkpoint\" | \"webhook.test\")[]; format: \"json\" | \"splunk_hec\" | \"datadog\" | \"elastic\"; id: string; project_id: string; updated_at: string; url: string }",
|
|
2307
2959
|
"responseStatus": "201"
|
|
2308
2960
|
},
|
|
2309
2961
|
"getWebhookEndpoint": {
|
|
@@ -2326,11 +2978,18 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2326
2978
|
"required": true,
|
|
2327
2979
|
"type": "string",
|
|
2328
2980
|
"description": "Unique webhook endpoint identifier (prefixed, e.g. whk_xxx)."
|
|
2981
|
+
},
|
|
2982
|
+
{
|
|
2983
|
+
"name": "If-None-Match",
|
|
2984
|
+
"in": "header",
|
|
2985
|
+
"required": false,
|
|
2986
|
+
"type": "string",
|
|
2987
|
+
"description": "Entity tag the client already holds, taken from the `ETag` of an earlier response. When it still matches the current representation the server answers `304 Not Modified` with no body, so a poll that finds nothing changed costs a round trip rather than a transfer.\n\nA comma-separated list is accepted, and `*` matches any current representation."
|
|
2329
2988
|
}
|
|
2330
2989
|
],
|
|
2331
2990
|
"requestBodyType": "",
|
|
2332
2991
|
"requestBodyRequired": false,
|
|
2333
|
-
"responseType": "{ created_at: string; description?: string; enabled: boolean; event_types?:
|
|
2992
|
+
"responseType": "{ created_at: string; description?: string; enabled: boolean; event_types?: (\"query_blocked\" | \"budget_exhausted\" | \"kill_switch\" | \"masked\" | \"migration_flagged\" | \"approval_requested\" | \"anomaly_alert\" | \"canary_tripped\" | \"audit_checkpoint\" | \"webhook.test\")[]; format: \"json\" | \"splunk_hec\" | \"datadog\" | \"elastic\"; id: string; project_id: string; updated_at: string; url: string }",
|
|
2334
2993
|
"responseStatus": "200"
|
|
2335
2994
|
},
|
|
2336
2995
|
"updateWebhookEndpoint": {
|
|
@@ -2353,11 +3012,18 @@ var operationsMap_gen = require('./operations-map.gen-gco09oqg.cjs');
|
|
|
2353
3012
|
"required": true,
|
|
2354
3013
|
"type": "string",
|
|
2355
3014
|
"description": "Unique webhook endpoint identifier (prefixed, e.g. whk_xxx)."
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
"name": "If-Match",
|
|
3018
|
+
"in": "header",
|
|
3019
|
+
"required": false,
|
|
3020
|
+
"type": "string",
|
|
3021
|
+
"description": "Entity tag the write is based on, taken from the `ETag` of the read that produced the values being sent. The write proceeds only if it still matches the current representation; otherwise it is refused with `412 Precondition Failed` and nothing is changed.\n\nThis is what makes a read-modify-write safe. Without it the last writer wins and a concurrent edit is silently discarded, which is the failure an agent is most likely to cause and least likely to notice. The `412` response carries the current `ETag`, so a caller can re-read, re-apply its change and retry.\n\nOmitting the header keeps the old unconditional behaviour. `*` matches any current representation, which asserts only that the resource exists."
|
|
2356
3022
|
}
|
|
2357
3023
|
],
|
|
2358
|
-
"requestBodyType": "{ description?: string; enabled?: boolean; event_types?:
|
|
3024
|
+
"requestBodyType": "{ description?: string; enabled?: boolean; event_types?: (\"query_blocked\" | \"budget_exhausted\" | \"kill_switch\" | \"masked\" | \"migration_flagged\" | \"approval_requested\" | \"anomaly_alert\" | \"canary_tripped\" | \"audit_checkpoint\" | \"webhook.test\")[]; format?: \"json\" | \"splunk_hec\" | \"datadog\" | \"elastic\"; secret?: string; url: string }",
|
|
2359
3025
|
"requestBodyRequired": true,
|
|
2360
|
-
"responseType": "{ created_at: string; description?: string; enabled: boolean; event_types?:
|
|
3026
|
+
"responseType": "{ created_at: string; description?: string; enabled: boolean; event_types?: (\"query_blocked\" | \"budget_exhausted\" | \"kill_switch\" | \"masked\" | \"migration_flagged\" | \"approval_requested\" | \"anomaly_alert\" | \"canary_tripped\" | \"audit_checkpoint\" | \"webhook.test\")[]; format: \"json\" | \"splunk_hec\" | \"datadog\" | \"elastic\"; id: string; project_id: string; updated_at: string; url: string }",
|
|
2361
3027
|
"responseStatus": "200"
|
|
2362
3028
|
},
|
|
2363
3029
|
"deleteWebhookEndpoint": {
|