pgbeam 0.3.11 → 0.3.13

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.
@@ -796,6 +796,609 @@ type RotateAgentCredentialRequestConfig = {
796
796
  url: `/v1/projects/${string}/agents/${string}/rotate`;
797
797
  };
798
798
 
799
+ /**
800
+ * Generated by Kubb (https://kubb.dev/).
801
+ * Do not edit manually.
802
+ */
803
+ declare const maskingRuleKindEnum: {
804
+ readonly redact: "redact";
805
+ readonly null: "null";
806
+ readonly hash: "hash";
807
+ };
808
+ type MaskingRuleKindEnumKey = (typeof maskingRuleKindEnum)[keyof typeof maskingRuleKindEnum];
809
+ /**
810
+ * @description A column masking rule applied to agent query results.
811
+ * @type object
812
+ */
813
+ type MaskingRule = {
814
+ /**
815
+ * @description Relation name, optionally schema-qualified (e.g. \"public.users\" or \"users\").
816
+ * @example users
817
+ * @type string
818
+ */
819
+ table: string;
820
+ /**
821
+ * @description Column to mask.
822
+ * @example email
823
+ * @type string
824
+ */
825
+ column: string;
826
+ /**
827
+ * @description How to mask. redact replaces with a token, null returns NULL, hash returns a SHA-256 hex.
828
+ * @type string
829
+ */
830
+ kind: MaskingRuleKindEnumKey;
831
+ };
832
+
833
+ /**
834
+ * Generated by Kubb (https://kubb.dev/).
835
+ * Do not edit manually.
836
+ */
837
+ /**
838
+ * @description A per-relation row filter. The predicate is a raw SQL boolean expression ANDed into the WHERE clause for the matching relation.
839
+ * @type object
840
+ */
841
+ type RowFilter = {
842
+ /**
843
+ * @description Relation name, optionally schema-qualified (e.g. \"public.orders\").
844
+ * @example orders
845
+ * @type string
846
+ */
847
+ table: string;
848
+ /**
849
+ * @description Raw SQL boolean expression ANDed into WHERE for this relation.
850
+ * @example tenant_id = current_setting('pgbeam.tenant')
851
+ * @type string
852
+ */
853
+ predicate: string;
854
+ };
855
+
856
+ /**
857
+ * Generated by Kubb (https://kubb.dev/).
858
+ * Do not edit manually.
859
+ */
860
+ /**
861
+ * @description Per-statement-kind allow/deny lists. Empty allow means all kinds permitted by the access mode.
862
+ * @type object
863
+ */
864
+ type StatementRules = {
865
+ /**
866
+ * @description Allowed statement kinds (select, insert, update, delete, ddl, copy, set, show, explain, transaction).
867
+ * @type array | undefined
868
+ */
869
+ allow?: string[];
870
+ /**
871
+ * @description Denied statement kinds (takes precedence over allow).
872
+ * @type array | undefined
873
+ */
874
+ deny?: string[];
875
+ };
876
+
877
+ /**
878
+ * Generated by Kubb (https://kubb.dev/).
879
+ * Do not edit manually.
880
+ */
881
+
882
+ declare const policyProfileInputAccessModeEnum: {
883
+ readonly read_only: "read_only";
884
+ readonly read_write: "read_write";
885
+ };
886
+ type PolicyProfileInputAccessModeEnumKey = (typeof policyProfileInputAccessModeEnum)[keyof typeof policyProfileInputAccessModeEnum];
887
+ declare const policyProfileInputWriteModeEnum: {
888
+ readonly normal: "normal";
889
+ readonly rollback: "rollback";
890
+ readonly sandbox: "sandbox";
891
+ };
892
+ type PolicyProfileInputWriteModeEnumKey = (typeof policyProfileInputWriteModeEnum)[keyof typeof policyProfileInputWriteModeEnum];
893
+ declare const policyProfileInputApprovalModeEnum: {
894
+ readonly off: "off";
895
+ readonly writes: "writes";
896
+ readonly ddl: "ddl";
897
+ readonly all: "all";
898
+ };
899
+ type PolicyProfileInputApprovalModeEnumKey = (typeof policyProfileInputApprovalModeEnum)[keyof typeof policyProfileInputApprovalModeEnum];
900
+ declare const policyProfileInputMigrationSafetyEnum: {
901
+ readonly off: "off";
902
+ readonly warn: "warn";
903
+ readonly block: "block";
904
+ };
905
+ type PolicyProfileInputMigrationSafetyEnumKey = (typeof policyProfileInputMigrationSafetyEnum)[keyof typeof policyProfileInputMigrationSafetyEnum];
906
+ /**
907
+ * @description Mutable fields of a policy profile (used for create and update).
908
+ * @type object
909
+ */
910
+ type PolicyProfileInput = {
911
+ /**
912
+ * @description Human-readable name for the policy profile.
913
+ * @minLength 1
914
+ * @maxLength 128
915
+ * @type string
916
+ */
917
+ name: string;
918
+ /**
919
+ * @description read_only blocks all data and schema mutations.
920
+ * @default "read_only"
921
+ * @type string | undefined
922
+ */
923
+ access_mode?: PolicyProfileInputAccessModeEnumKey;
924
+ /**
925
+ * @description Per-statement-kind allow/deny lists. Empty allow means all kinds permitted by the access mode.
926
+ * @type object | undefined
927
+ */
928
+ statement_rules?: StatementRules;
929
+ /**
930
+ * @description If non-empty, only these relations are reachable.
931
+ * @type array | undefined
932
+ */
933
+ table_allowlist?: string[];
934
+ /**
935
+ * @description Relations explicitly blocked.
936
+ * @type array | undefined
937
+ */
938
+ table_denylist?: string[];
939
+ /**
940
+ * @description Column masking rules applied to query results.
941
+ * @type array | undefined
942
+ */
943
+ masking_rules?: MaskingRule[];
944
+ /**
945
+ * @description Max queries per rolling hour window. 0 means unlimited.
946
+ * @minLength 0
947
+ * @default 0
948
+ * @type integer | undefined
949
+ */
950
+ budget_queries_per_hour?: number;
951
+ /**
952
+ * @description Max queries per day window. 0 means unlimited.
953
+ * @minLength 0
954
+ * @default 0
955
+ * @type integer | undefined
956
+ */
957
+ budget_queries_per_day?: number;
958
+ /**
959
+ * @description Max rows returned per query. 0 means unlimited.
960
+ * @minLength 0
961
+ * @default 0
962
+ * @type integer | undefined
963
+ */
964
+ max_rows?: number;
965
+ /**
966
+ * @description Upstream statement timeout for agent sessions. 0 uses the project default.
967
+ * @minLength 0
968
+ * @default 0
969
+ * @type integer | undefined
970
+ */
971
+ statement_timeout_ms?: number;
972
+ /**
973
+ * @description Per-relation row filters ANDed into agent reads.
974
+ * @type array | undefined
975
+ */
976
+ row_filters?: RowFilter[];
977
+ /**
978
+ * @description How writes are handled. normal commits, rollback auto-rolls back, sandbox routes to an ephemeral branch.
979
+ * @default "normal"
980
+ * @type string | undefined
981
+ */
982
+ write_mode?: PolicyProfileInputWriteModeEnumKey;
983
+ /**
984
+ * @description Which statement classes require human approval before execution.
985
+ * @default "off"
986
+ * @type string | undefined
987
+ */
988
+ approval_mode?: PolicyProfileInputApprovalModeEnumKey;
989
+ /**
990
+ * @description Statements touching at most this many rows are auto-approved. 0 means none.
991
+ * @minLength 0
992
+ * @default 0
993
+ * @type integer | undefined
994
+ */
995
+ approval_auto_max_rows?: number;
996
+ /**
997
+ * @description How long a held statement waits for a decision before expiring.
998
+ * @minLength 0
999
+ * @default 300
1000
+ * @type integer | undefined
1001
+ */
1002
+ approval_timeout_seconds?: number;
1003
+ /**
1004
+ * @description Migration safety mode. warn surfaces findings, block refuses unsafe DDL.
1005
+ * @default "off"
1006
+ * @type string | undefined
1007
+ */
1008
+ migration_safety?: PolicyProfileInputMigrationSafetyEnumKey;
1009
+ /**
1010
+ * @description Per-day egress budget in bytes. 0 means unlimited.
1011
+ * @minLength 0
1012
+ * @default 0
1013
+ * @type integer | undefined
1014
+ */
1015
+ egress_bytes_per_day?: number;
1016
+ /**
1017
+ * @description Hard cap on rows a single write (INSERT/UPDATE/DELETE) may affect. A write whose affected-row count would exceed this is executed inside a transaction, checked, and rolled back so nothing persists, then blocked. Enforced independently of human approval. 0 means unlimited.
1018
+ * @minLength 0
1019
+ * @default 0
1020
+ * @type integer | undefined
1021
+ */
1022
+ max_affected_rows?: number;
1023
+ };
1024
+
1025
+ /**
1026
+ * Generated by Kubb (https://kubb.dev/).
1027
+ * Do not edit manually.
1028
+ */
1029
+ declare const dryEvalMaskedColumnKindEnum: {
1030
+ readonly redact: "redact";
1031
+ readonly null: "null";
1032
+ readonly hash: "hash";
1033
+ };
1034
+ type DryEvalMaskedColumnKindEnumKey = (typeof dryEvalMaskedColumnKindEnum)[keyof typeof dryEvalMaskedColumnKindEnum];
1035
+ /**
1036
+ * @description One result column that would be masked, with the mask kind applied.
1037
+ * @type object
1038
+ */
1039
+ type DryEvalMaskedColumn = {
1040
+ /**
1041
+ * @description The output column name (post-alias) the client would see masked.
1042
+ * @example email
1043
+ * @type string
1044
+ */
1045
+ column: string;
1046
+ /**
1047
+ * @description How the column is masked.
1048
+ * @type string
1049
+ */
1050
+ kind: DryEvalMaskedColumnKindEnumKey;
1051
+ };
1052
+
1053
+ /**
1054
+ * Generated by Kubb (https://kubb.dev/).
1055
+ * Do not edit manually.
1056
+ */
1057
+
1058
+ declare const dryEvalResultVerdictEnum: {
1059
+ readonly allow: "allow";
1060
+ readonly block: "block";
1061
+ readonly mask: "mask";
1062
+ readonly "row-filter": "row-filter";
1063
+ };
1064
+ type DryEvalResultVerdictEnumKey = (typeof dryEvalResultVerdictEnum)[keyof typeof dryEvalResultVerdictEnum];
1065
+ /**
1066
+ * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
1067
+ * @type object
1068
+ */
1069
+ type DryEvalResult = {
1070
+ /**
1071
+ * @description allow — permitted unchanged; block — rejected; mask — permitted but listed result columns are masked; row-filter — permitted but a WHERE predicate is injected (and any listed columns are also masked).
1072
+ * @type string
1073
+ */
1074
+ verdict: DryEvalResultVerdictEnumKey;
1075
+ /**
1076
+ * @description Machine-readable decision tag. For a block, the blocking rule (e.g. read_only, table_denied, table_not_allowed, statement_denied, row_filter_unsafe). Otherwise \"ok\".
1077
+ * @example ok
1078
+ * @type string
1079
+ */
1080
+ rule: string;
1081
+ /**
1082
+ * @description Human-readable explanation of the verdict.
1083
+ * @type string
1084
+ */
1085
+ reason: string;
1086
+ /**
1087
+ * @description What the author could do instead (present on block verdicts).
1088
+ * @type string | undefined
1089
+ */
1090
+ hint?: string;
1091
+ /**
1092
+ * @description Result columns that would be masked. Present on mask/row-filter verdicts.
1093
+ * @type array | undefined
1094
+ */
1095
+ masked_columns?: DryEvalMaskedColumn[];
1096
+ /**
1097
+ * @description The row-filter predicate ANDed into the statement\'s WHERE clause.
1098
+ * @example tenant_id = current_setting('pgbeam.tenant')
1099
+ * @type string | undefined
1100
+ */
1101
+ row_filter_predicate?: string;
1102
+ /**
1103
+ * @description The statement as it would be sent upstream after row-filter injection.
1104
+ * @type string | undefined
1105
+ */
1106
+ rewritten_sql?: string;
1107
+ /**
1108
+ * @description Informational caveats about stateful enforcement a single-statement preview cannot model (per-region budgets, approvals, write-mode routing).
1109
+ * @type array | undefined
1110
+ */
1111
+ notes?: string[];
1112
+ };
1113
+
1114
+ /**
1115
+ * Generated by Kubb (https://kubb.dev/).
1116
+ * Do not edit manually.
1117
+ */
1118
+
1119
+ declare const policyReplayItemChangeEnum: {
1120
+ readonly newly_blocked: "newly_blocked";
1121
+ readonly newly_allowed: "newly_allowed";
1122
+ readonly still_allowed: "still_allowed";
1123
+ readonly still_blocked: "still_blocked";
1124
+ };
1125
+ type PolicyReplayItemChangeEnumKey = (typeof policyReplayItemChangeEnum)[keyof typeof policyReplayItemChangeEnum];
1126
+ /**
1127
+ * @description One distinct recorded query and the decision the candidate policy would reach for it.
1128
+ * @type object
1129
+ */
1130
+ type PolicyReplayItem = {
1131
+ /**
1132
+ * @description Normalized query hash identifying this statement shape.
1133
+ * @type string
1134
+ */
1135
+ query_hash: string;
1136
+ /**
1137
+ * @description The recorded statement (normalized, literals replaced with $N placeholders), from its most recent occurrence.
1138
+ * @type string
1139
+ */
1140
+ sql: string;
1141
+ /**
1142
+ * @description Statement kind (select, insert, update, delete, ddl, ...).
1143
+ * @type string | undefined
1144
+ */
1145
+ statement_kind?: string;
1146
+ /**
1147
+ * @description How many recorded entries share this query shape in the window.
1148
+ * @type integer
1149
+ */
1150
+ occurrences: number;
1151
+ /**
1152
+ * @description Oldest occurrence in the window.
1153
+ * @type string
1154
+ */
1155
+ first_seen: string;
1156
+ /**
1157
+ * @description Newest occurrence in the window.
1158
+ * @type string
1159
+ */
1160
+ last_seen: string;
1161
+ /**
1162
+ * @description The most recent recorded outcome for this query (query, masked, truncated, or blocked).
1163
+ * @type string
1164
+ */
1165
+ recorded_event: string;
1166
+ /**
1167
+ * @description The decision rule recorded with a blocked outcome.
1168
+ * @type string | undefined
1169
+ */
1170
+ recorded_rule?: string;
1171
+ /**
1172
+ * @description How the candidate decision compares to the recorded outcome. newly_blocked and newly_allowed are the changes worth reviewing before rollout; still_allowed and still_blocked are unchanged.
1173
+ * @type string
1174
+ */
1175
+ change: PolicyReplayItemChangeEnumKey;
1176
+ /**
1177
+ * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
1178
+ * @type object
1179
+ */
1180
+ result: DryEvalResult;
1181
+ };
1182
+
1183
+ /**
1184
+ * Generated by Kubb (https://kubb.dev/).
1185
+ * Do not edit manually.
1186
+ */
1187
+ /**
1188
+ * @description Aggregate outcome of a policy replay.
1189
+ * @type object
1190
+ */
1191
+ type PolicyReplaySummary = {
1192
+ /**
1193
+ * @description Recorded audit entries covered by the replayed queries.
1194
+ * @type integer
1195
+ */
1196
+ entries_scanned: number;
1197
+ /**
1198
+ * @description Distinct normalized queries found in the window (capped at limit).
1199
+ * @type integer
1200
+ */
1201
+ distinct_queries: number;
1202
+ /**
1203
+ * @description Distinct queries actually evaluated against the candidate policy.
1204
+ * @type integer
1205
+ */
1206
+ evaluated: number;
1207
+ /**
1208
+ * @description Queries the candidate policy would allow unchanged.
1209
+ * @type integer
1210
+ */
1211
+ would_allow: number;
1212
+ /**
1213
+ * @description Queries the candidate policy would block.
1214
+ * @type integer
1215
+ */
1216
+ would_block: number;
1217
+ /**
1218
+ * @description Queries the candidate policy would mask result columns on.
1219
+ * @type integer
1220
+ */
1221
+ would_mask: number;
1222
+ /**
1223
+ * @description Queries the candidate policy would inject a row filter into.
1224
+ * @type integer
1225
+ */
1226
+ would_row_filter: number;
1227
+ /**
1228
+ * @description Queries that executed under the recorded policy but the candidate policy would block.
1229
+ * @type integer
1230
+ */
1231
+ newly_blocked: number;
1232
+ /**
1233
+ * @description Queries that were blocked when recorded but the candidate policy would permit.
1234
+ * @type integer
1235
+ */
1236
+ newly_allowed: number;
1237
+ /**
1238
+ * @description Distinct queries skipped because the stored statement was truncated at record time and can no longer be parsed faithfully.
1239
+ * @type integer
1240
+ */
1241
+ skipped_unparseable: number;
1242
+ /**
1243
+ * @description True when the window contained more distinct queries than limit; only the newest were replayed.
1244
+ * @type boolean
1245
+ */
1246
+ truncated: boolean;
1247
+ };
1248
+
1249
+ /**
1250
+ * Generated by Kubb (https://kubb.dev/).
1251
+ * Do not edit manually.
1252
+ */
1253
+
1254
+ /**
1255
+ * @description The outcome of replaying recorded agent traffic against a candidate policy: an aggregate summary plus per-query decisions, changes first.
1256
+ * @type object
1257
+ */
1258
+ type PolicyReplayResult = {
1259
+ /**
1260
+ * @description Aggregate outcome of a policy replay.
1261
+ * @type object
1262
+ */
1263
+ summary: PolicyReplaySummary;
1264
+ /**
1265
+ * @description Per-query replay decisions, ordered changes first (newly blocked, then newly allowed), then by occurrence count.
1266
+ * @type array
1267
+ */
1268
+ items: PolicyReplayItem[];
1269
+ };
1270
+
1271
+ /**
1272
+ * Generated by Kubb (https://kubb.dev/).
1273
+ * Do not edit manually.
1274
+ */
1275
+
1276
+ /**
1277
+ * @description A least-privilege policy derived from an agent credential\'s recorded audit history, together with the replay diff that proves the candidate would not newly block any statement the credential legitimately ran. Advisory only: this endpoint never creates, updates, or otherwise mutates a policy or a credential. A good recommendation has replay.summary.newly_blocked == 0.
1278
+ * @type object
1279
+ */
1280
+ type PolicyRecommendation = {
1281
+ /**
1282
+ * @description True when there was enough parseable, executed traffic to derive a candidate. When false, candidate and replay are omitted and message explains why no recommendation could be made.
1283
+ * @type boolean
1284
+ */
1285
+ sufficient_history: boolean;
1286
+ /**
1287
+ * @description Present when sufficient_history is false; a clear explanation of why no recommendation could be produced (e.g. no executed traffic in the window).
1288
+ * @type string | undefined
1289
+ */
1290
+ message?: string;
1291
+ /**
1292
+ * @description Mutable fields of a policy profile (used for create and update).
1293
+ * @type object | undefined
1294
+ */
1295
+ candidate?: PolicyProfileInput;
1296
+ /**
1297
+ * @description The outcome of replaying recorded agent traffic against a candidate policy: an aggregate summary plus per-query decisions, changes first.
1298
+ * @type object | undefined
1299
+ */
1300
+ replay?: PolicyReplayResult;
1301
+ /**
1302
+ * @description Distinct executed query shapes the candidate was derived from (blocked attempts are excluded from derivation).
1303
+ * @type integer
1304
+ */
1305
+ observed_queries: number;
1306
+ /**
1307
+ * @description Recorded audit entries covered by the analyzed window.
1308
+ * @type integer
1309
+ */
1310
+ observed_entries: number;
1311
+ /**
1312
+ * @description Start of the analyzed traffic window (inclusive).
1313
+ * @type string
1314
+ */
1315
+ window_start: string;
1316
+ /**
1317
+ * @description End of the analyzed traffic window (exclusive).
1318
+ * @type string
1319
+ */
1320
+ window_end: string;
1321
+ /**
1322
+ * @description Human-readable rationale for each tightening decision (e.g. why the candidate was downgraded to read-only, or how max_rows was chosen).
1323
+ * @type array | undefined
1324
+ */
1325
+ notes?: string[];
1326
+ };
1327
+
1328
+ /**
1329
+ * Generated by Kubb (https://kubb.dev/).
1330
+ * Do not edit manually.
1331
+ */
1332
+ /**
1333
+ * @description Optional parameters for a least-privilege policy recommendation. Every field is optional; an empty body analyzes the last 30 days of the credential\'s audit history.
1334
+ * @type object
1335
+ */
1336
+ type PolicyRecommendationInput = {
1337
+ /**
1338
+ * @description How many days of recorded audit history to analyze.
1339
+ * @minLength 1
1340
+ * @maxLength 365
1341
+ * @default 30
1342
+ * @type integer | undefined
1343
+ */
1344
+ lookback_days?: number;
1345
+ /**
1346
+ * @description Maximum number of distinct query shapes to analyze and replay, newest first. Traffic is deduplicated by normalized query hash.
1347
+ * @minLength 1
1348
+ * @maxLength 500
1349
+ * @default 200
1350
+ * @type integer | undefined
1351
+ */
1352
+ limit?: number;
1353
+ };
1354
+
1355
+ /**
1356
+ * Generated by Kubb (https://kubb.dev/).
1357
+ * Do not edit manually.
1358
+ */
1359
+
1360
+ /**
1361
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
1362
+ * @pattern ^[a-zA-Z0-9_.-]+$
1363
+ * @type string
1364
+ */
1365
+ type RecommendAgentPolicyPathProjectId = string;
1366
+ /**
1367
+ * @description Unique agent credential identifier (prefixed, e.g. agt_xxx).
1368
+ * @pattern ^[a-zA-Z0-9_.-]+$
1369
+ * @type string
1370
+ */
1371
+ type RecommendAgentPolicyPathAgentId = string;
1372
+ /**
1373
+ * @description A least-privilege policy derived from an agent credential\'s recorded audit history, together with the replay diff that proves the candidate would not newly block any statement the credential legitimately ran. Advisory only: this endpoint never creates, updates, or otherwise mutates a policy or a credential. A good recommendation has replay.summary.newly_blocked == 0.
1374
+ * @type object
1375
+ */
1376
+ type RecommendAgentPolicyStatus200 = PolicyRecommendation;
1377
+ /**
1378
+ * @description Optional parameters for a least-privilege policy recommendation. Every field is optional; an empty body analyzes the last 30 days of the credential\'s audit history.
1379
+ * @type object | undefined
1380
+ */
1381
+ type RecommendAgentPolicyData = PolicyRecommendationInput | undefined;
1382
+ /**
1383
+ * @type object
1384
+ */
1385
+ type RecommendAgentPolicyRequestConfig = {
1386
+ data?: RecommendAgentPolicyData;
1387
+ /**
1388
+ * @type object
1389
+ */
1390
+ pathParams: {
1391
+ project_id: RecommendAgentPolicyPathProjectId;
1392
+ agent_id: RecommendAgentPolicyPathAgentId;
1393
+ };
1394
+ queryParams?: never;
1395
+ headerParams?: never;
1396
+ /**
1397
+ * @type string
1398
+ */
1399
+ url: `/v1/projects/${string}/agents/${string}/policy-recommendation`;
1400
+ };
1401
+
799
1402
  /**
800
1403
  * Generated by Kubb (https://kubb.dev/).
801
1404
  * Do not edit manually.
@@ -4258,93 +4861,55 @@ type GetHealthStatus200 = HealthResponse;
4258
4861
  * Generated by Kubb (https://kubb.dev/).
4259
4862
  * Do not edit manually.
4260
4863
  */
4261
- /**
4262
- * @description Aggregate cache performance metrics for the selected time range.
4263
- * @type object
4264
- */
4265
- type CacheSummary = {
4266
- /**
4267
- * @description Total number of cache hits in the selected time range.
4268
- * @type integer
4269
- */
4270
- total_hits: number;
4271
- /**
4272
- * @description Total number of cache misses in the selected time range.
4273
- * @type integer
4274
- */
4275
- total_misses: number;
4276
- /**
4277
- * @description Cache hit rate as a fraction (0.0 to 1.0).
4278
- * @type number
4279
- */
4280
- hit_rate: number;
4281
- };
4282
-
4283
- /**
4284
- * Generated by Kubb (https://kubb.dev/).
4285
- * Do not edit manually.
4286
- */
4287
- /**
4288
- * @description Aggregate latency metrics for the selected time range.
4289
- * @type object
4290
- */
4291
- type LatencySummary = {
4292
- /**
4293
- * @description Average latency in milliseconds across all queries.
4294
- * @type number
4295
- */
4296
- avg_ms: number;
4297
- /**
4298
- * @description P99 latency in milliseconds across all queries.
4299
- * @type number
4300
- */
4301
- p99_ms: number;
4864
+ declare const honeytokenActionEnum: {
4865
+ readonly audit_only: "audit_only";
4866
+ readonly kill: "kill";
4302
4867
  };
4303
-
4304
- /**
4305
- * Generated by Kubb (https://kubb.dev/).
4306
- * Do not edit manually.
4307
- */
4868
+ type HoneytokenActionEnumKey = (typeof honeytokenActionEnum)[keyof typeof honeytokenActionEnum];
4308
4869
  /**
4309
- * @description Aggregated analytics for a normalized SQL query shape.
4870
+ * @description A decoy (canary) relation. Any agent statement that references it is blocked (fail closed) and recorded as a canary_tripped audit event.\n
4310
4871
  * @type object
4311
4872
  */
4312
- type QueryInsight = {
4873
+ type Honeytoken = {
4313
4874
  /**
4314
- * @description xxhash64 of the normalized SQL pattern (hex).
4875
+ * @description Unique honeytoken identifier.
4876
+ * @example hnt_01j9x8y7z6w5v4u3t2s1r0q9p8
4315
4877
  * @type string
4316
4878
  */
4317
- query_hash: string;
4879
+ id: string;
4318
4880
  /**
4319
- * @description Normalized SQL pattern (truncated to 500 chars).
4881
+ * @description Project the honeytoken belongs to.
4882
+ * @example prj_01j9x8y7z6w5v4u3t2s1r0q9p8
4320
4883
  * @type string
4321
4884
  */
4322
- query_pattern: string;
4885
+ project_id: string;
4323
4886
  /**
4324
- * @description Total number of executions in the time range.
4325
- * @type integer
4887
+ * @description Optional schema. Null matches the unqualified/public form, mirroring the relation allowlist normalization.\n
4888
+ * @example public
4889
+ * @type string
4326
4890
  */
4327
- total_count: number;
4891
+ schema_name?: string | null;
4328
4892
  /**
4329
- * @description Total cache hits attributed to the query shape.
4330
- * @type integer
4893
+ * @description Relation (table or view) name of the decoy.
4894
+ * @example customer_ssns
4895
+ * @type string
4331
4896
  */
4332
- total_cache_hits: number;
4897
+ relation_name: string;
4333
4898
  /**
4334
- * @description Total cache misses attributed to the query shape.
4335
- * @type integer
4899
+ * @description Response when tripped. audit_only blocks the statement, records the event, and fires webhooks. kill additionally disables the tripping credential via the kill-switch.\n
4900
+ * @type string
4336
4901
  */
4337
- total_cache_misses: number;
4902
+ action: HoneytokenActionEnumKey;
4338
4903
  /**
4339
- * @description Average query latency in milliseconds.
4340
- * @type number
4904
+ * @description When the honeytoken was registered.
4905
+ * @type string
4341
4906
  */
4342
- avg_latency_ms: number;
4907
+ created_at: string;
4343
4908
  /**
4344
- * @description P99 query latency in milliseconds.
4345
- * @type number
4909
+ * @description When the honeytoken was last updated.
4910
+ * @type string
4346
4911
  */
4347
- p99_latency_ms: number;
4912
+ updated_at: string;
4348
4913
  };
4349
4914
 
4350
4915
  /**
@@ -4353,25 +4918,20 @@ type QueryInsight = {
4353
4918
  */
4354
4919
 
4355
4920
  /**
4356
- * @description Query insights, cache performance, and latency for a project.
4921
+ * @description Cursor-paginated honeytokens for a project.
4357
4922
  * @type object
4358
4923
  */
4359
- type ProjectInsights = {
4924
+ type ListHoneytokensResponse = {
4360
4925
  /**
4361
- * @description Top query shapes observed for the project.
4926
+ * @description Honeytokens returned for the current page.
4362
4927
  * @type array
4363
4928
  */
4364
- queries: QueryInsight[];
4365
- /**
4366
- * @description Aggregate cache performance metrics for the selected time range.
4367
- * @type object
4368
- */
4369
- cache: CacheSummary;
4929
+ honeytokens: Honeytoken[];
4370
4930
  /**
4371
- * @description Aggregate latency metrics for the selected time range.
4372
- * @type object
4931
+ * @description Opaque token for cursor-based pagination.
4932
+ * @type string | undefined
4373
4933
  */
4374
- latency: LatencySummary;
4934
+ next_page_token?: string;
4375
4935
  };
4376
4936
 
4377
4937
  /**
@@ -4384,115 +4944,125 @@ type ProjectInsights = {
4384
4944
  * @pattern ^[a-zA-Z0-9_.-]+$
4385
4945
  * @type string
4386
4946
  */
4387
- type GetProjectInsightsPathProjectId = string;
4388
- /**
4389
- * @description Time range to query. Defaults to 24h.
4390
- * @default "24h"
4391
- * @example 24h
4392
- * @type string | undefined
4393
- */
4394
- type GetProjectInsightsQueryRange = ("1h" | "6h" | "24h" | "7d") | undefined;
4947
+ type ListHoneytokensPathProjectId = string;
4395
4948
  /**
4396
- * @description Maximum number of top queries to return (1-100).
4949
+ * @description Maximum number of items to return (1-100, default 20).
4397
4950
  * @minLength 1
4398
4951
  * @maxLength 100
4399
4952
  * @default 20
4400
4953
  * @type integer | undefined
4401
4954
  */
4402
- type GetProjectInsightsQueryLimit = number | undefined;
4955
+ type ListHoneytokensQueryPageSize = number | undefined;
4956
+ /**
4957
+ * @description Opaque token for cursor-based pagination.
4958
+ * @pattern ^[a-zA-Z0-9_.-]+$
4959
+ * @type string | undefined
4960
+ */
4961
+ type ListHoneytokensQueryPageToken = string | undefined;
4403
4962
  /**
4404
- * @description Query insights, cache performance, and latency for a project.
4963
+ * @description Cursor-paginated honeytokens for a project.
4405
4964
  * @type object
4406
4965
  */
4407
- type GetProjectInsightsStatus200 = ProjectInsights;
4966
+ type ListHoneytokensStatus200 = ListHoneytokensResponse;
4408
4967
  /**
4409
4968
  * @type object
4410
4969
  */
4411
- type GetProjectInsightsRequestConfig = {
4970
+ type ListHoneytokensRequestConfig = {
4412
4971
  data?: never;
4413
4972
  /**
4414
4973
  * @type object
4415
4974
  */
4416
4975
  pathParams: {
4417
- project_id: GetProjectInsightsPathProjectId;
4976
+ project_id: ListHoneytokensPathProjectId;
4418
4977
  };
4419
4978
  /**
4420
4979
  * @type object | undefined
4421
4980
  */
4422
4981
  queryParams?: {
4423
- range?: GetProjectInsightsQueryRange;
4424
- limit?: GetProjectInsightsQueryLimit;
4982
+ page_size?: ListHoneytokensQueryPageSize;
4983
+ page_token?: ListHoneytokensQueryPageToken;
4425
4984
  };
4426
4985
  headerParams?: never;
4427
4986
  /**
4428
4987
  * @type string
4429
4988
  */
4430
- url: `/v1/projects/${string}/insights`;
4989
+ url: `/v1/projects/${string}/honeytokens`;
4431
4990
  };
4432
4991
 
4433
4992
  /**
4434
4993
  * Generated by Kubb (https://kubb.dev/).
4435
4994
  * Do not edit manually.
4436
4995
  */
4996
+ declare const honeytokenInputActionEnum: {
4997
+ readonly audit_only: "audit_only";
4998
+ readonly kill: "kill";
4999
+ };
5000
+ type HoneytokenInputActionEnumKey = (typeof honeytokenInputActionEnum)[keyof typeof honeytokenInputActionEnum];
4437
5001
  /**
4438
- * @description A migration script to lint for unsafe schema changes.
5002
+ * @description Request body for creating or updating a honeytoken.
4439
5003
  * @type object
4440
5004
  */
4441
- type MigrationLintRequest = {
5005
+ type HoneytokenInput = {
4442
5006
  /**
4443
- * @description The migration SQL to analyze. May contain multiple statements.
5007
+ * @description Optional schema. Null or empty matches the unqualified/public form.
5008
+ * @maxLength 255
5009
+ * @example public
5010
+ * @type string
5011
+ */
5012
+ schema_name?: string | null;
5013
+ /**
5014
+ * @description Relation (table or view) name of the decoy.
4444
5015
  * @minLength 1
4445
- * @maxLength 1048576
5016
+ * @maxLength 255
5017
+ * @example customer_ssns
4446
5018
  * @type string
4447
5019
  */
4448
- sql: string;
5020
+ relation_name: string;
4449
5021
  /**
4450
- * @description Optional database to scope the lint to.
4451
- * @type string | undefined
5022
+ * @description Response when the honeytoken is tripped.
5023
+ * @type string
4452
5024
  */
4453
- database_id?: string;
5025
+ action: HoneytokenInputActionEnumKey;
4454
5026
  };
4455
5027
 
4456
5028
  /**
4457
5029
  * Generated by Kubb (https://kubb.dev/).
4458
5030
  * Do not edit manually.
4459
5031
  */
4460
- declare const migrationFindingSeverityEnum: {
4461
- readonly info: "info";
4462
- readonly warning: "warning";
4463
- readonly error: "error";
4464
- };
4465
- type MigrationFindingSeverityEnumKey = (typeof migrationFindingSeverityEnum)[keyof typeof migrationFindingSeverityEnum];
5032
+
4466
5033
  /**
4467
- * @description A single issue found while linting a migration.
5034
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
5035
+ * @pattern ^[a-zA-Z0-9_.-]+$
5036
+ * @type string
5037
+ */
5038
+ type CreateHoneytokenPathProjectId = string;
5039
+ /**
5040
+ * @description A decoy (canary) relation. Any agent statement that references it is blocked (fail closed) and recorded as a canary_tripped audit event.\n
4468
5041
  * @type object
4469
5042
  */
4470
- type MigrationFinding = {
4471
- /**
4472
- * @description How serious the finding is. error indicates an unsafe change.
4473
- * @type string
4474
- */
4475
- severity: MigrationFindingSeverityEnumKey;
5043
+ type CreateHoneytokenStatus201 = Honeytoken;
5044
+ /**
5045
+ * @description Request body for creating or updating a honeytoken.
5046
+ * @type object
5047
+ */
5048
+ type CreateHoneytokenData = HoneytokenInput;
5049
+ /**
5050
+ * @type object
5051
+ */
5052
+ type CreateHoneytokenRequestConfig = {
5053
+ data?: CreateHoneytokenData;
4476
5054
  /**
4477
- * @description Machine-readable rule identifier (e.g. drop_table, add_not_null_no_default).
4478
- * @type string
5055
+ * @type object
4479
5056
  */
4480
- rule: string;
5057
+ pathParams: {
5058
+ project_id: CreateHoneytokenPathProjectId;
5059
+ };
5060
+ queryParams?: never;
5061
+ headerParams?: never;
4481
5062
  /**
4482
- * @description Human-readable description of the issue.
4483
5063
  * @type string
4484
5064
  */
4485
- message: string;
4486
- /**
4487
- * @description The statement that triggered the finding.
4488
- * @type string | undefined
4489
- */
4490
- statement?: string;
4491
- /**
4492
- * @description Suggested safer alternative, if any.
4493
- * @type string | undefined
4494
- */
4495
- hint?: string;
5065
+ url: `/v1/projects/${string}/honeytokens`;
4496
5066
  };
4497
5067
 
4498
5068
  /**
@@ -4501,20 +5071,40 @@ type MigrationFinding = {
4501
5071
  */
4502
5072
 
4503
5073
  /**
4504
- * @description Result of linting a migration script.
5074
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
5075
+ * @pattern ^[a-zA-Z0-9_.-]+$
5076
+ * @type string
5077
+ */
5078
+ type GetHoneytokenPathProjectId = string;
5079
+ /**
5080
+ * @description Unique honeytoken identifier (prefixed, e.g. hnt_xxx).
5081
+ * @pattern ^[a-zA-Z0-9_.-]+$
5082
+ * @type string
5083
+ */
5084
+ type GetHoneytokenPathHoneytokenId = string;
5085
+ /**
5086
+ * @description A decoy (canary) relation. Any agent statement that references it is blocked (fail closed) and recorded as a canary_tripped audit event.\n
4505
5087
  * @type object
4506
5088
  */
4507
- type MigrationLintResponse = {
5089
+ type GetHoneytokenStatus200 = Honeytoken;
5090
+ /**
5091
+ * @type object
5092
+ */
5093
+ type GetHoneytokenRequestConfig = {
5094
+ data?: never;
4508
5095
  /**
4509
- * @description True when no error-severity findings were detected.
4510
- * @type boolean
5096
+ * @type object
4511
5097
  */
4512
- safe: boolean;
5098
+ pathParams: {
5099
+ project_id: GetHoneytokenPathProjectId;
5100
+ honeytoken_id: GetHoneytokenPathHoneytokenId;
5101
+ };
5102
+ queryParams?: never;
5103
+ headerParams?: never;
4513
5104
  /**
4514
- * @description Findings detected across all statements.
4515
- * @type array
5105
+ * @type string
4516
5106
  */
4517
- findings: MigrationFinding[];
5107
+ url: `/v1/projects/${string}/honeytokens/${string}`;
4518
5108
  };
4519
5109
 
4520
5110
  /**
@@ -4527,177 +5117,198 @@ type MigrationLintResponse = {
4527
5117
  * @pattern ^[a-zA-Z0-9_.-]+$
4528
5118
  * @type string
4529
5119
  */
4530
- type LintMigrationPathProjectId = string;
5120
+ type UpdateHoneytokenPathProjectId = string;
4531
5121
  /**
4532
- * @description Result of linting a migration script.
5122
+ * @description Unique honeytoken identifier (prefixed, e.g. hnt_xxx).
5123
+ * @pattern ^[a-zA-Z0-9_.-]+$
5124
+ * @type string
5125
+ */
5126
+ type UpdateHoneytokenPathHoneytokenId = string;
5127
+ /**
5128
+ * @description A decoy (canary) relation. Any agent statement that references it is blocked (fail closed) and recorded as a canary_tripped audit event.\n
4533
5129
  * @type object
4534
5130
  */
4535
- type LintMigrationStatus200 = MigrationLintResponse;
5131
+ type UpdateHoneytokenStatus200 = Honeytoken;
4536
5132
  /**
4537
- * @description A migration script to lint for unsafe schema changes.
5133
+ * @description Request body for creating or updating a honeytoken.
4538
5134
  * @type object
4539
5135
  */
4540
- type LintMigrationData = MigrationLintRequest;
5136
+ type UpdateHoneytokenData = HoneytokenInput;
4541
5137
  /**
4542
5138
  * @type object
4543
5139
  */
4544
- type LintMigrationRequestConfig = {
4545
- data?: LintMigrationData;
5140
+ type UpdateHoneytokenRequestConfig = {
5141
+ data?: UpdateHoneytokenData;
4546
5142
  /**
4547
5143
  * @type object
4548
5144
  */
4549
5145
  pathParams: {
4550
- project_id: LintMigrationPathProjectId;
5146
+ project_id: UpdateHoneytokenPathProjectId;
5147
+ honeytoken_id: UpdateHoneytokenPathHoneytokenId;
4551
5148
  };
4552
5149
  queryParams?: never;
4553
5150
  headerParams?: never;
4554
5151
  /**
4555
5152
  * @type string
4556
5153
  */
4557
- url: `/v1/projects/${string}/migrations${string}`;
5154
+ url: `/v1/projects/${string}/honeytokens/${string}`;
4558
5155
  };
4559
5156
 
4560
5157
  /**
4561
5158
  * Generated by Kubb (https://kubb.dev/).
4562
5159
  * Do not edit manually.
4563
5160
  */
5161
+
5162
+ /**
5163
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
5164
+ * @pattern ^[a-zA-Z0-9_.-]+$
5165
+ * @type string
5166
+ */
5167
+ type DeleteHoneytokenPathProjectId = string;
5168
+ /**
5169
+ * @description Unique honeytoken identifier (prefixed, e.g. hnt_xxx).
5170
+ * @pattern ^[a-zA-Z0-9_.-]+$
5171
+ * @type string
5172
+ */
5173
+ type DeleteHoneytokenPathHoneytokenId = string;
4564
5174
  /**
4565
- * @description Progress state for the dashboard onboarding checklist.
4566
5175
  * @type object
4567
5176
  */
4568
- type OnboardingProgress = {
4569
- /**
4570
- * @description Organization ID this onboarding belongs to.
4571
- * @type string
4572
- */
4573
- organization_id: string;
5177
+ type DeleteHoneytokenRequestConfig = {
5178
+ data?: never;
4574
5179
  /**
4575
- * @description Whether the organization has been created.
4576
- * @type boolean
5180
+ * @type object
4577
5181
  */
4578
- org_created: boolean;
5182
+ pathParams: {
5183
+ project_id: DeleteHoneytokenPathProjectId;
5184
+ honeytoken_id: DeleteHoneytokenPathHoneytokenId;
5185
+ };
5186
+ queryParams?: never;
5187
+ headerParams?: never;
4579
5188
  /**
4580
- * @description Whether a project has been created.
4581
- * @type boolean
5189
+ * @type string
4582
5190
  */
4583
- project_created: boolean;
5191
+ url: `/v1/projects/${string}/honeytokens/${string}`;
5192
+ };
5193
+
5194
+ /**
5195
+ * Generated by Kubb (https://kubb.dev/).
5196
+ * Do not edit manually.
5197
+ */
5198
+ /**
5199
+ * @description Aggregate cache performance metrics for the selected time range.
5200
+ * @type object
5201
+ */
5202
+ type CacheSummary = {
4584
5203
  /**
4585
- * @description Whether a database has been added.
4586
- * @type boolean
5204
+ * @description Total number of cache hits in the selected time range.
5205
+ * @type integer
4587
5206
  */
4588
- database_added: boolean;
5207
+ total_hits: number;
4589
5208
  /**
4590
- * @description Whether the database connection has been tested.
4591
- * @type boolean
5209
+ * @description Total number of cache misses in the selected time range.
5210
+ * @type integer
4592
5211
  */
4593
- connection_tested: boolean;
5212
+ total_misses: number;
4594
5213
  /**
4595
- * @description Whether the connection string has been copied.
4596
- * @type boolean
5214
+ * @description Cache hit rate as a fraction (0.0 to 1.0).
5215
+ * @type number
4597
5216
  */
4598
- connection_string_copied: boolean;
5217
+ hit_rate: number;
5218
+ };
5219
+
5220
+ /**
5221
+ * Generated by Kubb (https://kubb.dev/).
5222
+ * Do not edit manually.
5223
+ */
5224
+ /**
5225
+ * @description Aggregate latency metrics for the selected time range.
5226
+ * @type object
5227
+ */
5228
+ type LatencySummary = {
4599
5229
  /**
4600
- * @description Whether the first query has been run through PgBeam.
4601
- * @type boolean
5230
+ * @description Average latency in milliseconds across all queries.
5231
+ * @type number
4602
5232
  */
4603
- first_query_run: boolean;
5233
+ avg_ms: number;
4604
5234
  /**
4605
- * @description Whether an agent credential has been issued.
4606
- * @type boolean
5235
+ * @description P99 latency in milliseconds across all queries.
5236
+ * @type number
4607
5237
  */
4608
- agent_credential_created: boolean;
5238
+ p99_ms: number;
5239
+ };
5240
+
5241
+ /**
5242
+ * Generated by Kubb (https://kubb.dev/).
5243
+ * Do not edit manually.
5244
+ */
5245
+ /**
5246
+ * @description Aggregated analytics for a normalized SQL query shape.
5247
+ * @type object
5248
+ */
5249
+ type QueryInsight = {
4609
5250
  /**
4610
- * @description Whether the user has dismissed the onboarding checklist.
4611
- * @type boolean
5251
+ * @description xxhash64 of the normalized SQL pattern (hex).
5252
+ * @type string
4612
5253
  */
4613
- dismissed: boolean;
5254
+ query_hash: string;
4614
5255
  /**
4615
- * @description Whether all onboarding steps are complete.
4616
- * @type boolean
5256
+ * @description Normalized SQL pattern (truncated to 500 chars).
5257
+ * @type string
4617
5258
  */
4618
- completed: boolean;
5259
+ query_pattern: string;
4619
5260
  /**
4620
- * @description Number of completed onboarding steps.
5261
+ * @description Total number of executions in the time range.
4621
5262
  * @type integer
4622
5263
  */
4623
- steps_completed: number;
5264
+ total_count: number;
4624
5265
  /**
4625
- * @description Total number of onboarding steps.
5266
+ * @description Total cache hits attributed to the query shape.
4626
5267
  * @type integer
4627
5268
  */
4628
- steps_total: number;
5269
+ total_cache_hits: number;
4629
5270
  /**
4630
- * @description When onboarding was completed. Null if not yet completed.
4631
- * @type string
5271
+ * @description Total cache misses attributed to the query shape.
5272
+ * @type integer
4632
5273
  */
4633
- completed_at?: string | null;
4634
- };
4635
-
4636
- /**
4637
- * Generated by Kubb (https://kubb.dev/).
4638
- * Do not edit manually.
4639
- */
4640
-
4641
- /**
4642
- * @description Unique organization identifier.
4643
- * @pattern ^[a-zA-Z0-9_.-]+$
4644
- * @example org_abc123
4645
- * @type string
4646
- */
4647
- type GetOnboardingProgressPathOrgId = string;
4648
- /**
4649
- * @description Progress state for the dashboard onboarding checklist.
4650
- * @type object
4651
- */
4652
- type GetOnboardingProgressStatus200 = OnboardingProgress;
4653
- /**
4654
- * @type object
4655
- */
4656
- type GetOnboardingProgressRequestConfig = {
4657
- data?: never;
5274
+ total_cache_misses: number;
4658
5275
  /**
4659
- * @type object
5276
+ * @description Average query latency in milliseconds.
5277
+ * @type number
4660
5278
  */
4661
- pathParams: {
4662
- org_id: GetOnboardingProgressPathOrgId;
4663
- };
4664
- queryParams?: never;
4665
- headerParams?: never;
5279
+ avg_latency_ms: number;
4666
5280
  /**
4667
- * @type string
5281
+ * @description P99 query latency in milliseconds.
5282
+ * @type number
4668
5283
  */
4669
- url: `/v1/organizations/${string}/onboarding`;
5284
+ p99_latency_ms: number;
4670
5285
  };
4671
5286
 
4672
5287
  /**
4673
5288
  * Generated by Kubb (https://kubb.dev/).
4674
5289
  * Do not edit manually.
4675
5290
  */
4676
- declare const updateOnboardingRequestStepEnum: {
4677
- readonly project_created: "project_created";
4678
- readonly database_added: "database_added";
4679
- readonly connection_tested: "connection_tested";
4680
- readonly connection_string_copied: "connection_string_copied";
4681
- readonly first_query_run: "first_query_run";
4682
- readonly agent_credential_created: "agent_credential_created";
4683
- };
4684
- type UpdateOnboardingRequestStepEnumKey = (typeof updateOnboardingRequestStepEnum)[keyof typeof updateOnboardingRequestStepEnum];
5291
+
4685
5292
  /**
4686
- * @description Request body for advancing or dismissing onboarding.
5293
+ * @description Query insights, cache performance, and latency for a project.
4687
5294
  * @type object
4688
5295
  */
4689
- type UpdateOnboardingRequest = {
5296
+ type ProjectInsights = {
4690
5297
  /**
4691
- * @description The onboarding step to mark as complete.
4692
- * @example project_created
4693
- * @type string | undefined
5298
+ * @description Top query shapes observed for the project.
5299
+ * @type array
4694
5300
  */
4695
- step?: UpdateOnboardingRequestStepEnumKey;
5301
+ queries: QueryInsight[];
4696
5302
  /**
4697
- * @description Set to true to dismiss the onboarding checklist.
4698
- * @type boolean | undefined
5303
+ * @description Aggregate cache performance metrics for the selected time range.
5304
+ * @type object
4699
5305
  */
4700
- dismiss?: boolean;
5306
+ cache: CacheSummary;
5307
+ /**
5308
+ * @description Aggregate latency metrics for the selected time range.
5309
+ * @type object
5310
+ */
5311
+ latency: LatencySummary;
4701
5312
  };
4702
5313
 
4703
5314
  /**
@@ -4706,117 +5317,141 @@ type UpdateOnboardingRequest = {
4706
5317
  */
4707
5318
 
4708
5319
  /**
4709
- * @description Unique organization identifier.
5320
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
4710
5321
  * @pattern ^[a-zA-Z0-9_.-]+$
4711
- * @example org_abc123
4712
5322
  * @type string
4713
5323
  */
4714
- type UpdateOnboardingProgressPathOrgId = string;
5324
+ type GetProjectInsightsPathProjectId = string;
4715
5325
  /**
4716
- * @description Progress state for the dashboard onboarding checklist.
4717
- * @type object
5326
+ * @description Time range to query. Defaults to 24h.
5327
+ * @default "24h"
5328
+ * @example 24h
5329
+ * @type string | undefined
4718
5330
  */
4719
- type UpdateOnboardingProgressStatus200 = OnboardingProgress;
5331
+ type GetProjectInsightsQueryRange = ("1h" | "6h" | "24h" | "7d") | undefined;
4720
5332
  /**
4721
- * @description Request body for advancing or dismissing onboarding.
5333
+ * @description Maximum number of top queries to return (1-100).
5334
+ * @minLength 1
5335
+ * @maxLength 100
5336
+ * @default 20
5337
+ * @type integer | undefined
5338
+ */
5339
+ type GetProjectInsightsQueryLimit = number | undefined;
5340
+ /**
5341
+ * @description Query insights, cache performance, and latency for a project.
4722
5342
  * @type object
4723
5343
  */
4724
- type UpdateOnboardingProgressData = UpdateOnboardingRequest;
5344
+ type GetProjectInsightsStatus200 = ProjectInsights;
4725
5345
  /**
4726
5346
  * @type object
4727
5347
  */
4728
- type UpdateOnboardingProgressRequestConfig = {
4729
- data?: UpdateOnboardingProgressData;
5348
+ type GetProjectInsightsRequestConfig = {
5349
+ data?: never;
4730
5350
  /**
4731
5351
  * @type object
4732
5352
  */
4733
5353
  pathParams: {
4734
- org_id: UpdateOnboardingProgressPathOrgId;
5354
+ project_id: GetProjectInsightsPathProjectId;
5355
+ };
5356
+ /**
5357
+ * @type object | undefined
5358
+ */
5359
+ queryParams?: {
5360
+ range?: GetProjectInsightsQueryRange;
5361
+ limit?: GetProjectInsightsQueryLimit;
4735
5362
  };
4736
- queryParams?: never;
4737
5363
  headerParams?: never;
4738
5364
  /**
4739
5365
  * @type string
4740
5366
  */
4741
- url: `/v1/organizations/${string}/onboarding`;
5367
+ url: `/v1/projects/${string}/insights`;
4742
5368
  };
4743
5369
 
4744
5370
  /**
4745
5371
  * Generated by Kubb (https://kubb.dev/).
4746
5372
  * Do not edit manually.
4747
5373
  */
4748
- declare const maskingRuleKindEnum: {
4749
- readonly redact: "redact";
4750
- readonly null: "null";
4751
- readonly hash: "hash";
4752
- };
4753
- type MaskingRuleKindEnumKey = (typeof maskingRuleKindEnum)[keyof typeof maskingRuleKindEnum];
4754
5374
  /**
4755
- * @description A column masking rule applied to agent query results.
5375
+ * @description A migration script to lint for unsafe schema changes.
4756
5376
  * @type object
4757
5377
  */
4758
- type MaskingRule = {
4759
- /**
4760
- * @description Relation name, optionally schema-qualified (e.g. \"public.users\" or \"users\").
4761
- * @example users
4762
- * @type string
4763
- */
4764
- table: string;
5378
+ type MigrationLintRequest = {
4765
5379
  /**
4766
- * @description Column to mask.
4767
- * @example email
5380
+ * @description The migration SQL to analyze. May contain multiple statements.
5381
+ * @minLength 1
5382
+ * @maxLength 1048576
4768
5383
  * @type string
4769
5384
  */
4770
- column: string;
5385
+ sql: string;
4771
5386
  /**
4772
- * @description How to mask. redact replaces with a token, null returns NULL, hash returns a SHA-256 hex.
4773
- * @type string
5387
+ * @description Optional database to scope the lint to.
5388
+ * @type string | undefined
4774
5389
  */
4775
- kind: MaskingRuleKindEnumKey;
5390
+ database_id?: string;
4776
5391
  };
4777
5392
 
4778
5393
  /**
4779
5394
  * Generated by Kubb (https://kubb.dev/).
4780
5395
  * Do not edit manually.
4781
5396
  */
5397
+ declare const migrationFindingSeverityEnum: {
5398
+ readonly info: "info";
5399
+ readonly warning: "warning";
5400
+ readonly error: "error";
5401
+ };
5402
+ type MigrationFindingSeverityEnumKey = (typeof migrationFindingSeverityEnum)[keyof typeof migrationFindingSeverityEnum];
4782
5403
  /**
4783
- * @description A per-relation row filter. The predicate is a raw SQL boolean expression ANDed into the WHERE clause for the matching relation.
5404
+ * @description A single issue found while linting a migration.
4784
5405
  * @type object
4785
5406
  */
4786
- type RowFilter = {
5407
+ type MigrationFinding = {
4787
5408
  /**
4788
- * @description Relation name, optionally schema-qualified (e.g. \"public.orders\").
4789
- * @example orders
5409
+ * @description How serious the finding is. error indicates an unsafe change.
4790
5410
  * @type string
4791
5411
  */
4792
- table: string;
5412
+ severity: MigrationFindingSeverityEnumKey;
4793
5413
  /**
4794
- * @description Raw SQL boolean expression ANDed into WHERE for this relation.
4795
- * @example tenant_id = current_setting('pgbeam.tenant')
5414
+ * @description Machine-readable rule identifier (e.g. drop_table, add_not_null_no_default).
4796
5415
  * @type string
4797
5416
  */
4798
- predicate: string;
5417
+ rule: string;
5418
+ /**
5419
+ * @description Human-readable description of the issue.
5420
+ * @type string
5421
+ */
5422
+ message: string;
5423
+ /**
5424
+ * @description The statement that triggered the finding.
5425
+ * @type string | undefined
5426
+ */
5427
+ statement?: string;
5428
+ /**
5429
+ * @description Suggested safer alternative, if any.
5430
+ * @type string | undefined
5431
+ */
5432
+ hint?: string;
4799
5433
  };
4800
5434
 
4801
5435
  /**
4802
5436
  * Generated by Kubb (https://kubb.dev/).
4803
5437
  * Do not edit manually.
4804
5438
  */
5439
+
4805
5440
  /**
4806
- * @description Per-statement-kind allow/deny lists. Empty allow means all kinds permitted by the access mode.
5441
+ * @description Result of linting a migration script.
4807
5442
  * @type object
4808
5443
  */
4809
- type StatementRules = {
5444
+ type MigrationLintResponse = {
4810
5445
  /**
4811
- * @description Allowed statement kinds (select, insert, update, delete, ddl, copy, set, show, explain, transaction).
4812
- * @type array | undefined
5446
+ * @description True when no error-severity findings were detected.
5447
+ * @type boolean
4813
5448
  */
4814
- allow?: string[];
5449
+ safe: boolean;
4815
5450
  /**
4816
- * @description Denied statement kinds (takes precedence over allow).
4817
- * @type array | undefined
5451
+ * @description Findings detected across all statements.
5452
+ * @type array
4818
5453
  */
4819
- deny?: string[];
5454
+ findings: MigrationFinding[];
4820
5455
  };
4821
5456
 
4822
5457
  /**
@@ -4824,163 +5459,115 @@ type StatementRules = {
4824
5459
  * Do not edit manually.
4825
5460
  */
4826
5461
 
4827
- declare const policyProfileAccessModeEnum: {
4828
- readonly read_only: "read_only";
4829
- readonly read_write: "read_write";
4830
- };
4831
- type PolicyProfileAccessModeEnumKey = (typeof policyProfileAccessModeEnum)[keyof typeof policyProfileAccessModeEnum];
4832
- declare const policyProfileWriteModeEnum: {
4833
- readonly normal: "normal";
4834
- readonly rollback: "rollback";
4835
- readonly sandbox: "sandbox";
4836
- };
4837
- type PolicyProfileWriteModeEnumKey = (typeof policyProfileWriteModeEnum)[keyof typeof policyProfileWriteModeEnum];
4838
- declare const policyProfileApprovalModeEnum: {
4839
- readonly off: "off";
4840
- readonly writes: "writes";
4841
- readonly ddl: "ddl";
4842
- readonly all: "all";
4843
- };
4844
- type PolicyProfileApprovalModeEnumKey = (typeof policyProfileApprovalModeEnum)[keyof typeof policyProfileApprovalModeEnum];
4845
- declare const policyProfileMigrationSafetyEnum: {
4846
- readonly off: "off";
4847
- readonly warn: "warn";
4848
- readonly block: "block";
4849
- };
4850
- type PolicyProfileMigrationSafetyEnumKey = (typeof policyProfileMigrationSafetyEnum)[keyof typeof policyProfileMigrationSafetyEnum];
4851
5462
  /**
4852
- * @description A named bundle of rules enforced on agent credentials in the data plane.
5463
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
5464
+ * @pattern ^[a-zA-Z0-9_.-]+$
5465
+ * @type string
5466
+ */
5467
+ type LintMigrationPathProjectId = string;
5468
+ /**
5469
+ * @description Result of linting a migration script.
4853
5470
  * @type object
4854
5471
  */
4855
- type PolicyProfile = {
4856
- /**
4857
- * @description Unique policy profile identifier (prefixed).
4858
- * @example pol_01h455vb4pex5vsknk084sn02q
4859
- * @type string
4860
- */
4861
- id: string;
4862
- /**
4863
- * @description Owning project ID.
4864
- * @example prj_01h455vb4pex5vsknk084sn02q
4865
- * @type string
4866
- */
4867
- project_id: string;
4868
- /**
4869
- * @description Human-readable name for the policy profile.
4870
- * @example Read-only analytics
4871
- * @type string
4872
- */
4873
- name: string;
4874
- /**
4875
- * @description read_only blocks all data and schema mutations.
4876
- * @type string
4877
- */
4878
- access_mode: PolicyProfileAccessModeEnumKey;
4879
- /**
4880
- * @description Per-statement-kind allow/deny lists. Empty allow means all kinds permitted by the access mode.
4881
- * @type object | undefined
4882
- */
4883
- statement_rules?: StatementRules;
4884
- /**
4885
- * @description If non-empty, only these relations are reachable. Schema-qualified or bare names.
4886
- * @type array
4887
- */
4888
- table_allowlist: string[];
4889
- /**
4890
- * @description Relations explicitly blocked (takes precedence over the allowlist).
4891
- * @type array
4892
- */
4893
- table_denylist: string[];
5472
+ type LintMigrationStatus200 = MigrationLintResponse;
5473
+ /**
5474
+ * @description A migration script to lint for unsafe schema changes.
5475
+ * @type object
5476
+ */
5477
+ type LintMigrationData = MigrationLintRequest;
5478
+ /**
5479
+ * @type object
5480
+ */
5481
+ type LintMigrationRequestConfig = {
5482
+ data?: LintMigrationData;
4894
5483
  /**
4895
- * @description Column masking rules applied to query results.
4896
- * @type array
5484
+ * @type object
4897
5485
  */
4898
- masking_rules: MaskingRule[];
5486
+ pathParams: {
5487
+ project_id: LintMigrationPathProjectId;
5488
+ };
5489
+ queryParams?: never;
5490
+ headerParams?: never;
4899
5491
  /**
4900
- * @description Max queries per rolling hour window. 0 means unlimited.
4901
- * @default 0
4902
- * @type integer | undefined
5492
+ * @type string
4903
5493
  */
4904
- budget_queries_per_hour?: number;
5494
+ url: `/v1/projects/${string}/migrations${string}`;
5495
+ };
5496
+
5497
+ /**
5498
+ * Generated by Kubb (https://kubb.dev/).
5499
+ * Do not edit manually.
5500
+ */
5501
+ /**
5502
+ * @description Progress state for the dashboard onboarding checklist.
5503
+ * @type object
5504
+ */
5505
+ type OnboardingProgress = {
4905
5506
  /**
4906
- * @description Max queries per day window. 0 means unlimited.
4907
- * @default 0
4908
- * @type integer | undefined
5507
+ * @description Organization ID this onboarding belongs to.
5508
+ * @type string
4909
5509
  */
4910
- budget_queries_per_day?: number;
5510
+ organization_id: string;
4911
5511
  /**
4912
- * @description Max rows returned per query. 0 means unlimited.
4913
- * @default 0
4914
- * @type integer | undefined
5512
+ * @description Whether the organization has been created.
5513
+ * @type boolean
4915
5514
  */
4916
- max_rows?: number;
5515
+ org_created: boolean;
4917
5516
  /**
4918
- * @description Upstream statement timeout for agent sessions. 0 uses the project default.
4919
- * @default 0
4920
- * @type integer | undefined
5517
+ * @description Whether a project has been created.
5518
+ * @type boolean
4921
5519
  */
4922
- statement_timeout_ms?: number;
5520
+ project_created: boolean;
4923
5521
  /**
4924
- * @description Per-relation row filters ANDed into agent reads.
4925
- * @type array | undefined
5522
+ * @description Whether a database has been added.
5523
+ * @type boolean
4926
5524
  */
4927
- row_filters?: RowFilter[];
5525
+ database_added: boolean;
4928
5526
  /**
4929
- * @description How writes are handled. normal commits, rollback auto-rolls back, sandbox routes to an ephemeral branch.
4930
- * @default "normal"
4931
- * @type string | undefined
5527
+ * @description Whether the database connection has been tested.
5528
+ * @type boolean
4932
5529
  */
4933
- write_mode?: PolicyProfileWriteModeEnumKey;
5530
+ connection_tested: boolean;
4934
5531
  /**
4935
- * @description Which statement classes require human approval before execution.
4936
- * @default "off"
4937
- * @type string | undefined
5532
+ * @description Whether the connection string has been copied.
5533
+ * @type boolean
4938
5534
  */
4939
- approval_mode?: PolicyProfileApprovalModeEnumKey;
5535
+ connection_string_copied: boolean;
4940
5536
  /**
4941
- * @description Statements touching at most this many rows are auto-approved. 0 means none.
4942
- * @minLength 0
4943
- * @default 0
4944
- * @type integer | undefined
5537
+ * @description Whether the first query has been run through PgBeam.
5538
+ * @type boolean
4945
5539
  */
4946
- approval_auto_max_rows?: number;
5540
+ first_query_run: boolean;
4947
5541
  /**
4948
- * @description How long a held statement waits for a decision before expiring.
4949
- * @minLength 0
4950
- * @default 300
4951
- * @type integer | undefined
5542
+ * @description Whether an agent credential has been issued.
5543
+ * @type boolean
4952
5544
  */
4953
- approval_timeout_seconds?: number;
5545
+ agent_credential_created: boolean;
4954
5546
  /**
4955
- * @description Migration safety mode. warn surfaces findings, block refuses unsafe DDL.
4956
- * @default "off"
4957
- * @type string | undefined
5547
+ * @description Whether the user has dismissed the onboarding checklist.
5548
+ * @type boolean
4958
5549
  */
4959
- migration_safety?: PolicyProfileMigrationSafetyEnumKey;
5550
+ dismissed: boolean;
4960
5551
  /**
4961
- * @description Per-day egress budget in bytes. 0 means unlimited.
4962
- * @minLength 0
4963
- * @default 0
4964
- * @type integer | undefined
5552
+ * @description Whether all onboarding steps are complete.
5553
+ * @type boolean
4965
5554
  */
4966
- egress_bytes_per_day?: number;
5555
+ completed: boolean;
4967
5556
  /**
4968
- * @description Hard cap on rows a single write (INSERT/UPDATE/DELETE) may affect. A write whose affected-row count would exceed this is executed inside a transaction, checked, and rolled back so nothing persists, then blocked. Enforced independently of human approval. 0 means unlimited.
4969
- * @minLength 0
4970
- * @default 0
4971
- * @type integer | undefined
5557
+ * @description Number of completed onboarding steps.
5558
+ * @type integer
4972
5559
  */
4973
- max_affected_rows?: number;
5560
+ steps_completed: number;
4974
5561
  /**
4975
- * @description When the policy profile was created.
4976
- * @type string
5562
+ * @description Total number of onboarding steps.
5563
+ * @type integer
4977
5564
  */
4978
- created_at: string;
5565
+ steps_total: number;
4979
5566
  /**
4980
- * @description When the policy profile was last updated.
5567
+ * @description When onboarding was completed. Null if not yet completed.
4981
5568
  * @type string
4982
5569
  */
4983
- updated_at: string;
5570
+ completed_at?: string | null;
4984
5571
  };
4985
5572
 
4986
5573
  /**
@@ -4989,20 +5576,65 @@ type PolicyProfile = {
4989
5576
  */
4990
5577
 
4991
5578
  /**
4992
- * @description Cursor-paginated list of policy profiles for a project.
5579
+ * @description Unique organization identifier.
5580
+ * @pattern ^[a-zA-Z0-9_.-]+$
5581
+ * @example org_abc123
5582
+ * @type string
5583
+ */
5584
+ type GetOnboardingProgressPathOrgId = string;
5585
+ /**
5586
+ * @description Progress state for the dashboard onboarding checklist.
4993
5587
  * @type object
4994
5588
  */
4995
- type ListPolicyProfilesResponse = {
5589
+ type GetOnboardingProgressStatus200 = OnboardingProgress;
5590
+ /**
5591
+ * @type object
5592
+ */
5593
+ type GetOnboardingProgressRequestConfig = {
5594
+ data?: never;
4996
5595
  /**
4997
- * @description Policy profiles on the current page.
4998
- * @type array
5596
+ * @type object
4999
5597
  */
5000
- policies: PolicyProfile[];
5598
+ pathParams: {
5599
+ org_id: GetOnboardingProgressPathOrgId;
5600
+ };
5601
+ queryParams?: never;
5602
+ headerParams?: never;
5001
5603
  /**
5002
- * @description Token for the next page. Empty if no more results.
5604
+ * @type string
5605
+ */
5606
+ url: `/v1/organizations/${string}/onboarding`;
5607
+ };
5608
+
5609
+ /**
5610
+ * Generated by Kubb (https://kubb.dev/).
5611
+ * Do not edit manually.
5612
+ */
5613
+ declare const updateOnboardingRequestStepEnum: {
5614
+ readonly project_created: "project_created";
5615
+ readonly database_added: "database_added";
5616
+ readonly connection_tested: "connection_tested";
5617
+ readonly connection_string_copied: "connection_string_copied";
5618
+ readonly first_query_run: "first_query_run";
5619
+ readonly agent_credential_created: "agent_credential_created";
5620
+ };
5621
+ type UpdateOnboardingRequestStepEnumKey = (typeof updateOnboardingRequestStepEnum)[keyof typeof updateOnboardingRequestStepEnum];
5622
+ /**
5623
+ * @description Request body for advancing or dismissing onboarding.
5624
+ * @type object
5625
+ */
5626
+ type UpdateOnboardingRequest = {
5627
+ /**
5628
+ * @description The onboarding step to mark as complete.
5629
+ * @example project_created
5003
5630
  * @type string | undefined
5004
5631
  */
5005
- next_page_token?: string;
5632
+ step?: UpdateOnboardingRequestStepEnumKey;
5633
+ /**
5634
+ * @description Set to true to dismiss the onboarding checklist.
5635
+ * @type boolean | undefined
5636
+ */
5637
+ dismiss?: boolean;
5006
5638
  };
5007
5639
 
5008
5640
  /**
@@ -5011,53 +5643,74 @@ type ListPolicyProfilesResponse = {
5011
5643
  */
5012
5644
 
5013
5645
  /**
5014
- * @description Unique project identifier (prefixed, e.g. prj_xxx).
5646
+ * @description Unique organization identifier.
5015
5647
  * @pattern ^[a-zA-Z0-9_.-]+$
5648
+ * @example org_abc123
5016
5649
  * @type string
5017
5650
  */
5018
- type ListPolicyProfilesPathProjectId = string;
5019
- /**
5020
- * @description Maximum number of items to return (1-100, default 20).
5021
- * @minLength 1
5022
- * @maxLength 100
5023
- * @default 20
5024
- * @type integer | undefined
5025
- */
5026
- type ListPolicyProfilesQueryPageSize = number | undefined;
5651
+ type UpdateOnboardingProgressPathOrgId = string;
5027
5652
  /**
5028
- * @description Opaque token for cursor-based pagination.
5029
- * @pattern ^[a-zA-Z0-9_.-]+$
5030
- * @type string | undefined
5653
+ * @description Progress state for the dashboard onboarding checklist.
5654
+ * @type object
5031
5655
  */
5032
- type ListPolicyProfilesQueryPageToken = string | undefined;
5656
+ type UpdateOnboardingProgressStatus200 = OnboardingProgress;
5033
5657
  /**
5034
- * @description Cursor-paginated list of policy profiles for a project.
5658
+ * @description Request body for advancing or dismissing onboarding.
5035
5659
  * @type object
5036
5660
  */
5037
- type ListPolicyProfilesStatus200 = ListPolicyProfilesResponse;
5661
+ type UpdateOnboardingProgressData = UpdateOnboardingRequest;
5038
5662
  /**
5039
5663
  * @type object
5040
5664
  */
5041
- type ListPolicyProfilesRequestConfig = {
5042
- data?: never;
5665
+ type UpdateOnboardingProgressRequestConfig = {
5666
+ data?: UpdateOnboardingProgressData;
5043
5667
  /**
5044
5668
  * @type object
5045
5669
  */
5046
5670
  pathParams: {
5047
- project_id: ListPolicyProfilesPathProjectId;
5671
+ org_id: UpdateOnboardingProgressPathOrgId;
5048
5672
  };
5673
+ queryParams?: never;
5674
+ headerParams?: never;
5049
5675
  /**
5050
- * @type object | undefined
5676
+ * @type string
5051
5677
  */
5052
- queryParams?: {
5053
- page_size?: ListPolicyProfilesQueryPageSize;
5054
- page_token?: ListPolicyProfilesQueryPageToken;
5055
- };
5056
- headerParams?: never;
5678
+ url: `/v1/organizations/${string}/onboarding`;
5679
+ };
5680
+
5681
+ /**
5682
+ * Generated by Kubb (https://kubb.dev/).
5683
+ * Do not edit manually.
5684
+ */
5685
+ /**
5686
+ * @description An organization visible to the caller\'s credential.
5687
+ * @type object
5688
+ */
5689
+ type OrganizationSummary = {
5690
+ /**
5691
+ * @description Organization identifier.
5692
+ * @example org_abc123
5693
+ * @type string
5694
+ */
5695
+ id: string;
5057
5696
  /**
5697
+ * @description Organization display name.
5698
+ * @example Acme Corp
5058
5699
  * @type string
5059
5700
  */
5060
- url: `/v1/projects/${string}/policies`;
5701
+ name: string;
5702
+ /**
5703
+ * @description Organization slug used in URLs and routing.
5704
+ * @example acme-corp
5705
+ * @type string
5706
+ */
5707
+ slug: string;
5708
+ /**
5709
+ * @description The caller\'s role within the organization. Omitted for organization-scoped API keys, which act as the organization itself rather than as a member.
5710
+ * @example owner
5711
+ * @type string | undefined
5712
+ */
5713
+ role?: string;
5061
5714
  };
5062
5715
 
5063
5716
  /**
@@ -5065,92 +5718,126 @@ type ListPolicyProfilesRequestConfig = {
5065
5718
  * Do not edit manually.
5066
5719
  */
5067
5720
 
5068
- declare const policyProfileInputAccessModeEnum: {
5721
+ /**
5722
+ * @description Organizations visible to the caller\'s credential.
5723
+ * @type object
5724
+ */
5725
+ type ListOrganizationsResponse = {
5726
+ /**
5727
+ * @description Organizations the caller can access.
5728
+ * @type array
5729
+ */
5730
+ organizations: OrganizationSummary[];
5731
+ };
5732
+
5733
+ /**
5734
+ * Generated by Kubb (https://kubb.dev/).
5735
+ * Do not edit manually.
5736
+ */
5737
+
5738
+ /**
5739
+ * @description Organizations visible to the caller\'s credential.
5740
+ * @type object
5741
+ */
5742
+ type ListOrganizationsStatus200 = ListOrganizationsResponse;
5743
+
5744
+ /**
5745
+ * Generated by Kubb (https://kubb.dev/).
5746
+ * Do not edit manually.
5747
+ */
5748
+
5749
+ declare const policyProfileAccessModeEnum: {
5069
5750
  readonly read_only: "read_only";
5070
5751
  readonly read_write: "read_write";
5071
5752
  };
5072
- type PolicyProfileInputAccessModeEnumKey = (typeof policyProfileInputAccessModeEnum)[keyof typeof policyProfileInputAccessModeEnum];
5073
- declare const policyProfileInputWriteModeEnum: {
5753
+ type PolicyProfileAccessModeEnumKey = (typeof policyProfileAccessModeEnum)[keyof typeof policyProfileAccessModeEnum];
5754
+ declare const policyProfileWriteModeEnum: {
5074
5755
  readonly normal: "normal";
5075
5756
  readonly rollback: "rollback";
5076
5757
  readonly sandbox: "sandbox";
5077
5758
  };
5078
- type PolicyProfileInputWriteModeEnumKey = (typeof policyProfileInputWriteModeEnum)[keyof typeof policyProfileInputWriteModeEnum];
5079
- declare const policyProfileInputApprovalModeEnum: {
5759
+ type PolicyProfileWriteModeEnumKey = (typeof policyProfileWriteModeEnum)[keyof typeof policyProfileWriteModeEnum];
5760
+ declare const policyProfileApprovalModeEnum: {
5080
5761
  readonly off: "off";
5081
5762
  readonly writes: "writes";
5082
5763
  readonly ddl: "ddl";
5083
5764
  readonly all: "all";
5084
5765
  };
5085
- type PolicyProfileInputApprovalModeEnumKey = (typeof policyProfileInputApprovalModeEnum)[keyof typeof policyProfileInputApprovalModeEnum];
5086
- declare const policyProfileInputMigrationSafetyEnum: {
5766
+ type PolicyProfileApprovalModeEnumKey = (typeof policyProfileApprovalModeEnum)[keyof typeof policyProfileApprovalModeEnum];
5767
+ declare const policyProfileMigrationSafetyEnum: {
5087
5768
  readonly off: "off";
5088
5769
  readonly warn: "warn";
5089
5770
  readonly block: "block";
5090
5771
  };
5091
- type PolicyProfileInputMigrationSafetyEnumKey = (typeof policyProfileInputMigrationSafetyEnum)[keyof typeof policyProfileInputMigrationSafetyEnum];
5772
+ type PolicyProfileMigrationSafetyEnumKey = (typeof policyProfileMigrationSafetyEnum)[keyof typeof policyProfileMigrationSafetyEnum];
5092
5773
  /**
5093
- * @description Mutable fields of a policy profile (used for create and update).
5774
+ * @description A named bundle of rules enforced on agent credentials in the data plane.
5094
5775
  * @type object
5095
5776
  */
5096
- type PolicyProfileInput = {
5777
+ type PolicyProfile = {
5778
+ /**
5779
+ * @description Unique policy profile identifier (prefixed).
5780
+ * @example pol_01h455vb4pex5vsknk084sn02q
5781
+ * @type string
5782
+ */
5783
+ id: string;
5784
+ /**
5785
+ * @description Owning project ID.
5786
+ * @example prj_01h455vb4pex5vsknk084sn02q
5787
+ * @type string
5788
+ */
5789
+ project_id: string;
5097
5790
  /**
5098
5791
  * @description Human-readable name for the policy profile.
5099
- * @minLength 1
5100
- * @maxLength 128
5792
+ * @example Read-only analytics
5101
5793
  * @type string
5102
5794
  */
5103
5795
  name: string;
5104
5796
  /**
5105
5797
  * @description read_only blocks all data and schema mutations.
5106
- * @default "read_only"
5107
- * @type string | undefined
5798
+ * @type string
5108
5799
  */
5109
- access_mode?: PolicyProfileInputAccessModeEnumKey;
5800
+ access_mode: PolicyProfileAccessModeEnumKey;
5110
5801
  /**
5111
5802
  * @description Per-statement-kind allow/deny lists. Empty allow means all kinds permitted by the access mode.
5112
5803
  * @type object | undefined
5113
5804
  */
5114
5805
  statement_rules?: StatementRules;
5115
5806
  /**
5116
- * @description If non-empty, only these relations are reachable.
5117
- * @type array | undefined
5807
+ * @description If non-empty, only these relations are reachable. Schema-qualified or bare names.
5808
+ * @type array
5118
5809
  */
5119
- table_allowlist?: string[];
5810
+ table_allowlist: string[];
5120
5811
  /**
5121
- * @description Relations explicitly blocked.
5122
- * @type array | undefined
5812
+ * @description Relations explicitly blocked (takes precedence over the allowlist).
5813
+ * @type array
5123
5814
  */
5124
- table_denylist?: string[];
5815
+ table_denylist: string[];
5125
5816
  /**
5126
5817
  * @description Column masking rules applied to query results.
5127
- * @type array | undefined
5818
+ * @type array
5128
5819
  */
5129
- masking_rules?: MaskingRule[];
5820
+ masking_rules: MaskingRule[];
5130
5821
  /**
5131
5822
  * @description Max queries per rolling hour window. 0 means unlimited.
5132
- * @minLength 0
5133
5823
  * @default 0
5134
5824
  * @type integer | undefined
5135
5825
  */
5136
5826
  budget_queries_per_hour?: number;
5137
5827
  /**
5138
5828
  * @description Max queries per day window. 0 means unlimited.
5139
- * @minLength 0
5140
5829
  * @default 0
5141
5830
  * @type integer | undefined
5142
5831
  */
5143
5832
  budget_queries_per_day?: number;
5144
5833
  /**
5145
5834
  * @description Max rows returned per query. 0 means unlimited.
5146
- * @minLength 0
5147
5835
  * @default 0
5148
5836
  * @type integer | undefined
5149
5837
  */
5150
5838
  max_rows?: number;
5151
5839
  /**
5152
5840
  * @description Upstream statement timeout for agent sessions. 0 uses the project default.
5153
- * @minLength 0
5154
5841
  * @default 0
5155
5842
  * @type integer | undefined
5156
5843
  */
@@ -5165,13 +5852,13 @@ type PolicyProfileInput = {
5165
5852
  * @default "normal"
5166
5853
  * @type string | undefined
5167
5854
  */
5168
- write_mode?: PolicyProfileInputWriteModeEnumKey;
5855
+ write_mode?: PolicyProfileWriteModeEnumKey;
5169
5856
  /**
5170
5857
  * @description Which statement classes require human approval before execution.
5171
5858
  * @default "off"
5172
5859
  * @type string | undefined
5173
5860
  */
5174
- approval_mode?: PolicyProfileInputApprovalModeEnumKey;
5861
+ approval_mode?: PolicyProfileApprovalModeEnumKey;
5175
5862
  /**
5176
5863
  * @description Statements touching at most this many rows are auto-approved. 0 means none.
5177
5864
  * @minLength 0
@@ -5191,7 +5878,7 @@ type PolicyProfileInput = {
5191
5878
  * @default "off"
5192
5879
  * @type string | undefined
5193
5880
  */
5194
- migration_safety?: PolicyProfileInputMigrationSafetyEnumKey;
5881
+ migration_safety?: PolicyProfileMigrationSafetyEnumKey;
5195
5882
  /**
5196
5883
  * @description Per-day egress budget in bytes. 0 means unlimited.
5197
5884
  * @minLength 0
@@ -5206,88 +5893,16 @@ type PolicyProfileInput = {
5206
5893
  * @type integer | undefined
5207
5894
  */
5208
5895
  max_affected_rows?: number;
5209
- };
5210
-
5211
- /**
5212
- * Generated by Kubb (https://kubb.dev/).
5213
- * Do not edit manually.
5214
- */
5215
-
5216
- /**
5217
- * @description Unique project identifier (prefixed, e.g. prj_xxx).
5218
- * @pattern ^[a-zA-Z0-9_.-]+$
5219
- * @type string
5220
- */
5221
- type CreatePolicyProfilePathProjectId = string;
5222
- /**
5223
- * @description A named bundle of rules enforced on agent credentials in the data plane.
5224
- * @type object
5225
- */
5226
- type CreatePolicyProfileStatus201 = PolicyProfile;
5227
- /**
5228
- * @description Mutable fields of a policy profile (used for create and update).
5229
- * @type object
5230
- */
5231
- type CreatePolicyProfileData = PolicyProfileInput;
5232
- /**
5233
- * @type object
5234
- */
5235
- type CreatePolicyProfileRequestConfig = {
5236
- data?: CreatePolicyProfileData;
5237
- /**
5238
- * @type object
5239
- */
5240
- pathParams: {
5241
- project_id: CreatePolicyProfilePathProjectId;
5242
- };
5243
- queryParams?: never;
5244
- headerParams?: never;
5245
5896
  /**
5897
+ * @description When the policy profile was created.
5246
5898
  * @type string
5247
5899
  */
5248
- url: `/v1/projects/${string}/policies`;
5249
- };
5250
-
5251
- /**
5252
- * Generated by Kubb (https://kubb.dev/).
5253
- * Do not edit manually.
5254
- */
5255
-
5256
- /**
5257
- * @description Unique project identifier (prefixed, e.g. prj_xxx).
5258
- * @pattern ^[a-zA-Z0-9_.-]+$
5259
- * @type string
5260
- */
5261
- type GetPolicyProfilePathProjectId = string;
5262
- /**
5263
- * @description Unique policy profile identifier (prefixed, e.g. pol_xxx).
5264
- * @pattern ^[a-zA-Z0-9_.-]+$
5265
- * @type string
5266
- */
5267
- type GetPolicyProfilePathPolicyId = string;
5268
- /**
5269
- * @description A named bundle of rules enforced on agent credentials in the data plane.
5270
- * @type object
5271
- */
5272
- type GetPolicyProfileStatus200 = PolicyProfile;
5273
- /**
5274
- * @type object
5275
- */
5276
- type GetPolicyProfileRequestConfig = {
5277
- data?: never;
5278
- /**
5279
- * @type object
5280
- */
5281
- pathParams: {
5282
- project_id: GetPolicyProfilePathProjectId;
5283
- policy_id: GetPolicyProfilePathPolicyId;
5284
- };
5285
- queryParams?: never;
5286
- headerParams?: never;
5900
+ created_at: string;
5287
5901
  /**
5902
+ * @description When the policy profile was last updated.
5288
5903
  * @type string
5289
5904
  */
5290
- url: `/v1/projects/${string}/policies/${string}`;
5905
+ updated_at: string;
5291
5906
  };
5292
5907
 
5293
5908
  /**
@@ -5296,45 +5911,20 @@ type GetPolicyProfileRequestConfig = {
5296
5911
  */
5297
5912
 
5298
5913
  /**
5299
- * @description Unique project identifier (prefixed, e.g. prj_xxx).
5300
- * @pattern ^[a-zA-Z0-9_.-]+$
5301
- * @type string
5302
- */
5303
- type UpdatePolicyProfilePathProjectId = string;
5304
- /**
5305
- * @description Unique policy profile identifier (prefixed, e.g. pol_xxx).
5306
- * @pattern ^[a-zA-Z0-9_.-]+$
5307
- * @type string
5308
- */
5309
- type UpdatePolicyProfilePathPolicyId = string;
5310
- /**
5311
- * @description A named bundle of rules enforced on agent credentials in the data plane.
5312
- * @type object
5313
- */
5314
- type UpdatePolicyProfileStatus200 = PolicyProfile;
5315
- /**
5316
- * @description Mutable fields of a policy profile (used for create and update).
5317
- * @type object
5318
- */
5319
- type UpdatePolicyProfileData = PolicyProfileInput;
5320
- /**
5914
+ * @description Cursor-paginated list of policy profiles for a project.
5321
5915
  * @type object
5322
5916
  */
5323
- type UpdatePolicyProfileRequestConfig = {
5324
- data?: UpdatePolicyProfileData;
5917
+ type ListPolicyProfilesResponse = {
5325
5918
  /**
5326
- * @type object
5919
+ * @description Policy profiles on the current page.
5920
+ * @type array
5327
5921
  */
5328
- pathParams: {
5329
- project_id: UpdatePolicyProfilePathProjectId;
5330
- policy_id: UpdatePolicyProfilePathPolicyId;
5331
- };
5332
- queryParams?: never;
5333
- headerParams?: never;
5922
+ policies: PolicyProfile[];
5334
5923
  /**
5335
- * @type string
5924
+ * @description Token for the next page. Empty if no more results.
5925
+ * @type string | undefined
5336
5926
  */
5337
- url: `/v1/projects/${string}/policies/${string}`;
5927
+ next_page_token?: string;
5338
5928
  };
5339
5929
 
5340
5930
  /**
@@ -5347,90 +5937,49 @@ type UpdatePolicyProfileRequestConfig = {
5347
5937
  * @pattern ^[a-zA-Z0-9_.-]+$
5348
5938
  * @type string
5349
5939
  */
5350
- type DeletePolicyProfilePathProjectId = string;
5351
- /**
5352
- * @description Unique policy profile identifier (prefixed, e.g. pol_xxx).
5353
- * @pattern ^[a-zA-Z0-9_.-]+$
5354
- * @type string
5355
- */
5356
- type DeletePolicyProfilePathPolicyId = string;
5357
- /**
5358
- * @type object
5359
- */
5360
- type DeletePolicyProfileRequestConfig = {
5361
- data?: never;
5362
- /**
5363
- * @type object
5364
- */
5365
- pathParams: {
5366
- project_id: DeletePolicyProfilePathProjectId;
5367
- policy_id: DeletePolicyProfilePathPolicyId;
5368
- };
5369
- queryParams?: never;
5370
- headerParams?: never;
5371
- /**
5372
- * @type string
5373
- */
5374
- url: `/v1/projects/${string}/policies/${string}`;
5375
- };
5376
-
5940
+ type ListPolicyProfilesPathProjectId = string;
5377
5941
  /**
5378
- * Generated by Kubb (https://kubb.dev/).
5379
- * Do not edit manually.
5942
+ * @description Maximum number of items to return (1-100, default 20).
5943
+ * @minLength 1
5944
+ * @maxLength 100
5945
+ * @default 20
5946
+ * @type integer | undefined
5380
5947
  */
5381
-
5948
+ type ListPolicyProfilesQueryPageSize = number | undefined;
5382
5949
  /**
5383
- * @description A SQL statement to test plus the policy to test it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
5384
- * @type object
5950
+ * @description Opaque token for cursor-based pagination.
5951
+ * @pattern ^[a-zA-Z0-9_.-]+$
5952
+ * @type string | undefined
5385
5953
  */
5386
- type DryEvalInput = {
5387
- /**
5388
- * @description The single SQL statement to evaluate.
5389
- * @minLength 1
5390
- * @maxLength 100000
5391
- * @example SELECT email FROM users WHERE id = 1
5392
- * @type string
5393
- */
5394
- sql: string;
5395
- /**
5396
- * @description ID of an existing saved policy profile to evaluate against.
5397
- * @example pol_01h455vb4pex5vsknk084sn02q
5398
- * @type string | undefined
5399
- */
5400
- policy_id?: string;
5401
- /**
5402
- * @description Mutable fields of a policy profile (used for create and update).
5403
- * @type object | undefined
5404
- */
5405
- policy?: PolicyProfileInput;
5406
- };
5407
-
5954
+ type ListPolicyProfilesQueryPageToken = string | undefined;
5408
5955
  /**
5409
- * Generated by Kubb (https://kubb.dev/).
5410
- * Do not edit manually.
5411
- */
5412
- declare const dryEvalMaskedColumnKindEnum: {
5413
- readonly redact: "redact";
5414
- readonly null: "null";
5415
- readonly hash: "hash";
5416
- };
5417
- type DryEvalMaskedColumnKindEnumKey = (typeof dryEvalMaskedColumnKindEnum)[keyof typeof dryEvalMaskedColumnKindEnum];
5956
+ * @description Cursor-paginated list of policy profiles for a project.
5957
+ * @type object
5958
+ */
5959
+ type ListPolicyProfilesStatus200 = ListPolicyProfilesResponse;
5418
5960
  /**
5419
- * @description One result column that would be masked, with the mask kind applied.
5420
5961
  * @type object
5421
5962
  */
5422
- type DryEvalMaskedColumn = {
5963
+ type ListPolicyProfilesRequestConfig = {
5964
+ data?: never;
5423
5965
  /**
5424
- * @description The output column name (post-alias) the client would see masked.
5425
- * @example email
5426
- * @type string
5966
+ * @type object
5427
5967
  */
5428
- column: string;
5968
+ pathParams: {
5969
+ project_id: ListPolicyProfilesPathProjectId;
5970
+ };
5971
+ /**
5972
+ * @type object | undefined
5973
+ */
5974
+ queryParams?: {
5975
+ page_size?: ListPolicyProfilesQueryPageSize;
5976
+ page_token?: ListPolicyProfilesQueryPageToken;
5977
+ };
5978
+ headerParams?: never;
5429
5979
  /**
5430
- * @description How the column is masked.
5431
5980
  * @type string
5432
5981
  */
5433
- kind: DryEvalMaskedColumnKindEnumKey;
5982
+ url: `/v1/projects/${string}/policies`;
5434
5983
  };
5435
5984
 
5436
5985
  /**
@@ -5438,60 +5987,39 @@ type DryEvalMaskedColumn = {
5438
5987
  * Do not edit manually.
5439
5988
  */
5440
5989
 
5441
- declare const dryEvalResultVerdictEnum: {
5442
- readonly allow: "allow";
5443
- readonly block: "block";
5444
- readonly mask: "mask";
5445
- readonly "row-filter": "row-filter";
5446
- };
5447
- type DryEvalResultVerdictEnumKey = (typeof dryEvalResultVerdictEnum)[keyof typeof dryEvalResultVerdictEnum];
5448
5990
  /**
5449
- * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
5991
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
5992
+ * @pattern ^[a-zA-Z0-9_.-]+$
5993
+ * @type string
5994
+ */
5995
+ type CreatePolicyProfilePathProjectId = string;
5996
+ /**
5997
+ * @description A named bundle of rules enforced on agent credentials in the data plane.
5450
5998
  * @type object
5451
5999
  */
5452
- type DryEvalResult = {
5453
- /**
5454
- * @description allow — permitted unchanged; block — rejected; mask — permitted but listed result columns are masked; row-filter — permitted but a WHERE predicate is injected (and any listed columns are also masked).
5455
- * @type string
5456
- */
5457
- verdict: DryEvalResultVerdictEnumKey;
6000
+ type CreatePolicyProfileStatus201 = PolicyProfile;
6001
+ /**
6002
+ * @description Mutable fields of a policy profile (used for create and update).
6003
+ * @type object
6004
+ */
6005
+ type CreatePolicyProfileData = PolicyProfileInput;
6006
+ /**
6007
+ * @type object
6008
+ */
6009
+ type CreatePolicyProfileRequestConfig = {
6010
+ data?: CreatePolicyProfileData;
5458
6011
  /**
5459
- * @description Machine-readable decision tag. For a block, the blocking rule (e.g. read_only, table_denied, table_not_allowed, statement_denied, row_filter_unsafe). Otherwise \"ok\".
5460
- * @example ok
5461
- * @type string
6012
+ * @type object
5462
6013
  */
5463
- rule: string;
6014
+ pathParams: {
6015
+ project_id: CreatePolicyProfilePathProjectId;
6016
+ };
6017
+ queryParams?: never;
6018
+ headerParams?: never;
5464
6019
  /**
5465
- * @description Human-readable explanation of the verdict.
5466
6020
  * @type string
5467
6021
  */
5468
- reason: string;
5469
- /**
5470
- * @description What the author could do instead (present on block verdicts).
5471
- * @type string | undefined
5472
- */
5473
- hint?: string;
5474
- /**
5475
- * @description Result columns that would be masked. Present on mask/row-filter verdicts.
5476
- * @type array | undefined
5477
- */
5478
- masked_columns?: DryEvalMaskedColumn[];
5479
- /**
5480
- * @description The row-filter predicate ANDed into the statement\'s WHERE clause.
5481
- * @example tenant_id = current_setting('pgbeam.tenant')
5482
- * @type string | undefined
5483
- */
5484
- row_filter_predicate?: string;
5485
- /**
5486
- * @description The statement as it would be sent upstream after row-filter injection.
5487
- * @type string | undefined
5488
- */
5489
- rewritten_sql?: string;
5490
- /**
5491
- * @description Informational caveats about stateful enforcement a single-statement preview cannot model (per-region budgets, approvals, write-mode routing).
5492
- * @type array | undefined
5493
- */
5494
- notes?: string[];
6022
+ url: `/v1/projects/${string}/policies`;
5495
6023
  };
5496
6024
 
5497
6025
  /**
@@ -5504,34 +6032,36 @@ type DryEvalResult = {
5504
6032
  * @pattern ^[a-zA-Z0-9_.-]+$
5505
6033
  * @type string
5506
6034
  */
5507
- type DryEvalPolicyPathProjectId = string;
6035
+ type GetPolicyProfilePathProjectId = string;
5508
6036
  /**
5509
- * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
5510
- * @type object
6037
+ * @description Unique policy profile identifier (prefixed, e.g. pol_xxx).
6038
+ * @pattern ^[a-zA-Z0-9_.-]+$
6039
+ * @type string
5511
6040
  */
5512
- type DryEvalPolicyStatus200 = DryEvalResult;
6041
+ type GetPolicyProfilePathPolicyId = string;
5513
6042
  /**
5514
- * @description A SQL statement to test plus the policy to test it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
6043
+ * @description A named bundle of rules enforced on agent credentials in the data plane.
5515
6044
  * @type object
5516
6045
  */
5517
- type DryEvalPolicyData = DryEvalInput;
6046
+ type GetPolicyProfileStatus200 = PolicyProfile;
5518
6047
  /**
5519
6048
  * @type object
5520
6049
  */
5521
- type DryEvalPolicyRequestConfig = {
5522
- data?: DryEvalPolicyData;
6050
+ type GetPolicyProfileRequestConfig = {
6051
+ data?: never;
5523
6052
  /**
5524
6053
  * @type object
5525
6054
  */
5526
6055
  pathParams: {
5527
- project_id: DryEvalPolicyPathProjectId;
6056
+ project_id: GetPolicyProfilePathProjectId;
6057
+ policy_id: GetPolicyProfilePathPolicyId;
5528
6058
  };
5529
6059
  queryParams?: never;
5530
6060
  headerParams?: never;
5531
6061
  /**
5532
6062
  * @type string
5533
6063
  */
5534
- url: `/v1/projects/${string}/policy-evaluations`;
6064
+ url: `/v1/projects/${string}/policies/${string}`;
5535
6065
  };
5536
6066
 
5537
6067
  /**
@@ -5540,45 +6070,45 @@ type DryEvalPolicyRequestConfig = {
5540
6070
  */
5541
6071
 
5542
6072
  /**
5543
- * @description A window of recorded agent traffic to replay plus the candidate policy to replay it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
6073
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
6074
+ * @pattern ^[a-zA-Z0-9_.-]+$
6075
+ * @type string
6076
+ */
6077
+ type UpdatePolicyProfilePathProjectId = string;
6078
+ /**
6079
+ * @description Unique policy profile identifier (prefixed, e.g. pol_xxx).
6080
+ * @pattern ^[a-zA-Z0-9_.-]+$
6081
+ * @type string
6082
+ */
6083
+ type UpdatePolicyProfilePathPolicyId = string;
6084
+ /**
6085
+ * @description A named bundle of rules enforced on agent credentials in the data plane.
5544
6086
  * @type object
5545
6087
  */
5546
- type PolicyReplayInput = {
5547
- /**
5548
- * @description ID of an existing saved policy profile to replay against.
5549
- * @example pol_01h455vb4pex5vsknk084sn02q
5550
- * @type string | undefined
5551
- */
5552
- policy_id?: string;
5553
- /**
5554
- * @description Mutable fields of a policy profile (used for create and update).
5555
- * @type object | undefined
5556
- */
5557
- policy?: PolicyProfileInput;
5558
- /**
5559
- * @description Restrict the replay to traffic recorded for one agent credential.
5560
- * @example cred_01h455vb4pex5vsknk084sn02q
5561
- * @type string | undefined
5562
- */
5563
- credential_id?: string;
5564
- /**
5565
- * @description Start of the traffic window (inclusive). Defaults to 7 days before end_ts.
5566
- * @type string | undefined
5567
- */
5568
- start_ts?: string;
6088
+ type UpdatePolicyProfileStatus200 = PolicyProfile;
6089
+ /**
6090
+ * @description Mutable fields of a policy profile (used for create and update).
6091
+ * @type object
6092
+ */
6093
+ type UpdatePolicyProfileData = PolicyProfileInput;
6094
+ /**
6095
+ * @type object
6096
+ */
6097
+ type UpdatePolicyProfileRequestConfig = {
6098
+ data?: UpdatePolicyProfileData;
5569
6099
  /**
5570
- * @description End of the traffic window (exclusive). Defaults to now.
5571
- * @type string | undefined
6100
+ * @type object
5572
6101
  */
5573
- end_ts?: string;
6102
+ pathParams: {
6103
+ project_id: UpdatePolicyProfilePathProjectId;
6104
+ policy_id: UpdatePolicyProfilePathPolicyId;
6105
+ };
6106
+ queryParams?: never;
6107
+ headerParams?: never;
5574
6108
  /**
5575
- * @description Maximum number of distinct queries to replay, newest first. Traffic is deduplicated by normalized query hash before evaluation.
5576
- * @minLength 1
5577
- * @maxLength 500
5578
- * @default 200
5579
- * @type integer | undefined
6109
+ * @type string
5580
6110
  */
5581
- limit?: number;
6111
+ url: `/v1/projects/${string}/policies/${string}`;
5582
6112
  };
5583
6113
 
5584
6114
  /**
@@ -5586,134 +6116,107 @@ type PolicyReplayInput = {
5586
6116
  * Do not edit manually.
5587
6117
  */
5588
6118
 
5589
- declare const policyReplayItemChangeEnum: {
5590
- readonly newly_blocked: "newly_blocked";
5591
- readonly newly_allowed: "newly_allowed";
5592
- readonly still_allowed: "still_allowed";
5593
- readonly still_blocked: "still_blocked";
5594
- };
5595
- type PolicyReplayItemChangeEnumKey = (typeof policyReplayItemChangeEnum)[keyof typeof policyReplayItemChangeEnum];
5596
6119
  /**
5597
- * @description One distinct recorded query and the decision the candidate policy would reach for it.
6120
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
6121
+ * @pattern ^[a-zA-Z0-9_.-]+$
6122
+ * @type string
6123
+ */
6124
+ type DeletePolicyProfilePathProjectId = string;
6125
+ /**
6126
+ * @description Unique policy profile identifier (prefixed, e.g. pol_xxx).
6127
+ * @pattern ^[a-zA-Z0-9_.-]+$
6128
+ * @type string
6129
+ */
6130
+ type DeletePolicyProfilePathPolicyId = string;
6131
+ /**
5598
6132
  * @type object
5599
6133
  */
5600
- type PolicyReplayItem = {
5601
- /**
5602
- * @description Normalized query hash identifying this statement shape.
5603
- * @type string
5604
- */
5605
- query_hash: string;
5606
- /**
5607
- * @description The recorded statement (normalized, literals replaced with $N placeholders), from its most recent occurrence.
5608
- * @type string
5609
- */
5610
- sql: string;
5611
- /**
5612
- * @description Statement kind (select, insert, update, delete, ddl, ...).
5613
- * @type string | undefined
5614
- */
5615
- statement_kind?: string;
5616
- /**
5617
- * @description How many recorded entries share this query shape in the window.
5618
- * @type integer
5619
- */
5620
- occurrences: number;
5621
- /**
5622
- * @description Oldest occurrence in the window.
5623
- * @type string
5624
- */
5625
- first_seen: string;
5626
- /**
5627
- * @description Newest occurrence in the window.
5628
- * @type string
5629
- */
5630
- last_seen: string;
5631
- /**
5632
- * @description The most recent recorded outcome for this query (query, masked, truncated, or blocked).
5633
- * @type string
5634
- */
5635
- recorded_event: string;
5636
- /**
5637
- * @description The decision rule recorded with a blocked outcome.
5638
- * @type string | undefined
5639
- */
5640
- recorded_rule?: string;
6134
+ type DeletePolicyProfileRequestConfig = {
6135
+ data?: never;
5641
6136
  /**
5642
- * @description How the candidate decision compares to the recorded outcome. newly_blocked and newly_allowed are the changes worth reviewing before rollout; still_allowed and still_blocked are unchanged.
5643
- * @type string
6137
+ * @type object
5644
6138
  */
5645
- change: PolicyReplayItemChangeEnumKey;
6139
+ pathParams: {
6140
+ project_id: DeletePolicyProfilePathProjectId;
6141
+ policy_id: DeletePolicyProfilePathPolicyId;
6142
+ };
6143
+ queryParams?: never;
6144
+ headerParams?: never;
5646
6145
  /**
5647
- * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
5648
- * @type object
6146
+ * @type string
5649
6147
  */
5650
- result: DryEvalResult;
6148
+ url: `/v1/projects/${string}/policies/${string}`;
5651
6149
  };
5652
6150
 
5653
6151
  /**
5654
6152
  * Generated by Kubb (https://kubb.dev/).
5655
6153
  * Do not edit manually.
5656
6154
  */
6155
+
5657
6156
  /**
5658
- * @description Aggregate outcome of a policy replay.
6157
+ * @description A SQL statement to test plus the policy to test it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
5659
6158
  * @type object
5660
6159
  */
5661
- type PolicyReplaySummary = {
5662
- /**
5663
- * @description Recorded audit entries covered by the replayed queries.
5664
- * @type integer
5665
- */
5666
- entries_scanned: number;
5667
- /**
5668
- * @description Distinct normalized queries found in the window (capped at limit).
5669
- * @type integer
5670
- */
5671
- distinct_queries: number;
5672
- /**
5673
- * @description Distinct queries actually evaluated against the candidate policy.
5674
- * @type integer
5675
- */
5676
- evaluated: number;
5677
- /**
5678
- * @description Queries the candidate policy would allow unchanged.
5679
- * @type integer
5680
- */
5681
- would_allow: number;
5682
- /**
5683
- * @description Queries the candidate policy would block.
5684
- * @type integer
5685
- */
5686
- would_block: number;
5687
- /**
5688
- * @description Queries the candidate policy would mask result columns on.
5689
- * @type integer
5690
- */
5691
- would_mask: number;
6160
+ type DryEvalInput = {
5692
6161
  /**
5693
- * @description Queries the candidate policy would inject a row filter into.
5694
- * @type integer
6162
+ * @description The single SQL statement to evaluate.
6163
+ * @minLength 1
6164
+ * @maxLength 100000
6165
+ * @example SELECT email FROM users WHERE id = 1
6166
+ * @type string
5695
6167
  */
5696
- would_row_filter: number;
6168
+ sql: string;
5697
6169
  /**
5698
- * @description Queries that executed under the recorded policy but the candidate policy would block.
5699
- * @type integer
6170
+ * @description ID of an existing saved policy profile to evaluate against.
6171
+ * @example pol_01h455vb4pex5vsknk084sn02q
6172
+ * @type string | undefined
5700
6173
  */
5701
- newly_blocked: number;
6174
+ policy_id?: string;
5702
6175
  /**
5703
- * @description Queries that were blocked when recorded but the candidate policy would permit.
5704
- * @type integer
6176
+ * @description Mutable fields of a policy profile (used for create and update).
6177
+ * @type object | undefined
5705
6178
  */
5706
- newly_allowed: number;
6179
+ policy?: PolicyProfileInput;
6180
+ };
6181
+
6182
+ /**
6183
+ * Generated by Kubb (https://kubb.dev/).
6184
+ * Do not edit manually.
6185
+ */
6186
+
6187
+ /**
6188
+ * @description Unique project identifier (prefixed, e.g. prj_xxx).
6189
+ * @pattern ^[a-zA-Z0-9_.-]+$
6190
+ * @type string
6191
+ */
6192
+ type DryEvalPolicyPathProjectId = string;
6193
+ /**
6194
+ * @description The decision the proxy would reach for the supplied statement under the supplied policy. verdict is the headline outcome; the remaining fields detail why.
6195
+ * @type object
6196
+ */
6197
+ type DryEvalPolicyStatus200 = DryEvalResult;
6198
+ /**
6199
+ * @description A SQL statement to test plus the policy to test it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
6200
+ * @type object
6201
+ */
6202
+ type DryEvalPolicyData = DryEvalInput;
6203
+ /**
6204
+ * @type object
6205
+ */
6206
+ type DryEvalPolicyRequestConfig = {
6207
+ data?: DryEvalPolicyData;
5707
6208
  /**
5708
- * @description Distinct queries skipped because the stored statement was truncated at record time and can no longer be parsed faithfully.
5709
- * @type integer
6209
+ * @type object
5710
6210
  */
5711
- skipped_unparseable: number;
6211
+ pathParams: {
6212
+ project_id: DryEvalPolicyPathProjectId;
6213
+ };
6214
+ queryParams?: never;
6215
+ headerParams?: never;
5712
6216
  /**
5713
- * @description True when the window contained more distinct queries than limit; only the newest were replayed.
5714
- * @type boolean
6217
+ * @type string
5715
6218
  */
5716
- truncated: boolean;
6219
+ url: `/v1/projects/${string}/policy-evaluations`;
5717
6220
  };
5718
6221
 
5719
6222
  /**
@@ -5722,20 +6225,45 @@ type PolicyReplaySummary = {
5722
6225
  */
5723
6226
 
5724
6227
  /**
5725
- * @description The outcome of replaying recorded agent traffic against a candidate policy: an aggregate summary plus per-query decisions, changes first.
6228
+ * @description A window of recorded agent traffic to replay plus the candidate policy to replay it against. Supply exactly one of policy_id (an existing saved policy) or policy (an unsaved draft, e.g. the in-progress editor form).
5726
6229
  * @type object
5727
6230
  */
5728
- type PolicyReplayResult = {
6231
+ type PolicyReplayInput = {
5729
6232
  /**
5730
- * @description Aggregate outcome of a policy replay.
5731
- * @type object
6233
+ * @description ID of an existing saved policy profile to replay against.
6234
+ * @example pol_01h455vb4pex5vsknk084sn02q
6235
+ * @type string | undefined
5732
6236
  */
5733
- summary: PolicyReplaySummary;
6237
+ policy_id?: string;
5734
6238
  /**
5735
- * @description Per-query replay decisions, ordered changes first (newly blocked, then newly allowed), then by occurrence count.
5736
- * @type array
6239
+ * @description Mutable fields of a policy profile (used for create and update).
6240
+ * @type object | undefined
5737
6241
  */
5738
- items: PolicyReplayItem[];
6242
+ policy?: PolicyProfileInput;
6243
+ /**
6244
+ * @description Restrict the replay to traffic recorded for one agent credential.
6245
+ * @example cred_01h455vb4pex5vsknk084sn02q
6246
+ * @type string | undefined
6247
+ */
6248
+ credential_id?: string;
6249
+ /**
6250
+ * @description Start of the traffic window (inclusive). Defaults to 7 days before end_ts.
6251
+ * @type string | undefined
6252
+ */
6253
+ start_ts?: string;
6254
+ /**
6255
+ * @description End of the traffic window (exclusive). Defaults to now.
6256
+ * @type string | undefined
6257
+ */
6258
+ end_ts?: string;
6259
+ /**
6260
+ * @description Maximum number of distinct queries to replay, newest first. Traffic is deduplicated by normalized query hash before evaluation.
6261
+ * @minLength 1
6262
+ * @maxLength 500
6263
+ * @default 200
6264
+ * @type integer | undefined
6265
+ */
6266
+ limit?: number;
5739
6267
  };
5740
6268
 
5741
6269
  /**
@@ -8339,6 +8867,10 @@ declare const operationsByTag: {
8339
8867
  readonly method: "PATCH";
8340
8868
  readonly path: "/v1/organizations/{org_id}/onboarding";
8341
8869
  };
8870
+ readonly listOrganizations: {
8871
+ readonly method: "GET";
8872
+ readonly path: "/v1/organizations";
8873
+ };
8342
8874
  };
8343
8875
  readonly agents: {
8344
8876
  readonly listAgentCredentials: {
@@ -8378,6 +8910,40 @@ declare const operationsByTag: {
8378
8910
  readonly path: "/v1/projects/{project_id}/audit-logs/verify";
8379
8911
  };
8380
8912
  };
8913
+ readonly policies: {
8914
+ readonly recommendAgentPolicy: {
8915
+ readonly method: "POST";
8916
+ readonly path: "/v1/projects/{project_id}/agents/{agent_id}/policy-recommendation";
8917
+ };
8918
+ readonly listPolicyProfiles: {
8919
+ readonly method: "GET";
8920
+ readonly path: "/v1/projects/{project_id}/policies";
8921
+ };
8922
+ readonly createPolicyProfile: {
8923
+ readonly method: "POST";
8924
+ readonly path: "/v1/projects/{project_id}/policies";
8925
+ };
8926
+ readonly getPolicyProfile: {
8927
+ readonly method: "GET";
8928
+ readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
8929
+ };
8930
+ readonly updatePolicyProfile: {
8931
+ readonly method: "PUT";
8932
+ readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
8933
+ };
8934
+ readonly deletePolicyProfile: {
8935
+ readonly method: "DELETE";
8936
+ readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
8937
+ };
8938
+ readonly dryEvalPolicy: {
8939
+ readonly method: "POST";
8940
+ readonly path: "/v1/projects/{project_id}/policy-evaluations";
8941
+ };
8942
+ readonly replayPolicy: {
8943
+ readonly method: "POST";
8944
+ readonly path: "/v1/projects/{project_id}/policy-replays";
8945
+ };
8946
+ };
8381
8947
  readonly anomalies: {
8382
8948
  readonly listAnomalyAlerts: {
8383
8949
  readonly method: "GET";
@@ -8568,40 +9134,32 @@ declare const operationsByTag: {
8568
9134
  readonly path: "/v1/organizations/{org_id}/self-host-enrollments/{enrollment_id}/rotate";
8569
9135
  };
8570
9136
  };
8571
- readonly migrations: {
8572
- readonly lintMigration: {
8573
- readonly method: "POST";
8574
- readonly path: "/v1/projects/{project_id}/migrations:lint";
8575
- };
8576
- };
8577
- readonly policies: {
8578
- readonly listPolicyProfiles: {
9137
+ readonly honeytokens: {
9138
+ readonly listHoneytokens: {
8579
9139
  readonly method: "GET";
8580
- readonly path: "/v1/projects/{project_id}/policies";
9140
+ readonly path: "/v1/projects/{project_id}/honeytokens";
8581
9141
  };
8582
- readonly createPolicyProfile: {
9142
+ readonly createHoneytoken: {
8583
9143
  readonly method: "POST";
8584
- readonly path: "/v1/projects/{project_id}/policies";
9144
+ readonly path: "/v1/projects/{project_id}/honeytokens";
8585
9145
  };
8586
- readonly getPolicyProfile: {
9146
+ readonly getHoneytoken: {
8587
9147
  readonly method: "GET";
8588
- readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
9148
+ readonly path: "/v1/projects/{project_id}/honeytokens/{honeytoken_id}";
8589
9149
  };
8590
- readonly updatePolicyProfile: {
9150
+ readonly updateHoneytoken: {
8591
9151
  readonly method: "PUT";
8592
- readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
9152
+ readonly path: "/v1/projects/{project_id}/honeytokens/{honeytoken_id}";
8593
9153
  };
8594
- readonly deletePolicyProfile: {
9154
+ readonly deleteHoneytoken: {
8595
9155
  readonly method: "DELETE";
8596
- readonly path: "/v1/projects/{project_id}/policies/{policy_id}";
8597
- };
8598
- readonly dryEvalPolicy: {
8599
- readonly method: "POST";
8600
- readonly path: "/v1/projects/{project_id}/policy-evaluations";
9156
+ readonly path: "/v1/projects/{project_id}/honeytokens/{honeytoken_id}";
8601
9157
  };
8602
- readonly replayPolicy: {
9158
+ };
9159
+ readonly migrations: {
9160
+ readonly lintMigration: {
8603
9161
  readonly method: "POST";
8604
- readonly path: "/v1/projects/{project_id}/policy-replays";
9162
+ readonly path: "/v1/projects/{project_id}/migrations:lint";
8605
9163
  };
8606
9164
  };
8607
9165
  readonly support: {
@@ -8695,6 +9253,11 @@ declare const operationsByPath: {
8695
9253
  readonly path: "/v1/projects/{project_id}/agents/{agent_id}/rotate";
8696
9254
  readonly operationId: "rotateAgentCredential";
8697
9255
  };
9256
+ readonly "POST /v1/projects/{project_id}/agents/{agent_id}/policy-recommendation": {
9257
+ readonly method: "POST";
9258
+ readonly path: "/v1/projects/{project_id}/agents/{agent_id}/policy-recommendation";
9259
+ readonly operationId: "recommendAgentPolicy";
9260
+ };
8698
9261
  readonly "GET /v1/projects/{project_id}/anomalies": {
8699
9262
  readonly method: "GET";
8700
9263
  readonly path: "/v1/projects/{project_id}/anomalies";
@@ -8845,6 +9408,31 @@ declare const operationsByPath: {
8845
9408
  readonly path: "/v1/health";
8846
9409
  readonly operationId: "getHealth";
8847
9410
  };
9411
+ readonly "GET /v1/projects/{project_id}/honeytokens": {
9412
+ readonly method: "GET";
9413
+ readonly path: "/v1/projects/{project_id}/honeytokens";
9414
+ readonly operationId: "listHoneytokens";
9415
+ };
9416
+ readonly "POST /v1/projects/{project_id}/honeytokens": {
9417
+ readonly method: "POST";
9418
+ readonly path: "/v1/projects/{project_id}/honeytokens";
9419
+ readonly operationId: "createHoneytoken";
9420
+ };
9421
+ readonly "GET /v1/projects/{project_id}/honeytokens/{honeytoken_id}": {
9422
+ readonly method: "GET";
9423
+ readonly path: "/v1/projects/{project_id}/honeytokens/{honeytoken_id}";
9424
+ readonly operationId: "getHoneytoken";
9425
+ };
9426
+ readonly "PUT /v1/projects/{project_id}/honeytokens/{honeytoken_id}": {
9427
+ readonly method: "PUT";
9428
+ readonly path: "/v1/projects/{project_id}/honeytokens/{honeytoken_id}";
9429
+ readonly operationId: "updateHoneytoken";
9430
+ };
9431
+ readonly "DELETE /v1/projects/{project_id}/honeytokens/{honeytoken_id}": {
9432
+ readonly method: "DELETE";
9433
+ readonly path: "/v1/projects/{project_id}/honeytokens/{honeytoken_id}";
9434
+ readonly operationId: "deleteHoneytoken";
9435
+ };
8848
9436
  readonly "GET /v1/projects/{project_id}/insights": {
8849
9437
  readonly method: "GET";
8850
9438
  readonly path: "/v1/projects/{project_id}/insights";
@@ -8865,6 +9453,11 @@ declare const operationsByPath: {
8865
9453
  readonly path: "/v1/organizations/{org_id}/onboarding";
8866
9454
  readonly operationId: "updateOnboardingProgress";
8867
9455
  };
9456
+ readonly "GET /v1/organizations": {
9457
+ readonly method: "GET";
9458
+ readonly path: "/v1/organizations";
9459
+ readonly operationId: "listOrganizations";
9460
+ };
8868
9461
  readonly "GET /v1/projects/{project_id}/policies": {
8869
9462
  readonly method: "GET";
8870
9463
  readonly path: "/v1/projects/{project_id}/policies";
@@ -9062,6 +9655,10 @@ type RevokeAgentCredentialParams = {
9062
9655
  type RotateAgentCredentialParams = {
9063
9656
  pathParams: NonNullable<RotateAgentCredentialRequestConfig["pathParams"]>;
9064
9657
  };
9658
+ type RecommendAgentPolicyParams = {
9659
+ pathParams: NonNullable<RecommendAgentPolicyRequestConfig["pathParams"]>;
9660
+ body: NonNullable<RecommendAgentPolicyRequestConfig["data"]>;
9661
+ };
9065
9662
  type ListAnomalyAlertsParams = {
9066
9663
  pathParams: NonNullable<ListAnomalyAlertsRequestConfig["pathParams"]>;
9067
9664
  queryParams?: NonNullable<ListAnomalyAlertsRequestConfig["queryParams"]>;
@@ -9164,6 +9761,24 @@ type DeleteCustomDomainParams = {
9164
9761
  type VerifyCustomDomainParams = {
9165
9762
  pathParams: NonNullable<VerifyCustomDomainRequestConfig["pathParams"]>;
9166
9763
  };
9764
+ type ListHoneytokensParams = {
9765
+ pathParams: NonNullable<ListHoneytokensRequestConfig["pathParams"]>;
9766
+ queryParams?: NonNullable<ListHoneytokensRequestConfig["queryParams"]>;
9767
+ };
9768
+ type CreateHoneytokenParams = {
9769
+ pathParams: NonNullable<CreateHoneytokenRequestConfig["pathParams"]>;
9770
+ body: NonNullable<CreateHoneytokenRequestConfig["data"]>;
9771
+ };
9772
+ type GetHoneytokenParams = {
9773
+ pathParams: NonNullable<GetHoneytokenRequestConfig["pathParams"]>;
9774
+ };
9775
+ type UpdateHoneytokenParams = {
9776
+ pathParams: NonNullable<UpdateHoneytokenRequestConfig["pathParams"]>;
9777
+ body: NonNullable<UpdateHoneytokenRequestConfig["data"]>;
9778
+ };
9779
+ type DeleteHoneytokenParams = {
9780
+ pathParams: NonNullable<DeleteHoneytokenRequestConfig["pathParams"]>;
9781
+ };
9167
9782
  type GetProjectInsightsParams = {
9168
9783
  pathParams: NonNullable<GetProjectInsightsRequestConfig["pathParams"]>;
9169
9784
  queryParams?: NonNullable<GetProjectInsightsRequestConfig["queryParams"]>;
@@ -9304,6 +9919,7 @@ interface ApiOperations {
9304
9919
  exportAccountData(): Promise<ExportAccountDataStatus200>;
9305
9920
  getOnboardingProgress(params: GetOnboardingProgressParams): Promise<GetOnboardingProgressStatus200>;
9306
9921
  updateOnboardingProgress(params: UpdateOnboardingProgressParams): Promise<UpdateOnboardingProgressStatus200>;
9922
+ listOrganizations(): Promise<ListOrganizationsStatus200>;
9307
9923
  };
9308
9924
  agents: {
9309
9925
  listAgentCredentials(params: ListAgentCredentialsParams): Promise<ListAgentCredentialsStatus200>;
@@ -9316,6 +9932,16 @@ interface ApiOperations {
9316
9932
  exportAuditLogs(params: ExportAuditLogsParams): Promise<ExportAuditLogsStatus200>;
9317
9933
  verifyAuditChain(params: VerifyAuditChainParams): Promise<VerifyAuditChainStatus200>;
9318
9934
  };
9935
+ policies: {
9936
+ recommendAgentPolicy(params: RecommendAgentPolicyParams): Promise<RecommendAgentPolicyStatus200>;
9937
+ listPolicyProfiles(params: ListPolicyProfilesParams): Promise<ListPolicyProfilesStatus200>;
9938
+ createPolicyProfile(params: CreatePolicyProfileParams): Promise<CreatePolicyProfileStatus201>;
9939
+ getPolicyProfile(params: GetPolicyProfileParams): Promise<GetPolicyProfileStatus200>;
9940
+ updatePolicyProfile(params: UpdatePolicyProfileParams): Promise<UpdatePolicyProfileStatus200>;
9941
+ deletePolicyProfile(params: DeletePolicyProfileParams): Promise<void>;
9942
+ dryEvalPolicy(params: DryEvalPolicyParams): Promise<DryEvalPolicyStatus200>;
9943
+ replayPolicy(params: ReplayPolicyParams): Promise<ReplayPolicyStatus200>;
9944
+ };
9319
9945
  anomalies: {
9320
9946
  listAnomalyAlerts(params: ListAnomalyAlertsParams): Promise<ListAnomalyAlertsStatus200>;
9321
9947
  updateAnomalyAlert(params: UpdateAnomalyAlertParams): Promise<UpdateAnomalyAlertStatus200>;
@@ -9374,18 +10000,16 @@ interface ApiOperations {
9374
10000
  revokeSelfHostEnrollment(params: RevokeSelfHostEnrollmentParams): Promise<void>;
9375
10001
  rotateSelfHostEnrollment(params: RotateSelfHostEnrollmentParams): Promise<RotateSelfHostEnrollmentStatus200>;
9376
10002
  };
10003
+ honeytokens: {
10004
+ listHoneytokens(params: ListHoneytokensParams): Promise<ListHoneytokensStatus200>;
10005
+ createHoneytoken(params: CreateHoneytokenParams): Promise<CreateHoneytokenStatus201>;
10006
+ getHoneytoken(params: GetHoneytokenParams): Promise<GetHoneytokenStatus200>;
10007
+ updateHoneytoken(params: UpdateHoneytokenParams): Promise<UpdateHoneytokenStatus200>;
10008
+ deleteHoneytoken(params: DeleteHoneytokenParams): Promise<void>;
10009
+ };
9377
10010
  migrations: {
9378
10011
  lintMigration(params: LintMigrationParams): Promise<LintMigrationStatus200>;
9379
10012
  };
9380
- policies: {
9381
- listPolicyProfiles(params: ListPolicyProfilesParams): Promise<ListPolicyProfilesStatus200>;
9382
- createPolicyProfile(params: CreatePolicyProfileParams): Promise<CreatePolicyProfileStatus201>;
9383
- getPolicyProfile(params: GetPolicyProfileParams): Promise<GetPolicyProfileStatus200>;
9384
- updatePolicyProfile(params: UpdatePolicyProfileParams): Promise<UpdatePolicyProfileStatus200>;
9385
- deletePolicyProfile(params: DeletePolicyProfileParams): Promise<void>;
9386
- dryEvalPolicy(params: DryEvalPolicyParams): Promise<DryEvalPolicyStatus200>;
9387
- replayPolicy(params: ReplayPolicyParams): Promise<ReplayPolicyStatus200>;
9388
- };
9389
10013
  support: {
9390
10014
  listSupportCases(params: ListSupportCasesParams): Promise<ListSupportCasesStatus200>;
9391
10015
  createSupportCase(params: CreateSupportCaseParams): Promise<CreateSupportCaseStatus201>;
@@ -9434,6 +10058,10 @@ interface RequestMap {
9434
10058
  params: RotateAgentCredentialParams;
9435
10059
  response: RotateAgentCredentialStatus200;
9436
10060
  };
10061
+ "POST /v1/projects/{project_id}/agents/{agent_id}/policy-recommendation": {
10062
+ params: RecommendAgentPolicyParams;
10063
+ response: RecommendAgentPolicyStatus200;
10064
+ };
9437
10065
  "GET /v1/projects/{project_id}/anomalies": {
9438
10066
  params: ListAnomalyAlertsParams;
9439
10067
  response: ListAnomalyAlertsStatus200;
@@ -9554,6 +10182,26 @@ interface RequestMap {
9554
10182
  params?: undefined;
9555
10183
  response: GetHealthStatus200;
9556
10184
  };
10185
+ "GET /v1/projects/{project_id}/honeytokens": {
10186
+ params: ListHoneytokensParams;
10187
+ response: ListHoneytokensStatus200;
10188
+ };
10189
+ "POST /v1/projects/{project_id}/honeytokens": {
10190
+ params: CreateHoneytokenParams;
10191
+ response: CreateHoneytokenStatus201;
10192
+ };
10193
+ "GET /v1/projects/{project_id}/honeytokens/{honeytoken_id}": {
10194
+ params: GetHoneytokenParams;
10195
+ response: GetHoneytokenStatus200;
10196
+ };
10197
+ "PUT /v1/projects/{project_id}/honeytokens/{honeytoken_id}": {
10198
+ params: UpdateHoneytokenParams;
10199
+ response: UpdateHoneytokenStatus200;
10200
+ };
10201
+ "DELETE /v1/projects/{project_id}/honeytokens/{honeytoken_id}": {
10202
+ params: DeleteHoneytokenParams;
10203
+ response: void;
10204
+ };
9557
10205
  "GET /v1/projects/{project_id}/insights": {
9558
10206
  params: GetProjectInsightsParams;
9559
10207
  response: GetProjectInsightsStatus200;
@@ -9570,6 +10218,10 @@ interface RequestMap {
9570
10218
  params: UpdateOnboardingProgressParams;
9571
10219
  response: UpdateOnboardingProgressStatus200;
9572
10220
  };
10221
+ "GET /v1/organizations": {
10222
+ params?: undefined;
10223
+ response: ListOrganizationsStatus200;
10224
+ };
9573
10225
  "GET /v1/projects/{project_id}/policies": {
9574
10226
  params: ListPolicyProfilesParams;
9575
10227
  response: ListPolicyProfilesStatus200;