@featureflip/mcp 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/dist/cli.mjs +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/generated/api-types.d.ts +2404 -494
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{org-Fbj4wFOi.js → org-8tn1Su68.js} +388 -142
- package/dist/server.d.ts.map +1 -1
- package/dist/tools/flags.d.ts.map +1 -1
- package/dist/tools/owner.d.ts +10 -0
- package/dist/tools/owner.d.ts.map +1 -0
- package/dist/tools/webhooks.d.ts +4 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/workflows/stale-flags.d.ts.map +1 -1
- package/package.json +19 -7
|
@@ -443,7 +443,8 @@ export interface paths {
|
|
|
443
443
|
* computed from the query result rather than an in-memory count. `type` is parsed
|
|
444
444
|
* leniently — an unrecognized value degrades to "no type filter" (matching
|
|
445
445
|
* Decode's "garbage input degrades gracefully" precedent)
|
|
446
|
-
* rather than a 400, since it's a non-critical list filter, not a mutation.
|
|
446
|
+
* rather than a 400, since it's a non-critical list filter, not a mutation. `owner` filters
|
|
447
|
+
* by owner: an email (an active member, case-insensitive) or `none` for unowned flags.
|
|
447
448
|
*/
|
|
448
449
|
get: {
|
|
449
450
|
parameters: {
|
|
@@ -454,6 +455,7 @@ export interface paths {
|
|
|
454
455
|
archived?: boolean;
|
|
455
456
|
limit?: number;
|
|
456
457
|
cursor?: string;
|
|
458
|
+
owner?: string;
|
|
457
459
|
};
|
|
458
460
|
header?: never;
|
|
459
461
|
path: {
|
|
@@ -980,7 +982,7 @@ export interface paths {
|
|
|
980
982
|
patch?: never;
|
|
981
983
|
trace?: never;
|
|
982
984
|
};
|
|
983
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
985
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/expiry": {
|
|
984
986
|
parameters: {
|
|
985
987
|
query?: never;
|
|
986
988
|
header?: never;
|
|
@@ -988,21 +990,18 @@ export interface paths {
|
|
|
988
990
|
cookie?: never;
|
|
989
991
|
};
|
|
990
992
|
get?: never;
|
|
991
|
-
put?: never;
|
|
992
993
|
/**
|
|
993
|
-
*
|
|
994
|
-
* @description
|
|
994
|
+
* Sets the flag's advisory expiry date.
|
|
995
|
+
* @description Evaluation never changes when it passes — the flag is
|
|
996
|
+
* reported stale so it can be cleaned up. Requires at least Member. `expiresAtUtc` takes a
|
|
997
|
+
* date (`2026-12-01`), which means the end of that day in UTC, the same as picking it in the
|
|
998
|
+
* dashboard, or a full ISO-8601 timestamp, which is stored exactly. It must be in the future
|
|
999
|
+
* (400 `EXPIRY_IN_PAST`), so today's date is accepted, and the flag-expiration feature must
|
|
1000
|
+
* be enabled (400 `FEATURE_NOT_ENABLED`).
|
|
995
1001
|
*/
|
|
996
|
-
|
|
1002
|
+
put: {
|
|
997
1003
|
parameters: {
|
|
998
|
-
query?:
|
|
999
|
-
/**
|
|
1000
|
-
* @description Archive even though live traffic is still evaluating the flag. Without it the request is
|
|
1001
|
-
* refused with `FLAG_RECENTLY_EVALUATED` naming the environments still reading it — which
|
|
1002
|
-
* usually means the removal has merged but not yet deployed.
|
|
1003
|
-
*/
|
|
1004
|
-
force?: boolean;
|
|
1005
|
-
};
|
|
1004
|
+
query?: never;
|
|
1006
1005
|
header?: never;
|
|
1007
1006
|
path: {
|
|
1008
1007
|
org: string;
|
|
@@ -1011,7 +1010,13 @@ export interface paths {
|
|
|
1011
1010
|
};
|
|
1012
1011
|
cookie?: never;
|
|
1013
1012
|
};
|
|
1014
|
-
requestBody?:
|
|
1013
|
+
requestBody?: {
|
|
1014
|
+
content: {
|
|
1015
|
+
"application/json": components["schemas"]["PublicSetFlagExpiryRequest"];
|
|
1016
|
+
"text/json": components["schemas"]["PublicSetFlagExpiryRequest"];
|
|
1017
|
+
"application/*+json": components["schemas"]["PublicSetFlagExpiryRequest"];
|
|
1018
|
+
};
|
|
1019
|
+
};
|
|
1015
1020
|
responses: {
|
|
1016
1021
|
/** @description No Content */
|
|
1017
1022
|
204: {
|
|
@@ -1087,26 +1092,13 @@ export interface paths {
|
|
|
1087
1092
|
};
|
|
1088
1093
|
};
|
|
1089
1094
|
};
|
|
1090
|
-
|
|
1091
|
-
options?: never;
|
|
1092
|
-
head?: never;
|
|
1093
|
-
patch?: never;
|
|
1094
|
-
trace?: never;
|
|
1095
|
-
};
|
|
1096
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/restore": {
|
|
1097
|
-
parameters: {
|
|
1098
|
-
query?: never;
|
|
1099
|
-
header?: never;
|
|
1100
|
-
path?: never;
|
|
1101
|
-
cookie?: never;
|
|
1102
|
-
};
|
|
1103
|
-
get?: never;
|
|
1104
|
-
put?: never;
|
|
1095
|
+
post?: never;
|
|
1105
1096
|
/**
|
|
1106
|
-
*
|
|
1107
|
-
* @description Requires at least Member.
|
|
1097
|
+
* Removes the flag's expiry date.
|
|
1098
|
+
* @description Requires at least Member. Always allowed, even when
|
|
1099
|
+
* the flag-expiration feature is disabled.
|
|
1108
1100
|
*/
|
|
1109
|
-
|
|
1101
|
+
delete: {
|
|
1110
1102
|
parameters: {
|
|
1111
1103
|
query?: never;
|
|
1112
1104
|
header?: never;
|
|
@@ -1181,21 +1173,26 @@ export interface paths {
|
|
|
1181
1173
|
};
|
|
1182
1174
|
};
|
|
1183
1175
|
};
|
|
1184
|
-
delete?: never;
|
|
1185
1176
|
options?: never;
|
|
1186
1177
|
head?: never;
|
|
1187
1178
|
patch?: never;
|
|
1188
1179
|
trace?: never;
|
|
1189
1180
|
};
|
|
1190
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
1181
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/owner": {
|
|
1191
1182
|
parameters: {
|
|
1192
1183
|
query?: never;
|
|
1193
1184
|
header?: never;
|
|
1194
1185
|
path?: never;
|
|
1195
1186
|
cookie?: never;
|
|
1196
1187
|
};
|
|
1197
|
-
|
|
1198
|
-
|
|
1188
|
+
get?: never;
|
|
1189
|
+
/**
|
|
1190
|
+
* Assigns the flag's owner by email.
|
|
1191
|
+
* @description Requires at least Member. The email must belong to an
|
|
1192
|
+
* active member of the organization (400 `OWNER_NOT_MEMBER`) and the flag-ownership feature
|
|
1193
|
+
* must be enabled (400 `FEATURE_NOT_ENABLED`).
|
|
1194
|
+
*/
|
|
1195
|
+
put: {
|
|
1199
1196
|
parameters: {
|
|
1200
1197
|
query?: never;
|
|
1201
1198
|
header?: never;
|
|
@@ -1206,10 +1203,26 @@ export interface paths {
|
|
|
1206
1203
|
};
|
|
1207
1204
|
cookie?: never;
|
|
1208
1205
|
};
|
|
1209
|
-
requestBody?:
|
|
1206
|
+
requestBody?: {
|
|
1207
|
+
content: {
|
|
1208
|
+
"application/json": components["schemas"]["PublicSetFlagOwnerRequest"];
|
|
1209
|
+
"text/json": components["schemas"]["PublicSetFlagOwnerRequest"];
|
|
1210
|
+
"application/*+json": components["schemas"]["PublicSetFlagOwnerRequest"];
|
|
1211
|
+
};
|
|
1212
|
+
};
|
|
1210
1213
|
responses: {
|
|
1211
|
-
/** @description
|
|
1212
|
-
|
|
1214
|
+
/** @description No Content */
|
|
1215
|
+
204: {
|
|
1216
|
+
headers: {
|
|
1217
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1218
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1219
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1220
|
+
[name: string]: unknown;
|
|
1221
|
+
};
|
|
1222
|
+
content?: never;
|
|
1223
|
+
};
|
|
1224
|
+
/** @description Bad Request */
|
|
1225
|
+
400: {
|
|
1213
1226
|
headers: {
|
|
1214
1227
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1215
1228
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1217,7 +1230,7 @@ export interface paths {
|
|
|
1217
1230
|
[name: string]: unknown;
|
|
1218
1231
|
};
|
|
1219
1232
|
content: {
|
|
1220
|
-
"application/json": components["schemas"]["
|
|
1233
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1221
1234
|
};
|
|
1222
1235
|
};
|
|
1223
1236
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1232,6 +1245,18 @@ export interface paths {
|
|
|
1232
1245
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1233
1246
|
};
|
|
1234
1247
|
};
|
|
1248
|
+
/** @description Forbidden */
|
|
1249
|
+
403: {
|
|
1250
|
+
headers: {
|
|
1251
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1252
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1253
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1254
|
+
[name: string]: unknown;
|
|
1255
|
+
};
|
|
1256
|
+
content: {
|
|
1257
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1258
|
+
};
|
|
1259
|
+
};
|
|
1235
1260
|
/** @description Not Found */
|
|
1236
1261
|
404: {
|
|
1237
1262
|
headers: {
|
|
@@ -1260,29 +1285,13 @@ export interface paths {
|
|
|
1260
1285
|
};
|
|
1261
1286
|
};
|
|
1262
1287
|
};
|
|
1263
|
-
put?: never;
|
|
1264
1288
|
post?: never;
|
|
1265
|
-
delete?: never;
|
|
1266
|
-
options?: never;
|
|
1267
|
-
head?: never;
|
|
1268
|
-
patch?: never;
|
|
1269
|
-
trace?: never;
|
|
1270
|
-
};
|
|
1271
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}": {
|
|
1272
|
-
parameters: {
|
|
1273
|
-
query?: never;
|
|
1274
|
-
header?: never;
|
|
1275
|
-
path?: never;
|
|
1276
|
-
cookie?: never;
|
|
1277
|
-
};
|
|
1278
1289
|
/**
|
|
1279
|
-
*
|
|
1280
|
-
* @description
|
|
1281
|
-
*
|
|
1282
|
-
* GetFlagEnvironmentConfigurationsQuery as GetAll and finds the
|
|
1283
|
-
* resolved environment by id.
|
|
1290
|
+
* Leaves the flag unowned.
|
|
1291
|
+
* @description Requires at least Member. Always allowed, even when the
|
|
1292
|
+
* flag-ownership feature is disabled.
|
|
1284
1293
|
*/
|
|
1285
|
-
|
|
1294
|
+
delete: {
|
|
1286
1295
|
parameters: {
|
|
1287
1296
|
query?: never;
|
|
1288
1297
|
header?: never;
|
|
@@ -1290,23 +1299,20 @@ export interface paths {
|
|
|
1290
1299
|
org: string;
|
|
1291
1300
|
project: string;
|
|
1292
1301
|
flag: string;
|
|
1293
|
-
env: string;
|
|
1294
1302
|
};
|
|
1295
1303
|
cookie?: never;
|
|
1296
1304
|
};
|
|
1297
1305
|
requestBody?: never;
|
|
1298
1306
|
responses: {
|
|
1299
|
-
/** @description
|
|
1300
|
-
|
|
1307
|
+
/** @description No Content */
|
|
1308
|
+
204: {
|
|
1301
1309
|
headers: {
|
|
1302
1310
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1303
1311
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1304
1312
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1305
1313
|
[name: string]: unknown;
|
|
1306
1314
|
};
|
|
1307
|
-
content
|
|
1308
|
-
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"];
|
|
1309
|
-
};
|
|
1315
|
+
content?: never;
|
|
1310
1316
|
};
|
|
1311
1317
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1312
1318
|
401: {
|
|
@@ -1320,6 +1326,18 @@ export interface paths {
|
|
|
1320
1326
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1321
1327
|
};
|
|
1322
1328
|
};
|
|
1329
|
+
/** @description Forbidden */
|
|
1330
|
+
403: {
|
|
1331
|
+
headers: {
|
|
1332
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1333
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1334
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1335
|
+
[name: string]: unknown;
|
|
1336
|
+
};
|
|
1337
|
+
content: {
|
|
1338
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1339
|
+
};
|
|
1340
|
+
};
|
|
1323
1341
|
/** @description Not Found */
|
|
1324
1342
|
404: {
|
|
1325
1343
|
headers: {
|
|
@@ -1348,11 +1366,23 @@ export interface paths {
|
|
|
1348
1366
|
};
|
|
1349
1367
|
};
|
|
1350
1368
|
};
|
|
1369
|
+
options?: never;
|
|
1370
|
+
head?: never;
|
|
1371
|
+
patch?: never;
|
|
1372
|
+
trace?: never;
|
|
1373
|
+
};
|
|
1374
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/removal-pr": {
|
|
1375
|
+
parameters: {
|
|
1376
|
+
query?: never;
|
|
1377
|
+
header?: never;
|
|
1378
|
+
path?: never;
|
|
1379
|
+
cookie?: never;
|
|
1380
|
+
};
|
|
1381
|
+
get?: never;
|
|
1351
1382
|
/**
|
|
1352
|
-
*
|
|
1353
|
-
* @description Requires at least Member.
|
|
1354
|
-
*
|
|
1355
|
-
* a non-null list replaces them wholesale.
|
|
1383
|
+
* Records the pull request that removes this flag from code, so the flag's owner is sent a link to it.
|
|
1384
|
+
* @description Called by the Featureflip Flag Cleanup Action. Requires at least Member. The URL
|
|
1385
|
+
* must be an https pull request URL (400 `validation_failed`).
|
|
1356
1386
|
*/
|
|
1357
1387
|
put: {
|
|
1358
1388
|
parameters: {
|
|
@@ -1362,15 +1392,14 @@ export interface paths {
|
|
|
1362
1392
|
org: string;
|
|
1363
1393
|
project: string;
|
|
1364
1394
|
flag: string;
|
|
1365
|
-
env: string;
|
|
1366
1395
|
};
|
|
1367
1396
|
cookie?: never;
|
|
1368
1397
|
};
|
|
1369
1398
|
requestBody?: {
|
|
1370
1399
|
content: {
|
|
1371
|
-
"application/json": components["schemas"]["
|
|
1372
|
-
"text/json": components["schemas"]["
|
|
1373
|
-
"application/*+json": components["schemas"]["
|
|
1400
|
+
"application/json": components["schemas"]["PublicSetFlagRemovalPrRequest"];
|
|
1401
|
+
"text/json": components["schemas"]["PublicSetFlagRemovalPrRequest"];
|
|
1402
|
+
"application/*+json": components["schemas"]["PublicSetFlagRemovalPrRequest"];
|
|
1374
1403
|
};
|
|
1375
1404
|
};
|
|
1376
1405
|
responses: {
|
|
@@ -1449,26 +1478,11 @@ export interface paths {
|
|
|
1449
1478
|
};
|
|
1450
1479
|
};
|
|
1451
1480
|
post?: never;
|
|
1452
|
-
delete?: never;
|
|
1453
|
-
options?: never;
|
|
1454
|
-
head?: never;
|
|
1455
|
-
patch?: never;
|
|
1456
|
-
trace?: never;
|
|
1457
|
-
};
|
|
1458
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/toggle": {
|
|
1459
|
-
parameters: {
|
|
1460
|
-
query?: never;
|
|
1461
|
-
header?: never;
|
|
1462
|
-
path?: never;
|
|
1463
|
-
cookie?: never;
|
|
1464
|
-
};
|
|
1465
|
-
get?: never;
|
|
1466
|
-
put?: never;
|
|
1467
1481
|
/**
|
|
1468
|
-
*
|
|
1482
|
+
* Forgets the flag's removal pull request.
|
|
1469
1483
|
* @description Requires at least Member.
|
|
1470
1484
|
*/
|
|
1471
|
-
|
|
1485
|
+
delete: {
|
|
1472
1486
|
parameters: {
|
|
1473
1487
|
query?: never;
|
|
1474
1488
|
header?: never;
|
|
@@ -1476,17 +1490,10 @@ export interface paths {
|
|
|
1476
1490
|
org: string;
|
|
1477
1491
|
project: string;
|
|
1478
1492
|
flag: string;
|
|
1479
|
-
env: string;
|
|
1480
1493
|
};
|
|
1481
1494
|
cookie?: never;
|
|
1482
1495
|
};
|
|
1483
|
-
requestBody?:
|
|
1484
|
-
content: {
|
|
1485
|
-
"application/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1486
|
-
"text/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1487
|
-
"application/*+json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1488
|
-
};
|
|
1489
|
-
};
|
|
1496
|
+
requestBody?: never;
|
|
1490
1497
|
responses: {
|
|
1491
1498
|
/** @description No Content */
|
|
1492
1499
|
204: {
|
|
@@ -1498,18 +1505,6 @@ export interface paths {
|
|
|
1498
1505
|
};
|
|
1499
1506
|
content?: never;
|
|
1500
1507
|
};
|
|
1501
|
-
/** @description Bad Request */
|
|
1502
|
-
400: {
|
|
1503
|
-
headers: {
|
|
1504
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1505
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1506
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1507
|
-
[name: string]: unknown;
|
|
1508
|
-
};
|
|
1509
|
-
content: {
|
|
1510
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1511
|
-
};
|
|
1512
|
-
};
|
|
1513
1508
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1514
1509
|
401: {
|
|
1515
1510
|
headers: {
|
|
@@ -1562,42 +1557,56 @@ export interface paths {
|
|
|
1562
1557
|
};
|
|
1563
1558
|
};
|
|
1564
1559
|
};
|
|
1565
|
-
delete?: never;
|
|
1566
1560
|
options?: never;
|
|
1567
1561
|
head?: never;
|
|
1568
1562
|
patch?: never;
|
|
1569
1563
|
trace?: never;
|
|
1570
1564
|
};
|
|
1571
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
1565
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/archive": {
|
|
1572
1566
|
parameters: {
|
|
1573
1567
|
query?: never;
|
|
1574
1568
|
header?: never;
|
|
1575
1569
|
path?: never;
|
|
1576
1570
|
cookie?: never;
|
|
1577
1571
|
};
|
|
1572
|
+
get?: never;
|
|
1573
|
+
put?: never;
|
|
1578
1574
|
/**
|
|
1579
|
-
*
|
|
1580
|
-
* @description
|
|
1581
|
-
* no `FlagEnvironmentConfiguration` exists yet for this flag/environment pair — treated
|
|
1582
|
-
* as 404 here (rather than an empty PublicTargetingConfigResponse) for
|
|
1583
|
-
* consistency with every other resolved-resource 404 on this surface.
|
|
1575
|
+
* Archives a flag.
|
|
1576
|
+
* @description Requires at least Member.
|
|
1584
1577
|
*/
|
|
1585
|
-
|
|
1578
|
+
post: {
|
|
1586
1579
|
parameters: {
|
|
1587
|
-
query?:
|
|
1580
|
+
query?: {
|
|
1581
|
+
/**
|
|
1582
|
+
* @description Archive even though live traffic is still evaluating the flag. Without it the request is
|
|
1583
|
+
* refused with `FLAG_RECENTLY_EVALUATED` naming the environments still reading it — which
|
|
1584
|
+
* usually means the removal has merged but not yet deployed.
|
|
1585
|
+
*/
|
|
1586
|
+
force?: boolean;
|
|
1587
|
+
};
|
|
1588
1588
|
header?: never;
|
|
1589
1589
|
path: {
|
|
1590
1590
|
org: string;
|
|
1591
1591
|
project: string;
|
|
1592
1592
|
flag: string;
|
|
1593
|
-
env: string;
|
|
1594
1593
|
};
|
|
1595
1594
|
cookie?: never;
|
|
1596
1595
|
};
|
|
1597
1596
|
requestBody?: never;
|
|
1598
1597
|
responses: {
|
|
1599
|
-
/** @description
|
|
1600
|
-
|
|
1598
|
+
/** @description No Content */
|
|
1599
|
+
204: {
|
|
1600
|
+
headers: {
|
|
1601
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1602
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1603
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1604
|
+
[name: string]: unknown;
|
|
1605
|
+
};
|
|
1606
|
+
content?: never;
|
|
1607
|
+
};
|
|
1608
|
+
/** @description Bad Request */
|
|
1609
|
+
400: {
|
|
1601
1610
|
headers: {
|
|
1602
1611
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1603
1612
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1605,7 +1614,7 @@ export interface paths {
|
|
|
1605
1614
|
[name: string]: unknown;
|
|
1606
1615
|
};
|
|
1607
1616
|
content: {
|
|
1608
|
-
"application/json": components["schemas"]["
|
|
1617
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1609
1618
|
};
|
|
1610
1619
|
};
|
|
1611
1620
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1620,6 +1629,18 @@ export interface paths {
|
|
|
1620
1629
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1621
1630
|
};
|
|
1622
1631
|
};
|
|
1632
|
+
/** @description Forbidden */
|
|
1633
|
+
403: {
|
|
1634
|
+
headers: {
|
|
1635
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1636
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1637
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1638
|
+
[name: string]: unknown;
|
|
1639
|
+
};
|
|
1640
|
+
content: {
|
|
1641
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1642
|
+
};
|
|
1643
|
+
};
|
|
1623
1644
|
/** @description Not Found */
|
|
1624
1645
|
404: {
|
|
1625
1646
|
headers: {
|
|
@@ -1648,13 +1669,26 @@ export interface paths {
|
|
|
1648
1669
|
};
|
|
1649
1670
|
};
|
|
1650
1671
|
};
|
|
1672
|
+
delete?: never;
|
|
1673
|
+
options?: never;
|
|
1674
|
+
head?: never;
|
|
1675
|
+
patch?: never;
|
|
1676
|
+
trace?: never;
|
|
1677
|
+
};
|
|
1678
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/restore": {
|
|
1679
|
+
parameters: {
|
|
1680
|
+
query?: never;
|
|
1681
|
+
header?: never;
|
|
1682
|
+
path?: never;
|
|
1683
|
+
cookie?: never;
|
|
1684
|
+
};
|
|
1685
|
+
get?: never;
|
|
1686
|
+
put?: never;
|
|
1651
1687
|
/**
|
|
1652
|
-
*
|
|
1653
|
-
* @description
|
|
1654
|
-
* array order (= evaluation order); an empty or omitted list clears all rules. Segment-scoped
|
|
1655
|
-
* rules are supported. The replace is atomic. Requires at least Member.
|
|
1688
|
+
* Restores a previously archived flag.
|
|
1689
|
+
* @description Requires at least Member.
|
|
1656
1690
|
*/
|
|
1657
|
-
|
|
1691
|
+
post: {
|
|
1658
1692
|
parameters: {
|
|
1659
1693
|
query?: never;
|
|
1660
1694
|
header?: never;
|
|
@@ -1662,17 +1696,10 @@ export interface paths {
|
|
|
1662
1696
|
org: string;
|
|
1663
1697
|
project: string;
|
|
1664
1698
|
flag: string;
|
|
1665
|
-
env: string;
|
|
1666
1699
|
};
|
|
1667
1700
|
cookie?: never;
|
|
1668
1701
|
};
|
|
1669
|
-
requestBody?:
|
|
1670
|
-
content: {
|
|
1671
|
-
"application/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1672
|
-
"text/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1673
|
-
"application/*+json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1674
|
-
};
|
|
1675
|
-
};
|
|
1702
|
+
requestBody?: never;
|
|
1676
1703
|
responses: {
|
|
1677
1704
|
/** @description No Content */
|
|
1678
1705
|
204: {
|
|
@@ -1684,18 +1711,6 @@ export interface paths {
|
|
|
1684
1711
|
};
|
|
1685
1712
|
content?: never;
|
|
1686
1713
|
};
|
|
1687
|
-
/** @description Bad Request */
|
|
1688
|
-
400: {
|
|
1689
|
-
headers: {
|
|
1690
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1691
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1692
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1693
|
-
[name: string]: unknown;
|
|
1694
|
-
};
|
|
1695
|
-
content: {
|
|
1696
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1697
|
-
};
|
|
1698
|
-
};
|
|
1699
1714
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1700
1715
|
401: {
|
|
1701
1716
|
headers: {
|
|
@@ -1748,30 +1763,21 @@ export interface paths {
|
|
|
1748
1763
|
};
|
|
1749
1764
|
};
|
|
1750
1765
|
};
|
|
1751
|
-
post?: never;
|
|
1752
1766
|
delete?: never;
|
|
1753
1767
|
options?: never;
|
|
1754
1768
|
head?: never;
|
|
1755
1769
|
patch?: never;
|
|
1756
1770
|
trace?: never;
|
|
1757
1771
|
};
|
|
1758
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments
|
|
1772
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments": {
|
|
1759
1773
|
parameters: {
|
|
1760
1774
|
query?: never;
|
|
1761
1775
|
header?: never;
|
|
1762
1776
|
path?: never;
|
|
1763
1777
|
cookie?: never;
|
|
1764
1778
|
};
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
/**
|
|
1768
|
-
* Creates a targeting rule on the resolved flag in the resolved environment.
|
|
1769
|
-
* @description Requires at
|
|
1770
|
-
* least Member. Re-fetches via GetTargetingRuleQuery using the id returned
|
|
1771
|
-
* from CreateTargetingRuleCommand so the response reflects exactly what was
|
|
1772
|
-
* persisted (e.g. server-assigned priority and condition/group ids).
|
|
1773
|
-
*/
|
|
1774
|
-
post: {
|
|
1779
|
+
/** Gets the resolved flag's config in every environment of the resolved project. */
|
|
1780
|
+
get: {
|
|
1775
1781
|
parameters: {
|
|
1776
1782
|
query?: never;
|
|
1777
1783
|
header?: never;
|
|
@@ -1779,32 +1785,13 @@ export interface paths {
|
|
|
1779
1785
|
org: string;
|
|
1780
1786
|
project: string;
|
|
1781
1787
|
flag: string;
|
|
1782
|
-
env: string;
|
|
1783
1788
|
};
|
|
1784
1789
|
cookie?: never;
|
|
1785
1790
|
};
|
|
1786
|
-
requestBody?:
|
|
1787
|
-
content: {
|
|
1788
|
-
"application/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
1789
|
-
"text/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
1790
|
-
"application/*+json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
1791
|
-
};
|
|
1792
|
-
};
|
|
1791
|
+
requestBody?: never;
|
|
1793
1792
|
responses: {
|
|
1794
|
-
/** @description
|
|
1795
|
-
|
|
1796
|
-
headers: {
|
|
1797
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1798
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1799
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1800
|
-
[name: string]: unknown;
|
|
1801
|
-
};
|
|
1802
|
-
content: {
|
|
1803
|
-
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
1804
|
-
};
|
|
1805
|
-
};
|
|
1806
|
-
/** @description Bad Request */
|
|
1807
|
-
400: {
|
|
1793
|
+
/** @description OK */
|
|
1794
|
+
200: {
|
|
1808
1795
|
headers: {
|
|
1809
1796
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1810
1797
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1812,7 +1799,7 @@ export interface paths {
|
|
|
1812
1799
|
[name: string]: unknown;
|
|
1813
1800
|
};
|
|
1814
1801
|
content: {
|
|
1815
|
-
"application/json": components["schemas"]["
|
|
1802
|
+
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"][];
|
|
1816
1803
|
};
|
|
1817
1804
|
};
|
|
1818
1805
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1827,18 +1814,6 @@ export interface paths {
|
|
|
1827
1814
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1828
1815
|
};
|
|
1829
1816
|
};
|
|
1830
|
-
/** @description Forbidden */
|
|
1831
|
-
403: {
|
|
1832
|
-
headers: {
|
|
1833
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1834
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1835
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1836
|
-
[name: string]: unknown;
|
|
1837
|
-
};
|
|
1838
|
-
content: {
|
|
1839
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1840
|
-
};
|
|
1841
|
-
};
|
|
1842
1817
|
/** @description Not Found */
|
|
1843
1818
|
404: {
|
|
1844
1819
|
headers: {
|
|
@@ -1867,20 +1842,28 @@ export interface paths {
|
|
|
1867
1842
|
};
|
|
1868
1843
|
};
|
|
1869
1844
|
};
|
|
1845
|
+
put?: never;
|
|
1846
|
+
post?: never;
|
|
1870
1847
|
delete?: never;
|
|
1871
1848
|
options?: never;
|
|
1872
1849
|
head?: never;
|
|
1873
1850
|
patch?: never;
|
|
1874
1851
|
trace?: never;
|
|
1875
1852
|
};
|
|
1876
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}
|
|
1853
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}": {
|
|
1877
1854
|
parameters: {
|
|
1878
1855
|
query?: never;
|
|
1879
1856
|
header?: never;
|
|
1880
1857
|
path?: never;
|
|
1881
1858
|
cookie?: never;
|
|
1882
1859
|
};
|
|
1883
|
-
/**
|
|
1860
|
+
/**
|
|
1861
|
+
* Gets the resolved flag's config in a single resolved environment.
|
|
1862
|
+
* @description There is no
|
|
1863
|
+
* single-environment query on the Application side, so this dispatches the same
|
|
1864
|
+
* GetFlagEnvironmentConfigurationsQuery as GetAll and finds the
|
|
1865
|
+
* resolved environment by id.
|
|
1866
|
+
*/
|
|
1884
1867
|
get: {
|
|
1885
1868
|
parameters: {
|
|
1886
1869
|
query?: never;
|
|
@@ -1890,7 +1873,6 @@ export interface paths {
|
|
|
1890
1873
|
project: string;
|
|
1891
1874
|
flag: string;
|
|
1892
1875
|
env: string;
|
|
1893
|
-
ruleId: string;
|
|
1894
1876
|
};
|
|
1895
1877
|
cookie?: never;
|
|
1896
1878
|
};
|
|
@@ -1905,7 +1887,7 @@ export interface paths {
|
|
|
1905
1887
|
[name: string]: unknown;
|
|
1906
1888
|
};
|
|
1907
1889
|
content: {
|
|
1908
|
-
"application/json": components["schemas"]["
|
|
1890
|
+
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"];
|
|
1909
1891
|
};
|
|
1910
1892
|
};
|
|
1911
1893
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1949,8 +1931,10 @@ export interface paths {
|
|
|
1949
1931
|
};
|
|
1950
1932
|
};
|
|
1951
1933
|
/**
|
|
1952
|
-
* Updates
|
|
1953
|
-
* @description Requires at least Member.
|
|
1934
|
+
* Updates the resolved flag's default variation, strategy, and (optionally) prerequisites in a resolved environment.
|
|
1935
|
+
* @description Requires at least Member. A null
|
|
1936
|
+
* Prerequisites leaves prerequisites untouched;
|
|
1937
|
+
* a non-null list replaces them wholesale.
|
|
1954
1938
|
*/
|
|
1955
1939
|
put: {
|
|
1956
1940
|
parameters: {
|
|
@@ -1961,15 +1945,14 @@ export interface paths {
|
|
|
1961
1945
|
project: string;
|
|
1962
1946
|
flag: string;
|
|
1963
1947
|
env: string;
|
|
1964
|
-
ruleId: string;
|
|
1965
1948
|
};
|
|
1966
1949
|
cookie?: never;
|
|
1967
1950
|
};
|
|
1968
1951
|
requestBody?: {
|
|
1969
1952
|
content: {
|
|
1970
|
-
"application/json": components["schemas"]["
|
|
1971
|
-
"text/json": components["schemas"]["
|
|
1972
|
-
"application/*+json": components["schemas"]["
|
|
1953
|
+
"application/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1954
|
+
"text/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1955
|
+
"application/*+json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1973
1956
|
};
|
|
1974
1957
|
};
|
|
1975
1958
|
responses: {
|
|
@@ -2048,11 +2031,26 @@ export interface paths {
|
|
|
2048
2031
|
};
|
|
2049
2032
|
};
|
|
2050
2033
|
post?: never;
|
|
2034
|
+
delete?: never;
|
|
2035
|
+
options?: never;
|
|
2036
|
+
head?: never;
|
|
2037
|
+
patch?: never;
|
|
2038
|
+
trace?: never;
|
|
2039
|
+
};
|
|
2040
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/toggle": {
|
|
2041
|
+
parameters: {
|
|
2042
|
+
query?: never;
|
|
2043
|
+
header?: never;
|
|
2044
|
+
path?: never;
|
|
2045
|
+
cookie?: never;
|
|
2046
|
+
};
|
|
2047
|
+
get?: never;
|
|
2048
|
+
put?: never;
|
|
2051
2049
|
/**
|
|
2052
|
-
*
|
|
2050
|
+
* Enables or disables the resolved flag in a resolved environment.
|
|
2053
2051
|
* @description Requires at least Member.
|
|
2054
2052
|
*/
|
|
2055
|
-
|
|
2053
|
+
post: {
|
|
2056
2054
|
parameters: {
|
|
2057
2055
|
query?: never;
|
|
2058
2056
|
header?: never;
|
|
@@ -2061,11 +2059,16 @@ export interface paths {
|
|
|
2061
2059
|
project: string;
|
|
2062
2060
|
flag: string;
|
|
2063
2061
|
env: string;
|
|
2064
|
-
ruleId: string;
|
|
2065
2062
|
};
|
|
2066
2063
|
cookie?: never;
|
|
2067
2064
|
};
|
|
2068
|
-
requestBody?:
|
|
2065
|
+
requestBody?: {
|
|
2066
|
+
content: {
|
|
2067
|
+
"application/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
2068
|
+
"text/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
2069
|
+
"application/*+json": components["schemas"]["PublicToggleFlagRequest"];
|
|
2070
|
+
};
|
|
2071
|
+
};
|
|
2069
2072
|
responses: {
|
|
2070
2073
|
/** @description No Content */
|
|
2071
2074
|
204: {
|
|
@@ -2077,6 +2080,18 @@ export interface paths {
|
|
|
2077
2080
|
};
|
|
2078
2081
|
content?: never;
|
|
2079
2082
|
};
|
|
2083
|
+
/** @description Bad Request */
|
|
2084
|
+
400: {
|
|
2085
|
+
headers: {
|
|
2086
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2087
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2088
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2089
|
+
[name: string]: unknown;
|
|
2090
|
+
};
|
|
2091
|
+
content: {
|
|
2092
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2093
|
+
};
|
|
2094
|
+
};
|
|
2080
2095
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2081
2096
|
401: {
|
|
2082
2097
|
headers: {
|
|
@@ -2129,25 +2144,27 @@ export interface paths {
|
|
|
2129
2144
|
};
|
|
2130
2145
|
};
|
|
2131
2146
|
};
|
|
2147
|
+
delete?: never;
|
|
2132
2148
|
options?: never;
|
|
2133
2149
|
head?: never;
|
|
2134
2150
|
patch?: never;
|
|
2135
2151
|
trace?: never;
|
|
2136
2152
|
};
|
|
2137
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/
|
|
2153
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/targeting": {
|
|
2138
2154
|
parameters: {
|
|
2139
2155
|
query?: never;
|
|
2140
2156
|
header?: never;
|
|
2141
2157
|
path?: never;
|
|
2142
2158
|
cookie?: never;
|
|
2143
2159
|
};
|
|
2144
|
-
get?: never;
|
|
2145
2160
|
/**
|
|
2146
|
-
*
|
|
2147
|
-
* @description
|
|
2148
|
-
*
|
|
2161
|
+
* Gets the resolved flag's full targeting configuration (enabled flag + ordered rules) in the resolved environment.
|
|
2162
|
+
* @description GetTargetingConfigurationQuery returns null when
|
|
2163
|
+
* no `FlagEnvironmentConfiguration` exists yet for this flag/environment pair — treated
|
|
2164
|
+
* as 404 here (rather than an empty PublicTargetingConfigResponse) for
|
|
2165
|
+
* consistency with every other resolved-resource 404 on this surface.
|
|
2149
2166
|
*/
|
|
2150
|
-
|
|
2167
|
+
get: {
|
|
2151
2168
|
parameters: {
|
|
2152
2169
|
query?: never;
|
|
2153
2170
|
header?: never;
|
|
@@ -2159,26 +2176,10 @@ export interface paths {
|
|
|
2159
2176
|
};
|
|
2160
2177
|
cookie?: never;
|
|
2161
2178
|
};
|
|
2162
|
-
requestBody?:
|
|
2163
|
-
content: {
|
|
2164
|
-
"application/json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2165
|
-
"text/json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2166
|
-
"application/*+json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2167
|
-
};
|
|
2168
|
-
};
|
|
2179
|
+
requestBody?: never;
|
|
2169
2180
|
responses: {
|
|
2170
|
-
/** @description
|
|
2171
|
-
|
|
2172
|
-
headers: {
|
|
2173
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2174
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2175
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2176
|
-
[name: string]: unknown;
|
|
2177
|
-
};
|
|
2178
|
-
content?: never;
|
|
2179
|
-
};
|
|
2180
|
-
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2181
|
-
401: {
|
|
2181
|
+
/** @description OK */
|
|
2182
|
+
200: {
|
|
2182
2183
|
headers: {
|
|
2183
2184
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2184
2185
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -2186,11 +2187,11 @@ export interface paths {
|
|
|
2186
2187
|
[name: string]: unknown;
|
|
2187
2188
|
};
|
|
2188
2189
|
content: {
|
|
2189
|
-
"application/json": components["schemas"]["
|
|
2190
|
+
"application/json": components["schemas"]["PublicTargetingConfigResponse"];
|
|
2190
2191
|
};
|
|
2191
2192
|
};
|
|
2192
|
-
/** @description
|
|
2193
|
-
|
|
2193
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2194
|
+
401: {
|
|
2194
2195
|
headers: {
|
|
2195
2196
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2196
2197
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -2229,29 +2230,13 @@ export interface paths {
|
|
|
2229
2230
|
};
|
|
2230
2231
|
};
|
|
2231
2232
|
};
|
|
2232
|
-
post?: never;
|
|
2233
|
-
delete?: never;
|
|
2234
|
-
options?: never;
|
|
2235
|
-
head?: never;
|
|
2236
|
-
patch?: never;
|
|
2237
|
-
trace?: never;
|
|
2238
|
-
};
|
|
2239
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/variations": {
|
|
2240
|
-
parameters: {
|
|
2241
|
-
query?: never;
|
|
2242
|
-
header?: never;
|
|
2243
|
-
path?: never;
|
|
2244
|
-
cookie?: never;
|
|
2245
|
-
};
|
|
2246
|
-
get?: never;
|
|
2247
|
-
put?: never;
|
|
2248
2233
|
/**
|
|
2249
|
-
*
|
|
2250
|
-
* @description
|
|
2251
|
-
*
|
|
2252
|
-
*
|
|
2234
|
+
* Declaratively replaces the resolved flag's entire targeting rule set in the resolved environment.
|
|
2235
|
+
* @description The ordered Rules list is applied in
|
|
2236
|
+
* array order (= evaluation order); an empty or omitted list clears all rules. Segment-scoped
|
|
2237
|
+
* rules are supported. The replace is atomic. Requires at least Member.
|
|
2253
2238
|
*/
|
|
2254
|
-
|
|
2239
|
+
put: {
|
|
2255
2240
|
parameters: {
|
|
2256
2241
|
query?: never;
|
|
2257
2242
|
header?: never;
|
|
@@ -2259,28 +2244,27 @@ export interface paths {
|
|
|
2259
2244
|
org: string;
|
|
2260
2245
|
project: string;
|
|
2261
2246
|
flag: string;
|
|
2247
|
+
env: string;
|
|
2262
2248
|
};
|
|
2263
2249
|
cookie?: never;
|
|
2264
2250
|
};
|
|
2265
2251
|
requestBody?: {
|
|
2266
2252
|
content: {
|
|
2267
|
-
"application/json": components["schemas"]["
|
|
2268
|
-
"text/json": components["schemas"]["
|
|
2269
|
-
"application/*+json": components["schemas"]["
|
|
2253
|
+
"application/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2254
|
+
"text/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2255
|
+
"application/*+json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2270
2256
|
};
|
|
2271
2257
|
};
|
|
2272
2258
|
responses: {
|
|
2273
|
-
/** @description
|
|
2274
|
-
|
|
2259
|
+
/** @description No Content */
|
|
2260
|
+
204: {
|
|
2275
2261
|
headers: {
|
|
2276
2262
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2277
2263
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2278
2264
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2279
2265
|
[name: string]: unknown;
|
|
2280
2266
|
};
|
|
2281
|
-
content
|
|
2282
|
-
"application/json": components["schemas"]["PublicVariationResponse"];
|
|
2283
|
-
};
|
|
2267
|
+
content?: never;
|
|
2284
2268
|
};
|
|
2285
2269
|
/** @description Bad Request */
|
|
2286
2270
|
400: {
|
|
@@ -2346,13 +2330,14 @@ export interface paths {
|
|
|
2346
2330
|
};
|
|
2347
2331
|
};
|
|
2348
2332
|
};
|
|
2333
|
+
post?: never;
|
|
2349
2334
|
delete?: never;
|
|
2350
2335
|
options?: never;
|
|
2351
2336
|
head?: never;
|
|
2352
2337
|
patch?: never;
|
|
2353
2338
|
trace?: never;
|
|
2354
2339
|
};
|
|
2355
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
2340
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules": {
|
|
2356
2341
|
parameters: {
|
|
2357
2342
|
query?: never;
|
|
2358
2343
|
header?: never;
|
|
@@ -2360,11 +2345,15 @@ export interface paths {
|
|
|
2360
2345
|
cookie?: never;
|
|
2361
2346
|
};
|
|
2362
2347
|
get?: never;
|
|
2348
|
+
put?: never;
|
|
2363
2349
|
/**
|
|
2364
|
-
*
|
|
2365
|
-
* @description Requires at
|
|
2350
|
+
* Creates a targeting rule on the resolved flag in the resolved environment.
|
|
2351
|
+
* @description Requires at
|
|
2352
|
+
* least Member. Re-fetches via GetTargetingRuleQuery using the id returned
|
|
2353
|
+
* from CreateTargetingRuleCommand so the response reflects exactly what was
|
|
2354
|
+
* persisted (e.g. server-assigned priority and condition/group ids).
|
|
2366
2355
|
*/
|
|
2367
|
-
|
|
2356
|
+
post: {
|
|
2368
2357
|
parameters: {
|
|
2369
2358
|
query?: never;
|
|
2370
2359
|
header?: never;
|
|
@@ -2372,27 +2361,1233 @@ export interface paths {
|
|
|
2372
2361
|
org: string;
|
|
2373
2362
|
project: string;
|
|
2374
2363
|
flag: string;
|
|
2375
|
-
|
|
2364
|
+
env: string;
|
|
2376
2365
|
};
|
|
2377
2366
|
cookie?: never;
|
|
2378
2367
|
};
|
|
2379
2368
|
requestBody?: {
|
|
2380
2369
|
content: {
|
|
2381
|
-
"application/json": components["schemas"]["
|
|
2382
|
-
"text/json": components["schemas"]["
|
|
2383
|
-
"application/*+json": components["schemas"]["
|
|
2370
|
+
"application/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2371
|
+
"text/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2372
|
+
"application/*+json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2384
2373
|
};
|
|
2385
2374
|
};
|
|
2386
2375
|
responses: {
|
|
2387
|
-
/** @description
|
|
2388
|
-
|
|
2376
|
+
/** @description Created */
|
|
2377
|
+
201: {
|
|
2389
2378
|
headers: {
|
|
2390
2379
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2391
2380
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2392
2381
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2393
2382
|
[name: string]: unknown;
|
|
2394
2383
|
};
|
|
2395
|
-
content
|
|
2384
|
+
content: {
|
|
2385
|
+
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
2386
|
+
};
|
|
2387
|
+
};
|
|
2388
|
+
/** @description Bad Request */
|
|
2389
|
+
400: {
|
|
2390
|
+
headers: {
|
|
2391
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2392
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2393
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2394
|
+
[name: string]: unknown;
|
|
2395
|
+
};
|
|
2396
|
+
content: {
|
|
2397
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2398
|
+
};
|
|
2399
|
+
};
|
|
2400
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2401
|
+
401: {
|
|
2402
|
+
headers: {
|
|
2403
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2404
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2405
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2406
|
+
[name: string]: unknown;
|
|
2407
|
+
};
|
|
2408
|
+
content: {
|
|
2409
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2410
|
+
};
|
|
2411
|
+
};
|
|
2412
|
+
/** @description Forbidden */
|
|
2413
|
+
403: {
|
|
2414
|
+
headers: {
|
|
2415
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2416
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2417
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2418
|
+
[name: string]: unknown;
|
|
2419
|
+
};
|
|
2420
|
+
content: {
|
|
2421
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2422
|
+
};
|
|
2423
|
+
};
|
|
2424
|
+
/** @description Not Found */
|
|
2425
|
+
404: {
|
|
2426
|
+
headers: {
|
|
2427
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2428
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2429
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2430
|
+
[name: string]: unknown;
|
|
2431
|
+
};
|
|
2432
|
+
content: {
|
|
2433
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2434
|
+
};
|
|
2435
|
+
};
|
|
2436
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2437
|
+
429: {
|
|
2438
|
+
headers: {
|
|
2439
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2440
|
+
"Retry-After"?: number;
|
|
2441
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2442
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2443
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2444
|
+
[name: string]: unknown;
|
|
2445
|
+
};
|
|
2446
|
+
content: {
|
|
2447
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2448
|
+
};
|
|
2449
|
+
};
|
|
2450
|
+
};
|
|
2451
|
+
};
|
|
2452
|
+
delete?: never;
|
|
2453
|
+
options?: never;
|
|
2454
|
+
head?: never;
|
|
2455
|
+
patch?: never;
|
|
2456
|
+
trace?: never;
|
|
2457
|
+
};
|
|
2458
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/{ruleId}": {
|
|
2459
|
+
parameters: {
|
|
2460
|
+
query?: never;
|
|
2461
|
+
header?: never;
|
|
2462
|
+
path?: never;
|
|
2463
|
+
cookie?: never;
|
|
2464
|
+
};
|
|
2465
|
+
/** Gets a single targeting rule on the resolved flag in the resolved environment by id. */
|
|
2466
|
+
get: {
|
|
2467
|
+
parameters: {
|
|
2468
|
+
query?: never;
|
|
2469
|
+
header?: never;
|
|
2470
|
+
path: {
|
|
2471
|
+
org: string;
|
|
2472
|
+
project: string;
|
|
2473
|
+
flag: string;
|
|
2474
|
+
env: string;
|
|
2475
|
+
ruleId: string;
|
|
2476
|
+
};
|
|
2477
|
+
cookie?: never;
|
|
2478
|
+
};
|
|
2479
|
+
requestBody?: never;
|
|
2480
|
+
responses: {
|
|
2481
|
+
/** @description OK */
|
|
2482
|
+
200: {
|
|
2483
|
+
headers: {
|
|
2484
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2485
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2486
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2487
|
+
[name: string]: unknown;
|
|
2488
|
+
};
|
|
2489
|
+
content: {
|
|
2490
|
+
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
2491
|
+
};
|
|
2492
|
+
};
|
|
2493
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2494
|
+
401: {
|
|
2495
|
+
headers: {
|
|
2496
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2497
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2498
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2499
|
+
[name: string]: unknown;
|
|
2500
|
+
};
|
|
2501
|
+
content: {
|
|
2502
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2503
|
+
};
|
|
2504
|
+
};
|
|
2505
|
+
/** @description Not Found */
|
|
2506
|
+
404: {
|
|
2507
|
+
headers: {
|
|
2508
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2509
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2510
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2511
|
+
[name: string]: unknown;
|
|
2512
|
+
};
|
|
2513
|
+
content: {
|
|
2514
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2515
|
+
};
|
|
2516
|
+
};
|
|
2517
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2518
|
+
429: {
|
|
2519
|
+
headers: {
|
|
2520
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2521
|
+
"Retry-After"?: number;
|
|
2522
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2523
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2524
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2525
|
+
[name: string]: unknown;
|
|
2526
|
+
};
|
|
2527
|
+
content: {
|
|
2528
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2529
|
+
};
|
|
2530
|
+
};
|
|
2531
|
+
};
|
|
2532
|
+
};
|
|
2533
|
+
/**
|
|
2534
|
+
* Updates a targeting rule's variation/description/rollout/segment/conditions wholesale.
|
|
2535
|
+
* @description Requires at least Member.
|
|
2536
|
+
*/
|
|
2537
|
+
put: {
|
|
2538
|
+
parameters: {
|
|
2539
|
+
query?: never;
|
|
2540
|
+
header?: never;
|
|
2541
|
+
path: {
|
|
2542
|
+
org: string;
|
|
2543
|
+
project: string;
|
|
2544
|
+
flag: string;
|
|
2545
|
+
env: string;
|
|
2546
|
+
ruleId: string;
|
|
2547
|
+
};
|
|
2548
|
+
cookie?: never;
|
|
2549
|
+
};
|
|
2550
|
+
requestBody?: {
|
|
2551
|
+
content: {
|
|
2552
|
+
"application/json": components["schemas"]["PublicUpdateTargetingRuleRequest"];
|
|
2553
|
+
"text/json": components["schemas"]["PublicUpdateTargetingRuleRequest"];
|
|
2554
|
+
"application/*+json": components["schemas"]["PublicUpdateTargetingRuleRequest"];
|
|
2555
|
+
};
|
|
2556
|
+
};
|
|
2557
|
+
responses: {
|
|
2558
|
+
/** @description No Content */
|
|
2559
|
+
204: {
|
|
2560
|
+
headers: {
|
|
2561
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2562
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2563
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2564
|
+
[name: string]: unknown;
|
|
2565
|
+
};
|
|
2566
|
+
content?: never;
|
|
2567
|
+
};
|
|
2568
|
+
/** @description Bad Request */
|
|
2569
|
+
400: {
|
|
2570
|
+
headers: {
|
|
2571
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2572
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2573
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2574
|
+
[name: string]: unknown;
|
|
2575
|
+
};
|
|
2576
|
+
content: {
|
|
2577
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2578
|
+
};
|
|
2579
|
+
};
|
|
2580
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2581
|
+
401: {
|
|
2582
|
+
headers: {
|
|
2583
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2584
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2585
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2586
|
+
[name: string]: unknown;
|
|
2587
|
+
};
|
|
2588
|
+
content: {
|
|
2589
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2590
|
+
};
|
|
2591
|
+
};
|
|
2592
|
+
/** @description Forbidden */
|
|
2593
|
+
403: {
|
|
2594
|
+
headers: {
|
|
2595
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2596
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2597
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2598
|
+
[name: string]: unknown;
|
|
2599
|
+
};
|
|
2600
|
+
content: {
|
|
2601
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2602
|
+
};
|
|
2603
|
+
};
|
|
2604
|
+
/** @description Not Found */
|
|
2605
|
+
404: {
|
|
2606
|
+
headers: {
|
|
2607
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2608
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2609
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2610
|
+
[name: string]: unknown;
|
|
2611
|
+
};
|
|
2612
|
+
content: {
|
|
2613
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2614
|
+
};
|
|
2615
|
+
};
|
|
2616
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2617
|
+
429: {
|
|
2618
|
+
headers: {
|
|
2619
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2620
|
+
"Retry-After"?: number;
|
|
2621
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2622
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2623
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2624
|
+
[name: string]: unknown;
|
|
2625
|
+
};
|
|
2626
|
+
content: {
|
|
2627
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2628
|
+
};
|
|
2629
|
+
};
|
|
2630
|
+
};
|
|
2631
|
+
};
|
|
2632
|
+
post?: never;
|
|
2633
|
+
/**
|
|
2634
|
+
* Deletes a targeting rule from the resolved flag in the resolved environment.
|
|
2635
|
+
* @description Requires at least Member.
|
|
2636
|
+
*/
|
|
2637
|
+
delete: {
|
|
2638
|
+
parameters: {
|
|
2639
|
+
query?: never;
|
|
2640
|
+
header?: never;
|
|
2641
|
+
path: {
|
|
2642
|
+
org: string;
|
|
2643
|
+
project: string;
|
|
2644
|
+
flag: string;
|
|
2645
|
+
env: string;
|
|
2646
|
+
ruleId: string;
|
|
2647
|
+
};
|
|
2648
|
+
cookie?: never;
|
|
2649
|
+
};
|
|
2650
|
+
requestBody?: never;
|
|
2651
|
+
responses: {
|
|
2652
|
+
/** @description No Content */
|
|
2653
|
+
204: {
|
|
2654
|
+
headers: {
|
|
2655
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2656
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2657
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2658
|
+
[name: string]: unknown;
|
|
2659
|
+
};
|
|
2660
|
+
content?: never;
|
|
2661
|
+
};
|
|
2662
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2663
|
+
401: {
|
|
2664
|
+
headers: {
|
|
2665
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2666
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2667
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2668
|
+
[name: string]: unknown;
|
|
2669
|
+
};
|
|
2670
|
+
content: {
|
|
2671
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2672
|
+
};
|
|
2673
|
+
};
|
|
2674
|
+
/** @description Forbidden */
|
|
2675
|
+
403: {
|
|
2676
|
+
headers: {
|
|
2677
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2678
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2679
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2680
|
+
[name: string]: unknown;
|
|
2681
|
+
};
|
|
2682
|
+
content: {
|
|
2683
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2684
|
+
};
|
|
2685
|
+
};
|
|
2686
|
+
/** @description Not Found */
|
|
2687
|
+
404: {
|
|
2688
|
+
headers: {
|
|
2689
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2690
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2691
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2692
|
+
[name: string]: unknown;
|
|
2693
|
+
};
|
|
2694
|
+
content: {
|
|
2695
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2696
|
+
};
|
|
2697
|
+
};
|
|
2698
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2699
|
+
429: {
|
|
2700
|
+
headers: {
|
|
2701
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2702
|
+
"Retry-After"?: number;
|
|
2703
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2704
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2705
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2706
|
+
[name: string]: unknown;
|
|
2707
|
+
};
|
|
2708
|
+
content: {
|
|
2709
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2710
|
+
};
|
|
2711
|
+
};
|
|
2712
|
+
};
|
|
2713
|
+
};
|
|
2714
|
+
options?: never;
|
|
2715
|
+
head?: never;
|
|
2716
|
+
patch?: never;
|
|
2717
|
+
trace?: never;
|
|
2718
|
+
};
|
|
2719
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/reorder": {
|
|
2720
|
+
parameters: {
|
|
2721
|
+
query?: never;
|
|
2722
|
+
header?: never;
|
|
2723
|
+
path?: never;
|
|
2724
|
+
cookie?: never;
|
|
2725
|
+
};
|
|
2726
|
+
get?: never;
|
|
2727
|
+
/**
|
|
2728
|
+
* Reorders the resolved flag's targeting rules in the resolved environment by priority.
|
|
2729
|
+
* @description Requires at least Member. Must include every existing rule id exactly once — see the
|
|
2730
|
+
* type-level remarks on the dup/omission 500 wart.
|
|
2731
|
+
*/
|
|
2732
|
+
put: {
|
|
2733
|
+
parameters: {
|
|
2734
|
+
query?: never;
|
|
2735
|
+
header?: never;
|
|
2736
|
+
path: {
|
|
2737
|
+
org: string;
|
|
2738
|
+
project: string;
|
|
2739
|
+
flag: string;
|
|
2740
|
+
env: string;
|
|
2741
|
+
};
|
|
2742
|
+
cookie?: never;
|
|
2743
|
+
};
|
|
2744
|
+
requestBody?: {
|
|
2745
|
+
content: {
|
|
2746
|
+
"application/json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2747
|
+
"text/json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2748
|
+
"application/*+json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2749
|
+
};
|
|
2750
|
+
};
|
|
2751
|
+
responses: {
|
|
2752
|
+
/** @description No Content */
|
|
2753
|
+
204: {
|
|
2754
|
+
headers: {
|
|
2755
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2756
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2757
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2758
|
+
[name: string]: unknown;
|
|
2759
|
+
};
|
|
2760
|
+
content?: never;
|
|
2761
|
+
};
|
|
2762
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2763
|
+
401: {
|
|
2764
|
+
headers: {
|
|
2765
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2766
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2767
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2768
|
+
[name: string]: unknown;
|
|
2769
|
+
};
|
|
2770
|
+
content: {
|
|
2771
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2772
|
+
};
|
|
2773
|
+
};
|
|
2774
|
+
/** @description Forbidden */
|
|
2775
|
+
403: {
|
|
2776
|
+
headers: {
|
|
2777
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2778
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2779
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2780
|
+
[name: string]: unknown;
|
|
2781
|
+
};
|
|
2782
|
+
content: {
|
|
2783
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2784
|
+
};
|
|
2785
|
+
};
|
|
2786
|
+
/** @description Not Found */
|
|
2787
|
+
404: {
|
|
2788
|
+
headers: {
|
|
2789
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2790
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2791
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2792
|
+
[name: string]: unknown;
|
|
2793
|
+
};
|
|
2794
|
+
content: {
|
|
2795
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2796
|
+
};
|
|
2797
|
+
};
|
|
2798
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2799
|
+
429: {
|
|
2800
|
+
headers: {
|
|
2801
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2802
|
+
"Retry-After"?: number;
|
|
2803
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2804
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2805
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2806
|
+
[name: string]: unknown;
|
|
2807
|
+
};
|
|
2808
|
+
content: {
|
|
2809
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2810
|
+
};
|
|
2811
|
+
};
|
|
2812
|
+
};
|
|
2813
|
+
};
|
|
2814
|
+
post?: never;
|
|
2815
|
+
delete?: never;
|
|
2816
|
+
options?: never;
|
|
2817
|
+
head?: never;
|
|
2818
|
+
patch?: never;
|
|
2819
|
+
trace?: never;
|
|
2820
|
+
};
|
|
2821
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/variations": {
|
|
2822
|
+
parameters: {
|
|
2823
|
+
query?: never;
|
|
2824
|
+
header?: never;
|
|
2825
|
+
path?: never;
|
|
2826
|
+
cookie?: never;
|
|
2827
|
+
};
|
|
2828
|
+
get?: never;
|
|
2829
|
+
put?: never;
|
|
2830
|
+
/**
|
|
2831
|
+
* Adds a variation to the resolved flag.
|
|
2832
|
+
* @description Requires at least Member. Re-fetches the flag via
|
|
2833
|
+
* GetFeatureFlagQuery and locates the new variation by the id returned from
|
|
2834
|
+
* AddVariationCommand so the response reflects exactly what was persisted.
|
|
2835
|
+
*/
|
|
2836
|
+
post: {
|
|
2837
|
+
parameters: {
|
|
2838
|
+
query?: never;
|
|
2839
|
+
header?: never;
|
|
2840
|
+
path: {
|
|
2841
|
+
org: string;
|
|
2842
|
+
project: string;
|
|
2843
|
+
flag: string;
|
|
2844
|
+
};
|
|
2845
|
+
cookie?: never;
|
|
2846
|
+
};
|
|
2847
|
+
requestBody?: {
|
|
2848
|
+
content: {
|
|
2849
|
+
"application/json": components["schemas"]["PublicAddVariationRequest"];
|
|
2850
|
+
"text/json": components["schemas"]["PublicAddVariationRequest"];
|
|
2851
|
+
"application/*+json": components["schemas"]["PublicAddVariationRequest"];
|
|
2852
|
+
};
|
|
2853
|
+
};
|
|
2854
|
+
responses: {
|
|
2855
|
+
/** @description Created */
|
|
2856
|
+
201: {
|
|
2857
|
+
headers: {
|
|
2858
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2859
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2860
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2861
|
+
[name: string]: unknown;
|
|
2862
|
+
};
|
|
2863
|
+
content: {
|
|
2864
|
+
"application/json": components["schemas"]["PublicVariationResponse"];
|
|
2865
|
+
};
|
|
2866
|
+
};
|
|
2867
|
+
/** @description Bad Request */
|
|
2868
|
+
400: {
|
|
2869
|
+
headers: {
|
|
2870
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2871
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2872
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2873
|
+
[name: string]: unknown;
|
|
2874
|
+
};
|
|
2875
|
+
content: {
|
|
2876
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2877
|
+
};
|
|
2878
|
+
};
|
|
2879
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2880
|
+
401: {
|
|
2881
|
+
headers: {
|
|
2882
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2883
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2884
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2885
|
+
[name: string]: unknown;
|
|
2886
|
+
};
|
|
2887
|
+
content: {
|
|
2888
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2889
|
+
};
|
|
2890
|
+
};
|
|
2891
|
+
/** @description Forbidden */
|
|
2892
|
+
403: {
|
|
2893
|
+
headers: {
|
|
2894
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2895
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2896
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2897
|
+
[name: string]: unknown;
|
|
2898
|
+
};
|
|
2899
|
+
content: {
|
|
2900
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2901
|
+
};
|
|
2902
|
+
};
|
|
2903
|
+
/** @description Not Found */
|
|
2904
|
+
404: {
|
|
2905
|
+
headers: {
|
|
2906
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2907
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2908
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2909
|
+
[name: string]: unknown;
|
|
2910
|
+
};
|
|
2911
|
+
content: {
|
|
2912
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2913
|
+
};
|
|
2914
|
+
};
|
|
2915
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2916
|
+
429: {
|
|
2917
|
+
headers: {
|
|
2918
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2919
|
+
"Retry-After"?: number;
|
|
2920
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2921
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2922
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2923
|
+
[name: string]: unknown;
|
|
2924
|
+
};
|
|
2925
|
+
content: {
|
|
2926
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2927
|
+
};
|
|
2928
|
+
};
|
|
2929
|
+
};
|
|
2930
|
+
};
|
|
2931
|
+
delete?: never;
|
|
2932
|
+
options?: never;
|
|
2933
|
+
head?: never;
|
|
2934
|
+
patch?: never;
|
|
2935
|
+
trace?: never;
|
|
2936
|
+
};
|
|
2937
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/variations/{variationId}": {
|
|
2938
|
+
parameters: {
|
|
2939
|
+
query?: never;
|
|
2940
|
+
header?: never;
|
|
2941
|
+
path?: never;
|
|
2942
|
+
cookie?: never;
|
|
2943
|
+
};
|
|
2944
|
+
get?: never;
|
|
2945
|
+
/**
|
|
2946
|
+
* Updates a variation's name/value/description.
|
|
2947
|
+
* @description Requires at least Member. The variation's key is immutable via this endpoint.
|
|
2948
|
+
*/
|
|
2949
|
+
put: {
|
|
2950
|
+
parameters: {
|
|
2951
|
+
query?: never;
|
|
2952
|
+
header?: never;
|
|
2953
|
+
path: {
|
|
2954
|
+
org: string;
|
|
2955
|
+
project: string;
|
|
2956
|
+
flag: string;
|
|
2957
|
+
variationId: string;
|
|
2958
|
+
};
|
|
2959
|
+
cookie?: never;
|
|
2960
|
+
};
|
|
2961
|
+
requestBody?: {
|
|
2962
|
+
content: {
|
|
2963
|
+
"application/json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2964
|
+
"text/json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2965
|
+
"application/*+json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2966
|
+
};
|
|
2967
|
+
};
|
|
2968
|
+
responses: {
|
|
2969
|
+
/** @description No Content */
|
|
2970
|
+
204: {
|
|
2971
|
+
headers: {
|
|
2972
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2973
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2974
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2975
|
+
[name: string]: unknown;
|
|
2976
|
+
};
|
|
2977
|
+
content?: never;
|
|
2978
|
+
};
|
|
2979
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2980
|
+
401: {
|
|
2981
|
+
headers: {
|
|
2982
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2983
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2984
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2985
|
+
[name: string]: unknown;
|
|
2986
|
+
};
|
|
2987
|
+
content: {
|
|
2988
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2989
|
+
};
|
|
2990
|
+
};
|
|
2991
|
+
/** @description Forbidden */
|
|
2992
|
+
403: {
|
|
2993
|
+
headers: {
|
|
2994
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2995
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2996
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2997
|
+
[name: string]: unknown;
|
|
2998
|
+
};
|
|
2999
|
+
content: {
|
|
3000
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3001
|
+
};
|
|
3002
|
+
};
|
|
3003
|
+
/** @description Not Found */
|
|
3004
|
+
404: {
|
|
3005
|
+
headers: {
|
|
3006
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3007
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3008
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3009
|
+
[name: string]: unknown;
|
|
3010
|
+
};
|
|
3011
|
+
content: {
|
|
3012
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3013
|
+
};
|
|
3014
|
+
};
|
|
3015
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3016
|
+
429: {
|
|
3017
|
+
headers: {
|
|
3018
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3019
|
+
"Retry-After"?: number;
|
|
3020
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3021
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3022
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3023
|
+
[name: string]: unknown;
|
|
3024
|
+
};
|
|
3025
|
+
content: {
|
|
3026
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3027
|
+
};
|
|
3028
|
+
};
|
|
3029
|
+
};
|
|
3030
|
+
};
|
|
3031
|
+
post?: never;
|
|
3032
|
+
/**
|
|
3033
|
+
* Removes a variation from the resolved flag.
|
|
3034
|
+
* @description Requires at least Member. A variation with
|
|
3035
|
+
* dependents (used as default variation, referenced by a targeting rule, or flagged
|
|
3036
|
+
* `VARIATION_HAS_DEPENDENTS`) throws the existing
|
|
3037
|
+
* ValidationException, which the
|
|
3038
|
+
* exception filter maps to a 400 `validation_failed` envelope — this action doesn't
|
|
3039
|
+
* special-case it.
|
|
3040
|
+
*/
|
|
3041
|
+
delete: {
|
|
3042
|
+
parameters: {
|
|
3043
|
+
query?: never;
|
|
3044
|
+
header?: never;
|
|
3045
|
+
path: {
|
|
3046
|
+
org: string;
|
|
3047
|
+
project: string;
|
|
3048
|
+
flag: string;
|
|
3049
|
+
variationId: string;
|
|
3050
|
+
};
|
|
3051
|
+
cookie?: never;
|
|
3052
|
+
};
|
|
3053
|
+
requestBody?: never;
|
|
3054
|
+
responses: {
|
|
3055
|
+
/** @description No Content */
|
|
3056
|
+
204: {
|
|
3057
|
+
headers: {
|
|
3058
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3059
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3060
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3061
|
+
[name: string]: unknown;
|
|
3062
|
+
};
|
|
3063
|
+
content?: never;
|
|
3064
|
+
};
|
|
3065
|
+
/** @description Bad Request */
|
|
3066
|
+
400: {
|
|
3067
|
+
headers: {
|
|
3068
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3069
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3070
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3071
|
+
[name: string]: unknown;
|
|
3072
|
+
};
|
|
3073
|
+
content: {
|
|
3074
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3075
|
+
};
|
|
3076
|
+
};
|
|
3077
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3078
|
+
401: {
|
|
3079
|
+
headers: {
|
|
3080
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3081
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3082
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3083
|
+
[name: string]: unknown;
|
|
3084
|
+
};
|
|
3085
|
+
content: {
|
|
3086
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3087
|
+
};
|
|
3088
|
+
};
|
|
3089
|
+
/** @description Forbidden */
|
|
3090
|
+
403: {
|
|
3091
|
+
headers: {
|
|
3092
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3093
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3094
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3095
|
+
[name: string]: unknown;
|
|
3096
|
+
};
|
|
3097
|
+
content: {
|
|
3098
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3099
|
+
};
|
|
3100
|
+
};
|
|
3101
|
+
/** @description Not Found */
|
|
3102
|
+
404: {
|
|
3103
|
+
headers: {
|
|
3104
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3105
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3106
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3107
|
+
[name: string]: unknown;
|
|
3108
|
+
};
|
|
3109
|
+
content: {
|
|
3110
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3111
|
+
};
|
|
3112
|
+
};
|
|
3113
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3114
|
+
429: {
|
|
3115
|
+
headers: {
|
|
3116
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3117
|
+
"Retry-After"?: number;
|
|
3118
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3119
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3120
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3121
|
+
[name: string]: unknown;
|
|
3122
|
+
};
|
|
3123
|
+
content: {
|
|
3124
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3125
|
+
};
|
|
3126
|
+
};
|
|
3127
|
+
};
|
|
3128
|
+
};
|
|
3129
|
+
options?: never;
|
|
3130
|
+
head?: never;
|
|
3131
|
+
patch?: never;
|
|
3132
|
+
trace?: never;
|
|
3133
|
+
};
|
|
3134
|
+
"/api/v1/me": {
|
|
3135
|
+
parameters: {
|
|
3136
|
+
query?: never;
|
|
3137
|
+
header?: never;
|
|
3138
|
+
path?: never;
|
|
3139
|
+
cookie?: never;
|
|
3140
|
+
};
|
|
3141
|
+
/** Returns the authenticated caller's public identity (see MeResponse). */
|
|
3142
|
+
get: {
|
|
3143
|
+
parameters: {
|
|
3144
|
+
query?: never;
|
|
3145
|
+
header?: never;
|
|
3146
|
+
path?: never;
|
|
3147
|
+
cookie?: never;
|
|
3148
|
+
};
|
|
3149
|
+
requestBody?: never;
|
|
3150
|
+
responses: {
|
|
3151
|
+
/** @description OK */
|
|
3152
|
+
200: {
|
|
3153
|
+
headers: {
|
|
3154
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3155
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3156
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3157
|
+
[name: string]: unknown;
|
|
3158
|
+
};
|
|
3159
|
+
content: {
|
|
3160
|
+
"application/json": components["schemas"]["MeResponse"];
|
|
3161
|
+
};
|
|
3162
|
+
};
|
|
3163
|
+
/** @description Unauthorized */
|
|
3164
|
+
401: {
|
|
3165
|
+
headers: {
|
|
3166
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3167
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3168
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3169
|
+
[name: string]: unknown;
|
|
3170
|
+
};
|
|
3171
|
+
content: {
|
|
3172
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3173
|
+
};
|
|
3174
|
+
};
|
|
3175
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3176
|
+
429: {
|
|
3177
|
+
headers: {
|
|
3178
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3179
|
+
"Retry-After"?: number;
|
|
3180
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3181
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3182
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3183
|
+
[name: string]: unknown;
|
|
3184
|
+
};
|
|
3185
|
+
content: {
|
|
3186
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3187
|
+
};
|
|
3188
|
+
};
|
|
3189
|
+
};
|
|
3190
|
+
};
|
|
3191
|
+
put?: never;
|
|
3192
|
+
post?: never;
|
|
3193
|
+
delete?: never;
|
|
3194
|
+
options?: never;
|
|
3195
|
+
head?: never;
|
|
3196
|
+
patch?: never;
|
|
3197
|
+
trace?: never;
|
|
3198
|
+
};
|
|
3199
|
+
"/api/v1/orgs": {
|
|
3200
|
+
parameters: {
|
|
3201
|
+
query?: never;
|
|
3202
|
+
header?: never;
|
|
3203
|
+
path?: never;
|
|
3204
|
+
cookie?: never;
|
|
3205
|
+
};
|
|
3206
|
+
/** Lists the caller's organizations, cursor-paginated. */
|
|
3207
|
+
get: {
|
|
3208
|
+
parameters: {
|
|
3209
|
+
query?: {
|
|
3210
|
+
limit?: number;
|
|
3211
|
+
cursor?: string;
|
|
3212
|
+
};
|
|
3213
|
+
header?: never;
|
|
3214
|
+
path?: never;
|
|
3215
|
+
cookie?: never;
|
|
3216
|
+
};
|
|
3217
|
+
requestBody?: never;
|
|
3218
|
+
responses: {
|
|
3219
|
+
/** @description OK */
|
|
3220
|
+
200: {
|
|
3221
|
+
headers: {
|
|
3222
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3223
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3224
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3225
|
+
[name: string]: unknown;
|
|
3226
|
+
};
|
|
3227
|
+
content: {
|
|
3228
|
+
"application/json": components["schemas"]["OrganizationResponsePagedResult"];
|
|
3229
|
+
};
|
|
3230
|
+
};
|
|
3231
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3232
|
+
401: {
|
|
3233
|
+
headers: {
|
|
3234
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3235
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3236
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3237
|
+
[name: string]: unknown;
|
|
3238
|
+
};
|
|
3239
|
+
content: {
|
|
3240
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3241
|
+
};
|
|
3242
|
+
};
|
|
3243
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3244
|
+
429: {
|
|
3245
|
+
headers: {
|
|
3246
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3247
|
+
"Retry-After"?: number;
|
|
3248
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3249
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3250
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3251
|
+
[name: string]: unknown;
|
|
3252
|
+
};
|
|
3253
|
+
content: {
|
|
3254
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3255
|
+
};
|
|
3256
|
+
};
|
|
3257
|
+
};
|
|
3258
|
+
};
|
|
3259
|
+
put?: never;
|
|
3260
|
+
post?: never;
|
|
3261
|
+
delete?: never;
|
|
3262
|
+
options?: never;
|
|
3263
|
+
head?: never;
|
|
3264
|
+
patch?: never;
|
|
3265
|
+
trace?: never;
|
|
3266
|
+
};
|
|
3267
|
+
"/api/v1/orgs/{org}": {
|
|
3268
|
+
parameters: {
|
|
3269
|
+
query?: never;
|
|
3270
|
+
header?: never;
|
|
3271
|
+
path?: never;
|
|
3272
|
+
cookie?: never;
|
|
3273
|
+
};
|
|
3274
|
+
/** Gets one of the caller's organizations by slug or id. */
|
|
3275
|
+
get: {
|
|
3276
|
+
parameters: {
|
|
3277
|
+
query?: never;
|
|
3278
|
+
header?: never;
|
|
3279
|
+
path: {
|
|
3280
|
+
org: string;
|
|
3281
|
+
};
|
|
3282
|
+
cookie?: never;
|
|
3283
|
+
};
|
|
3284
|
+
requestBody?: never;
|
|
3285
|
+
responses: {
|
|
3286
|
+
/** @description OK */
|
|
3287
|
+
200: {
|
|
3288
|
+
headers: {
|
|
3289
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3290
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3291
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3292
|
+
[name: string]: unknown;
|
|
3293
|
+
};
|
|
3294
|
+
content: {
|
|
3295
|
+
"application/json": components["schemas"]["OrganizationResponse"];
|
|
3296
|
+
};
|
|
3297
|
+
};
|
|
3298
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3299
|
+
401: {
|
|
3300
|
+
headers: {
|
|
3301
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3302
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3303
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3304
|
+
[name: string]: unknown;
|
|
3305
|
+
};
|
|
3306
|
+
content: {
|
|
3307
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3308
|
+
};
|
|
3309
|
+
};
|
|
3310
|
+
/** @description Not Found */
|
|
3311
|
+
404: {
|
|
3312
|
+
headers: {
|
|
3313
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3314
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3315
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3316
|
+
[name: string]: unknown;
|
|
3317
|
+
};
|
|
3318
|
+
content: {
|
|
3319
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3320
|
+
};
|
|
3321
|
+
};
|
|
3322
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3323
|
+
429: {
|
|
3324
|
+
headers: {
|
|
3325
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3326
|
+
"Retry-After"?: number;
|
|
3327
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3328
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3329
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3330
|
+
[name: string]: unknown;
|
|
3331
|
+
};
|
|
3332
|
+
content: {
|
|
3333
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3334
|
+
};
|
|
3335
|
+
};
|
|
3336
|
+
};
|
|
3337
|
+
};
|
|
3338
|
+
put?: never;
|
|
3339
|
+
post?: never;
|
|
3340
|
+
delete?: never;
|
|
3341
|
+
options?: never;
|
|
3342
|
+
head?: never;
|
|
3343
|
+
patch?: never;
|
|
3344
|
+
trace?: never;
|
|
3345
|
+
};
|
|
3346
|
+
"/api/v1/orgs/{org}/projects": {
|
|
3347
|
+
parameters: {
|
|
3348
|
+
query?: never;
|
|
3349
|
+
header?: never;
|
|
3350
|
+
path?: never;
|
|
3351
|
+
cookie?: never;
|
|
3352
|
+
};
|
|
3353
|
+
/** Lists projects in the resolved organization, cursor-paginated. */
|
|
3354
|
+
get: {
|
|
3355
|
+
parameters: {
|
|
3356
|
+
query?: {
|
|
3357
|
+
limit?: number;
|
|
3358
|
+
cursor?: string;
|
|
3359
|
+
};
|
|
3360
|
+
header?: never;
|
|
3361
|
+
path: {
|
|
3362
|
+
org: string;
|
|
3363
|
+
};
|
|
3364
|
+
cookie?: never;
|
|
3365
|
+
};
|
|
3366
|
+
requestBody?: never;
|
|
3367
|
+
responses: {
|
|
3368
|
+
/** @description OK */
|
|
3369
|
+
200: {
|
|
3370
|
+
headers: {
|
|
3371
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3372
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3373
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3374
|
+
[name: string]: unknown;
|
|
3375
|
+
};
|
|
3376
|
+
content: {
|
|
3377
|
+
"application/json": components["schemas"]["ProjectResponsePagedResult"];
|
|
3378
|
+
};
|
|
3379
|
+
};
|
|
3380
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3381
|
+
401: {
|
|
3382
|
+
headers: {
|
|
3383
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3384
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3385
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3386
|
+
[name: string]: unknown;
|
|
3387
|
+
};
|
|
3388
|
+
content: {
|
|
3389
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3390
|
+
};
|
|
3391
|
+
};
|
|
3392
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3393
|
+
429: {
|
|
3394
|
+
headers: {
|
|
3395
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3396
|
+
"Retry-After"?: number;
|
|
3397
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3398
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3399
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3400
|
+
[name: string]: unknown;
|
|
3401
|
+
};
|
|
3402
|
+
content: {
|
|
3403
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3404
|
+
};
|
|
3405
|
+
};
|
|
3406
|
+
};
|
|
3407
|
+
};
|
|
3408
|
+
put?: never;
|
|
3409
|
+
/**
|
|
3410
|
+
* Creates a project in the resolved organization.
|
|
3411
|
+
* @description Requires at least Member.
|
|
3412
|
+
*/
|
|
3413
|
+
post: {
|
|
3414
|
+
parameters: {
|
|
3415
|
+
query?: never;
|
|
3416
|
+
header?: never;
|
|
3417
|
+
path: {
|
|
3418
|
+
org: string;
|
|
3419
|
+
};
|
|
3420
|
+
cookie?: never;
|
|
3421
|
+
};
|
|
3422
|
+
requestBody?: {
|
|
3423
|
+
content: {
|
|
3424
|
+
"application/json": components["schemas"]["PublicCreateProjectRequest"];
|
|
3425
|
+
"text/json": components["schemas"]["PublicCreateProjectRequest"];
|
|
3426
|
+
"application/*+json": components["schemas"]["PublicCreateProjectRequest"];
|
|
3427
|
+
};
|
|
3428
|
+
};
|
|
3429
|
+
responses: {
|
|
3430
|
+
/** @description Created */
|
|
3431
|
+
201: {
|
|
3432
|
+
headers: {
|
|
3433
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3434
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3435
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3436
|
+
[name: string]: unknown;
|
|
3437
|
+
};
|
|
3438
|
+
content: {
|
|
3439
|
+
"application/json": components["schemas"]["ProjectResponse"];
|
|
3440
|
+
};
|
|
3441
|
+
};
|
|
3442
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3443
|
+
401: {
|
|
3444
|
+
headers: {
|
|
3445
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3446
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3447
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3448
|
+
[name: string]: unknown;
|
|
3449
|
+
};
|
|
3450
|
+
content: {
|
|
3451
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3452
|
+
};
|
|
3453
|
+
};
|
|
3454
|
+
/** @description Forbidden */
|
|
3455
|
+
403: {
|
|
3456
|
+
headers: {
|
|
3457
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3458
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3459
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3460
|
+
[name: string]: unknown;
|
|
3461
|
+
};
|
|
3462
|
+
content: {
|
|
3463
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3464
|
+
};
|
|
3465
|
+
};
|
|
3466
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3467
|
+
429: {
|
|
3468
|
+
headers: {
|
|
3469
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3470
|
+
"Retry-After"?: number;
|
|
3471
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3472
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3473
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3474
|
+
[name: string]: unknown;
|
|
3475
|
+
};
|
|
3476
|
+
content: {
|
|
3477
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3478
|
+
};
|
|
3479
|
+
};
|
|
3480
|
+
};
|
|
3481
|
+
};
|
|
3482
|
+
delete?: never;
|
|
3483
|
+
options?: never;
|
|
3484
|
+
head?: never;
|
|
3485
|
+
patch?: never;
|
|
3486
|
+
trace?: never;
|
|
3487
|
+
};
|
|
3488
|
+
"/api/v1/orgs/{org}/projects/{project}": {
|
|
3489
|
+
parameters: {
|
|
3490
|
+
query?: never;
|
|
3491
|
+
header?: never;
|
|
3492
|
+
path?: never;
|
|
3493
|
+
cookie?: never;
|
|
3494
|
+
};
|
|
3495
|
+
/** Gets a project in the resolved organization by key or id. */
|
|
3496
|
+
get: {
|
|
3497
|
+
parameters: {
|
|
3498
|
+
query?: never;
|
|
3499
|
+
header?: never;
|
|
3500
|
+
path: {
|
|
3501
|
+
org: string;
|
|
3502
|
+
project: string;
|
|
3503
|
+
};
|
|
3504
|
+
cookie?: never;
|
|
3505
|
+
};
|
|
3506
|
+
requestBody?: never;
|
|
3507
|
+
responses: {
|
|
3508
|
+
/** @description OK */
|
|
3509
|
+
200: {
|
|
3510
|
+
headers: {
|
|
3511
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3512
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3513
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3514
|
+
[name: string]: unknown;
|
|
3515
|
+
};
|
|
3516
|
+
content: {
|
|
3517
|
+
"application/json": components["schemas"]["ProjectResponse"];
|
|
3518
|
+
};
|
|
3519
|
+
};
|
|
3520
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3521
|
+
401: {
|
|
3522
|
+
headers: {
|
|
3523
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3524
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3525
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3526
|
+
[name: string]: unknown;
|
|
3527
|
+
};
|
|
3528
|
+
content: {
|
|
3529
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3530
|
+
};
|
|
3531
|
+
};
|
|
3532
|
+
/** @description Not Found */
|
|
3533
|
+
404: {
|
|
3534
|
+
headers: {
|
|
3535
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3536
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3537
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3538
|
+
[name: string]: unknown;
|
|
3539
|
+
};
|
|
3540
|
+
content: {
|
|
3541
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3542
|
+
};
|
|
3543
|
+
};
|
|
3544
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3545
|
+
429: {
|
|
3546
|
+
headers: {
|
|
3547
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3548
|
+
"Retry-After"?: number;
|
|
3549
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3550
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3551
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3552
|
+
[name: string]: unknown;
|
|
3553
|
+
};
|
|
3554
|
+
content: {
|
|
3555
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3556
|
+
};
|
|
3557
|
+
};
|
|
3558
|
+
};
|
|
3559
|
+
};
|
|
3560
|
+
/**
|
|
3561
|
+
* Updates a project's name/description.
|
|
3562
|
+
* @description Requires at least Member.
|
|
3563
|
+
*/
|
|
3564
|
+
put: {
|
|
3565
|
+
parameters: {
|
|
3566
|
+
query?: never;
|
|
3567
|
+
header?: never;
|
|
3568
|
+
path: {
|
|
3569
|
+
org: string;
|
|
3570
|
+
project: string;
|
|
3571
|
+
};
|
|
3572
|
+
cookie?: never;
|
|
3573
|
+
};
|
|
3574
|
+
requestBody?: {
|
|
3575
|
+
content: {
|
|
3576
|
+
"application/json": components["schemas"]["PublicUpdateProjectRequest"];
|
|
3577
|
+
"text/json": components["schemas"]["PublicUpdateProjectRequest"];
|
|
3578
|
+
"application/*+json": components["schemas"]["PublicUpdateProjectRequest"];
|
|
3579
|
+
};
|
|
3580
|
+
};
|
|
3581
|
+
responses: {
|
|
3582
|
+
/** @description No Content */
|
|
3583
|
+
204: {
|
|
3584
|
+
headers: {
|
|
3585
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3586
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3587
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3588
|
+
[name: string]: unknown;
|
|
3589
|
+
};
|
|
3590
|
+
content?: never;
|
|
2396
3591
|
};
|
|
2397
3592
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2398
3593
|
401: {
|
|
@@ -2448,37 +3643,206 @@ export interface paths {
|
|
|
2448
3643
|
};
|
|
2449
3644
|
post?: never;
|
|
2450
3645
|
/**
|
|
2451
|
-
*
|
|
2452
|
-
* @description Requires at least Member.
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
3646
|
+
* Deletes a project.
|
|
3647
|
+
* @description Requires at least Member.
|
|
3648
|
+
*/
|
|
3649
|
+
delete: {
|
|
3650
|
+
parameters: {
|
|
3651
|
+
query?: never;
|
|
3652
|
+
header?: never;
|
|
3653
|
+
path: {
|
|
3654
|
+
org: string;
|
|
3655
|
+
project: string;
|
|
3656
|
+
};
|
|
3657
|
+
cookie?: never;
|
|
3658
|
+
};
|
|
3659
|
+
requestBody?: never;
|
|
3660
|
+
responses: {
|
|
3661
|
+
/** @description No Content */
|
|
3662
|
+
204: {
|
|
3663
|
+
headers: {
|
|
3664
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3665
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3666
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3667
|
+
[name: string]: unknown;
|
|
3668
|
+
};
|
|
3669
|
+
content?: never;
|
|
3670
|
+
};
|
|
3671
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3672
|
+
401: {
|
|
3673
|
+
headers: {
|
|
3674
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3675
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3676
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3677
|
+
[name: string]: unknown;
|
|
3678
|
+
};
|
|
3679
|
+
content: {
|
|
3680
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3681
|
+
};
|
|
3682
|
+
};
|
|
3683
|
+
/** @description Forbidden */
|
|
3684
|
+
403: {
|
|
3685
|
+
headers: {
|
|
3686
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3687
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3688
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3689
|
+
[name: string]: unknown;
|
|
3690
|
+
};
|
|
3691
|
+
content: {
|
|
3692
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3693
|
+
};
|
|
3694
|
+
};
|
|
3695
|
+
/** @description Not Found */
|
|
3696
|
+
404: {
|
|
3697
|
+
headers: {
|
|
3698
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3699
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3700
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3701
|
+
[name: string]: unknown;
|
|
3702
|
+
};
|
|
3703
|
+
content: {
|
|
3704
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3705
|
+
};
|
|
3706
|
+
};
|
|
3707
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3708
|
+
429: {
|
|
3709
|
+
headers: {
|
|
3710
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3711
|
+
"Retry-After"?: number;
|
|
3712
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3713
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3714
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3715
|
+
[name: string]: unknown;
|
|
3716
|
+
};
|
|
3717
|
+
content: {
|
|
3718
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3719
|
+
};
|
|
3720
|
+
};
|
|
3721
|
+
};
|
|
3722
|
+
};
|
|
3723
|
+
options?: never;
|
|
3724
|
+
head?: never;
|
|
3725
|
+
patch?: never;
|
|
3726
|
+
trace?: never;
|
|
3727
|
+
};
|
|
3728
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys": {
|
|
3729
|
+
parameters: {
|
|
3730
|
+
query?: never;
|
|
3731
|
+
header?: never;
|
|
3732
|
+
path?: never;
|
|
3733
|
+
cookie?: never;
|
|
3734
|
+
};
|
|
3735
|
+
/**
|
|
3736
|
+
* Lists SDK keys in the resolved environment, cursor-paginated.
|
|
3737
|
+
* @description Like
|
|
3738
|
+
* List, ListSdkKeysQuery has no
|
|
3739
|
+
* `Skip`/`Take` (an environment's key count is small), so this fetches the full
|
|
3740
|
+
* set and pages in-memory to still expose the standard cursor contract.
|
|
3741
|
+
*/
|
|
3742
|
+
get: {
|
|
3743
|
+
parameters: {
|
|
3744
|
+
query?: {
|
|
3745
|
+
limit?: number;
|
|
3746
|
+
cursor?: string;
|
|
3747
|
+
};
|
|
3748
|
+
header?: never;
|
|
3749
|
+
path: {
|
|
3750
|
+
org: string;
|
|
3751
|
+
project: string;
|
|
3752
|
+
env: string;
|
|
3753
|
+
};
|
|
3754
|
+
cookie?: never;
|
|
3755
|
+
};
|
|
3756
|
+
requestBody?: never;
|
|
3757
|
+
responses: {
|
|
3758
|
+
/** @description OK */
|
|
3759
|
+
200: {
|
|
3760
|
+
headers: {
|
|
3761
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3762
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3763
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3764
|
+
[name: string]: unknown;
|
|
3765
|
+
};
|
|
3766
|
+
content: {
|
|
3767
|
+
"application/json": components["schemas"]["PublicSdkKeyResponsePagedResult"];
|
|
3768
|
+
};
|
|
3769
|
+
};
|
|
3770
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3771
|
+
401: {
|
|
3772
|
+
headers: {
|
|
3773
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3774
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3775
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3776
|
+
[name: string]: unknown;
|
|
3777
|
+
};
|
|
3778
|
+
content: {
|
|
3779
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3780
|
+
};
|
|
3781
|
+
};
|
|
3782
|
+
/** @description Not Found */
|
|
3783
|
+
404: {
|
|
3784
|
+
headers: {
|
|
3785
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3786
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3787
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3788
|
+
[name: string]: unknown;
|
|
3789
|
+
};
|
|
3790
|
+
content: {
|
|
3791
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3792
|
+
};
|
|
3793
|
+
};
|
|
3794
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3795
|
+
429: {
|
|
3796
|
+
headers: {
|
|
3797
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3798
|
+
"Retry-After"?: number;
|
|
3799
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3800
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3801
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3802
|
+
[name: string]: unknown;
|
|
3803
|
+
};
|
|
3804
|
+
content: {
|
|
3805
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3806
|
+
};
|
|
3807
|
+
};
|
|
3808
|
+
};
|
|
3809
|
+
};
|
|
3810
|
+
put?: never;
|
|
3811
|
+
/**
|
|
3812
|
+
* Creates an SDK key in the resolved environment.
|
|
3813
|
+
* @description Requires at least Member. Returns the
|
|
3814
|
+
* plaintext key exactly once — see the type-level remarks.
|
|
2458
3815
|
*/
|
|
2459
|
-
|
|
3816
|
+
post: {
|
|
2460
3817
|
parameters: {
|
|
2461
3818
|
query?: never;
|
|
2462
3819
|
header?: never;
|
|
2463
3820
|
path: {
|
|
2464
3821
|
org: string;
|
|
2465
3822
|
project: string;
|
|
2466
|
-
|
|
2467
|
-
variationId: string;
|
|
3823
|
+
env: string;
|
|
2468
3824
|
};
|
|
2469
3825
|
cookie?: never;
|
|
2470
3826
|
};
|
|
2471
|
-
requestBody?:
|
|
3827
|
+
requestBody?: {
|
|
3828
|
+
content: {
|
|
3829
|
+
"application/json": components["schemas"]["PublicCreateSdkKeyRequest"];
|
|
3830
|
+
"text/json": components["schemas"]["PublicCreateSdkKeyRequest"];
|
|
3831
|
+
"application/*+json": components["schemas"]["PublicCreateSdkKeyRequest"];
|
|
3832
|
+
};
|
|
3833
|
+
};
|
|
2472
3834
|
responses: {
|
|
2473
|
-
/** @description
|
|
2474
|
-
|
|
3835
|
+
/** @description Created */
|
|
3836
|
+
201: {
|
|
2475
3837
|
headers: {
|
|
2476
3838
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2477
3839
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2478
3840
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2479
3841
|
[name: string]: unknown;
|
|
2480
3842
|
};
|
|
2481
|
-
content
|
|
3843
|
+
content: {
|
|
3844
|
+
"application/json": components["schemas"]["PublicCreateSdkKeyResponse"];
|
|
3845
|
+
};
|
|
2482
3846
|
};
|
|
2483
3847
|
/** @description Bad Request */
|
|
2484
3848
|
400: {
|
|
@@ -2544,24 +3908,30 @@ export interface paths {
|
|
|
2544
3908
|
};
|
|
2545
3909
|
};
|
|
2546
3910
|
};
|
|
3911
|
+
delete?: never;
|
|
2547
3912
|
options?: never;
|
|
2548
3913
|
head?: never;
|
|
2549
3914
|
patch?: never;
|
|
2550
3915
|
trace?: never;
|
|
2551
3916
|
};
|
|
2552
|
-
"/api/v1/
|
|
3917
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}": {
|
|
2553
3918
|
parameters: {
|
|
2554
3919
|
query?: never;
|
|
2555
3920
|
header?: never;
|
|
2556
3921
|
path?: never;
|
|
2557
3922
|
cookie?: never;
|
|
2558
3923
|
};
|
|
2559
|
-
/**
|
|
3924
|
+
/** Gets an SDK key in the resolved environment by id (guid-only — see the type-level remarks). */
|
|
2560
3925
|
get: {
|
|
2561
3926
|
parameters: {
|
|
2562
3927
|
query?: never;
|
|
2563
3928
|
header?: never;
|
|
2564
|
-
path
|
|
3929
|
+
path: {
|
|
3930
|
+
org: string;
|
|
3931
|
+
project: string;
|
|
3932
|
+
env: string;
|
|
3933
|
+
sdkKey: string;
|
|
3934
|
+
};
|
|
2565
3935
|
cookie?: never;
|
|
2566
3936
|
};
|
|
2567
3937
|
requestBody?: never;
|
|
@@ -2575,10 +3945,10 @@ export interface paths {
|
|
|
2575
3945
|
[name: string]: unknown;
|
|
2576
3946
|
};
|
|
2577
3947
|
content: {
|
|
2578
|
-
"application/json": components["schemas"]["
|
|
3948
|
+
"application/json": components["schemas"]["PublicSdkKeyResponse"];
|
|
2579
3949
|
};
|
|
2580
3950
|
};
|
|
2581
|
-
/** @description
|
|
3951
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2582
3952
|
401: {
|
|
2583
3953
|
headers: {
|
|
2584
3954
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
@@ -2590,6 +3960,18 @@ export interface paths {
|
|
|
2590
3960
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2591
3961
|
};
|
|
2592
3962
|
};
|
|
3963
|
+
/** @description Not Found */
|
|
3964
|
+
404: {
|
|
3965
|
+
headers: {
|
|
3966
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3967
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3968
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3969
|
+
[name: string]: unknown;
|
|
3970
|
+
};
|
|
3971
|
+
content: {
|
|
3972
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3973
|
+
};
|
|
3974
|
+
};
|
|
2593
3975
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2594
3976
|
429: {
|
|
2595
3977
|
headers: {
|
|
@@ -2606,45 +3988,39 @@ export interface paths {
|
|
|
2606
3988
|
};
|
|
2607
3989
|
};
|
|
2608
3990
|
};
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
patch?: never;
|
|
2615
|
-
trace?: never;
|
|
2616
|
-
};
|
|
2617
|
-
"/api/v1/orgs": {
|
|
2618
|
-
parameters: {
|
|
2619
|
-
query?: never;
|
|
2620
|
-
header?: never;
|
|
2621
|
-
path?: never;
|
|
2622
|
-
cookie?: never;
|
|
2623
|
-
};
|
|
2624
|
-
/** Lists the caller's organizations, cursor-paginated. */
|
|
2625
|
-
get: {
|
|
3991
|
+
/**
|
|
3992
|
+
* Updates an SDK key's name/description.
|
|
3993
|
+
* @description Requires at least Member. Type and key material are immutable via this endpoint.
|
|
3994
|
+
*/
|
|
3995
|
+
put: {
|
|
2626
3996
|
parameters: {
|
|
2627
|
-
query?:
|
|
2628
|
-
limit?: number;
|
|
2629
|
-
cursor?: string;
|
|
2630
|
-
};
|
|
3997
|
+
query?: never;
|
|
2631
3998
|
header?: never;
|
|
2632
|
-
path
|
|
3999
|
+
path: {
|
|
4000
|
+
org: string;
|
|
4001
|
+
project: string;
|
|
4002
|
+
env: string;
|
|
4003
|
+
sdkKey: string;
|
|
4004
|
+
};
|
|
2633
4005
|
cookie?: never;
|
|
2634
4006
|
};
|
|
2635
|
-
requestBody?:
|
|
4007
|
+
requestBody?: {
|
|
4008
|
+
content: {
|
|
4009
|
+
"application/json": components["schemas"]["PublicUpdateSdkKeyRequest"];
|
|
4010
|
+
"text/json": components["schemas"]["PublicUpdateSdkKeyRequest"];
|
|
4011
|
+
"application/*+json": components["schemas"]["PublicUpdateSdkKeyRequest"];
|
|
4012
|
+
};
|
|
4013
|
+
};
|
|
2636
4014
|
responses: {
|
|
2637
|
-
/** @description
|
|
2638
|
-
|
|
4015
|
+
/** @description No Content */
|
|
4016
|
+
204: {
|
|
2639
4017
|
headers: {
|
|
2640
4018
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2641
4019
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2642
4020
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2643
4021
|
[name: string]: unknown;
|
|
2644
4022
|
};
|
|
2645
|
-
content
|
|
2646
|
-
"application/json": components["schemas"]["OrganizationResponsePagedResult"];
|
|
2647
|
-
};
|
|
4023
|
+
content?: never;
|
|
2648
4024
|
};
|
|
2649
4025
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2650
4026
|
401: {
|
|
@@ -2658,6 +4034,30 @@ export interface paths {
|
|
|
2658
4034
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2659
4035
|
};
|
|
2660
4036
|
};
|
|
4037
|
+
/** @description Forbidden */
|
|
4038
|
+
403: {
|
|
4039
|
+
headers: {
|
|
4040
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4041
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4042
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4043
|
+
[name: string]: unknown;
|
|
4044
|
+
};
|
|
4045
|
+
content: {
|
|
4046
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4047
|
+
};
|
|
4048
|
+
};
|
|
4049
|
+
/** @description Not Found */
|
|
4050
|
+
404: {
|
|
4051
|
+
headers: {
|
|
4052
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4053
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4054
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4055
|
+
[name: string]: unknown;
|
|
4056
|
+
};
|
|
4057
|
+
content: {
|
|
4058
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4059
|
+
};
|
|
4060
|
+
};
|
|
2661
4061
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2662
4062
|
429: {
|
|
2663
4063
|
headers: {
|
|
@@ -2674,7 +4074,6 @@ export interface paths {
|
|
|
2674
4074
|
};
|
|
2675
4075
|
};
|
|
2676
4076
|
};
|
|
2677
|
-
put?: never;
|
|
2678
4077
|
post?: never;
|
|
2679
4078
|
delete?: never;
|
|
2680
4079
|
options?: never;
|
|
@@ -2682,36 +4081,42 @@ export interface paths {
|
|
|
2682
4081
|
patch?: never;
|
|
2683
4082
|
trace?: never;
|
|
2684
4083
|
};
|
|
2685
|
-
"/api/v1/orgs/{org}": {
|
|
4084
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}/revoke": {
|
|
2686
4085
|
parameters: {
|
|
2687
4086
|
query?: never;
|
|
2688
4087
|
header?: never;
|
|
2689
4088
|
path?: never;
|
|
2690
4089
|
cookie?: never;
|
|
2691
4090
|
};
|
|
2692
|
-
|
|
2693
|
-
|
|
4091
|
+
get?: never;
|
|
4092
|
+
put?: never;
|
|
4093
|
+
/**
|
|
4094
|
+
* Revokes an SDK key.
|
|
4095
|
+
* @description Requires at least Member.
|
|
4096
|
+
*/
|
|
4097
|
+
post: {
|
|
2694
4098
|
parameters: {
|
|
2695
4099
|
query?: never;
|
|
2696
4100
|
header?: never;
|
|
2697
4101
|
path: {
|
|
2698
4102
|
org: string;
|
|
4103
|
+
project: string;
|
|
4104
|
+
env: string;
|
|
4105
|
+
sdkKey: string;
|
|
2699
4106
|
};
|
|
2700
4107
|
cookie?: never;
|
|
2701
4108
|
};
|
|
2702
4109
|
requestBody?: never;
|
|
2703
4110
|
responses: {
|
|
2704
|
-
/** @description
|
|
2705
|
-
|
|
4111
|
+
/** @description No Content */
|
|
4112
|
+
204: {
|
|
2706
4113
|
headers: {
|
|
2707
4114
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2708
4115
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2709
4116
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2710
4117
|
[name: string]: unknown;
|
|
2711
4118
|
};
|
|
2712
|
-
content
|
|
2713
|
-
"application/json": components["schemas"]["OrganizationResponse"];
|
|
2714
|
-
};
|
|
4119
|
+
content?: never;
|
|
2715
4120
|
};
|
|
2716
4121
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2717
4122
|
401: {
|
|
@@ -2725,6 +4130,18 @@ export interface paths {
|
|
|
2725
4130
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2726
4131
|
};
|
|
2727
4132
|
};
|
|
4133
|
+
/** @description Forbidden */
|
|
4134
|
+
403: {
|
|
4135
|
+
headers: {
|
|
4136
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4137
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4138
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4139
|
+
[name: string]: unknown;
|
|
4140
|
+
};
|
|
4141
|
+
content: {
|
|
4142
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4143
|
+
};
|
|
4144
|
+
};
|
|
2728
4145
|
/** @description Not Found */
|
|
2729
4146
|
404: {
|
|
2730
4147
|
headers: {
|
|
@@ -2753,22 +4170,26 @@ export interface paths {
|
|
|
2753
4170
|
};
|
|
2754
4171
|
};
|
|
2755
4172
|
};
|
|
2756
|
-
put?: never;
|
|
2757
|
-
post?: never;
|
|
2758
4173
|
delete?: never;
|
|
2759
4174
|
options?: never;
|
|
2760
4175
|
head?: never;
|
|
2761
4176
|
patch?: never;
|
|
2762
4177
|
trace?: never;
|
|
2763
4178
|
};
|
|
2764
|
-
"/api/v1/orgs/{org}/projects": {
|
|
4179
|
+
"/api/v1/orgs/{org}/projects/{project}/segments": {
|
|
2765
4180
|
parameters: {
|
|
2766
4181
|
query?: never;
|
|
2767
4182
|
header?: never;
|
|
2768
4183
|
path?: never;
|
|
2769
4184
|
cookie?: never;
|
|
2770
4185
|
};
|
|
2771
|
-
/**
|
|
4186
|
+
/**
|
|
4187
|
+
* Lists user segments in the resolved project, cursor-paginated.
|
|
4188
|
+
* @description Like
|
|
4189
|
+
* List, ListUserSegmentsQuery has no
|
|
4190
|
+
* `Skip`/`Take` (a project's segment count is small), so this fetches the full set
|
|
4191
|
+
* and pages in-memory to still expose the standard cursor contract.
|
|
4192
|
+
*/
|
|
2772
4193
|
get: {
|
|
2773
4194
|
parameters: {
|
|
2774
4195
|
query?: {
|
|
@@ -2778,6 +4199,7 @@ export interface paths {
|
|
|
2778
4199
|
header?: never;
|
|
2779
4200
|
path: {
|
|
2780
4201
|
org: string;
|
|
4202
|
+
project: string;
|
|
2781
4203
|
};
|
|
2782
4204
|
cookie?: never;
|
|
2783
4205
|
};
|
|
@@ -2792,7 +4214,7 @@ export interface paths {
|
|
|
2792
4214
|
[name: string]: unknown;
|
|
2793
4215
|
};
|
|
2794
4216
|
content: {
|
|
2795
|
-
"application/json": components["schemas"]["
|
|
4217
|
+
"application/json": components["schemas"]["PublicSegmentResponsePagedResult"];
|
|
2796
4218
|
};
|
|
2797
4219
|
};
|
|
2798
4220
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2807,6 +4229,18 @@ export interface paths {
|
|
|
2807
4229
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2808
4230
|
};
|
|
2809
4231
|
};
|
|
4232
|
+
/** @description Not Found */
|
|
4233
|
+
404: {
|
|
4234
|
+
headers: {
|
|
4235
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4236
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4237
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4238
|
+
[name: string]: unknown;
|
|
4239
|
+
};
|
|
4240
|
+
content: {
|
|
4241
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4242
|
+
};
|
|
4243
|
+
};
|
|
2810
4244
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2811
4245
|
429: {
|
|
2812
4246
|
headers: {
|
|
@@ -2825,8 +4259,12 @@ export interface paths {
|
|
|
2825
4259
|
};
|
|
2826
4260
|
put?: never;
|
|
2827
4261
|
/**
|
|
2828
|
-
* Creates a
|
|
2829
|
-
* @description Requires at least Member.
|
|
4262
|
+
* Creates a user segment in the resolved project.
|
|
4263
|
+
* @description Requires at least Member. Re-fetches via
|
|
4264
|
+
* ListUserSegmentsQuery (there is no single-segment query) and locates the new
|
|
4265
|
+
* segment by the id returned from CreateUserSegmentCommand so the response
|
|
4266
|
+
* reflects exactly what was persisted (e.g. server-assigned condition ids, folded into the
|
|
4267
|
+
* public shape via FromDto).
|
|
2830
4268
|
*/
|
|
2831
4269
|
post: {
|
|
2832
4270
|
parameters: {
|
|
@@ -2834,14 +4272,15 @@ export interface paths {
|
|
|
2834
4272
|
header?: never;
|
|
2835
4273
|
path: {
|
|
2836
4274
|
org: string;
|
|
4275
|
+
project: string;
|
|
2837
4276
|
};
|
|
2838
4277
|
cookie?: never;
|
|
2839
4278
|
};
|
|
2840
4279
|
requestBody?: {
|
|
2841
4280
|
content: {
|
|
2842
|
-
"application/json": components["schemas"]["
|
|
2843
|
-
"text/json": components["schemas"]["
|
|
2844
|
-
"application/*+json": components["schemas"]["
|
|
4281
|
+
"application/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
4282
|
+
"text/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
4283
|
+
"application/*+json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
2845
4284
|
};
|
|
2846
4285
|
};
|
|
2847
4286
|
responses: {
|
|
@@ -2854,7 +4293,19 @@ export interface paths {
|
|
|
2854
4293
|
[name: string]: unknown;
|
|
2855
4294
|
};
|
|
2856
4295
|
content: {
|
|
2857
|
-
"application/json": components["schemas"]["
|
|
4296
|
+
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
4297
|
+
};
|
|
4298
|
+
};
|
|
4299
|
+
/** @description Bad Request */
|
|
4300
|
+
400: {
|
|
4301
|
+
headers: {
|
|
4302
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4303
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4304
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4305
|
+
[name: string]: unknown;
|
|
4306
|
+
};
|
|
4307
|
+
content: {
|
|
4308
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2858
4309
|
};
|
|
2859
4310
|
};
|
|
2860
4311
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2881,6 +4332,18 @@ export interface paths {
|
|
|
2881
4332
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2882
4333
|
};
|
|
2883
4334
|
};
|
|
4335
|
+
/** @description Not Found */
|
|
4336
|
+
404: {
|
|
4337
|
+
headers: {
|
|
4338
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4339
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4340
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4341
|
+
[name: string]: unknown;
|
|
4342
|
+
};
|
|
4343
|
+
content: {
|
|
4344
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4345
|
+
};
|
|
4346
|
+
};
|
|
2884
4347
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2885
4348
|
429: {
|
|
2886
4349
|
headers: {
|
|
@@ -2903,14 +4366,20 @@ export interface paths {
|
|
|
2903
4366
|
patch?: never;
|
|
2904
4367
|
trace?: never;
|
|
2905
4368
|
};
|
|
2906
|
-
"/api/v1/orgs/{org}/projects/{project}": {
|
|
4369
|
+
"/api/v1/orgs/{org}/projects/{project}/segments/{segment}": {
|
|
2907
4370
|
parameters: {
|
|
2908
4371
|
query?: never;
|
|
2909
4372
|
header?: never;
|
|
2910
4373
|
path?: never;
|
|
2911
4374
|
cookie?: never;
|
|
2912
4375
|
};
|
|
2913
|
-
/**
|
|
4376
|
+
/**
|
|
4377
|
+
* Gets a user segment in the resolved project by key or id.
|
|
4378
|
+
* @description There is no
|
|
4379
|
+
* ListUserSegments-adjacent single-item
|
|
4380
|
+
* query, so this resolves `{segment}` then dispatches ListUserSegmentsQuery
|
|
4381
|
+
* and finds the match — see the type-level remarks for why a list+find is acceptable here.
|
|
4382
|
+
*/
|
|
2914
4383
|
get: {
|
|
2915
4384
|
parameters: {
|
|
2916
4385
|
query?: never;
|
|
@@ -2918,6 +4387,7 @@ export interface paths {
|
|
|
2918
4387
|
path: {
|
|
2919
4388
|
org: string;
|
|
2920
4389
|
project: string;
|
|
4390
|
+
segment: string;
|
|
2921
4391
|
};
|
|
2922
4392
|
cookie?: never;
|
|
2923
4393
|
};
|
|
@@ -2932,7 +4402,7 @@ export interface paths {
|
|
|
2932
4402
|
[name: string]: unknown;
|
|
2933
4403
|
};
|
|
2934
4404
|
content: {
|
|
2935
|
-
"application/json": components["schemas"]["
|
|
4405
|
+
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
2936
4406
|
};
|
|
2937
4407
|
};
|
|
2938
4408
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2976,8 +4446,8 @@ export interface paths {
|
|
|
2976
4446
|
};
|
|
2977
4447
|
};
|
|
2978
4448
|
/**
|
|
2979
|
-
* Updates a
|
|
2980
|
-
* @description Requires at least Member.
|
|
4449
|
+
* Updates a segment's name/description/conditions.
|
|
4450
|
+
* @description Requires at least Member. The segment's key is immutable via this endpoint.
|
|
2981
4451
|
*/
|
|
2982
4452
|
put: {
|
|
2983
4453
|
parameters: {
|
|
@@ -2986,14 +4456,15 @@ export interface paths {
|
|
|
2986
4456
|
path: {
|
|
2987
4457
|
org: string;
|
|
2988
4458
|
project: string;
|
|
4459
|
+
segment: string;
|
|
2989
4460
|
};
|
|
2990
4461
|
cookie?: never;
|
|
2991
4462
|
};
|
|
2992
4463
|
requestBody?: {
|
|
2993
4464
|
content: {
|
|
2994
|
-
"application/json": components["schemas"]["
|
|
2995
|
-
"text/json": components["schemas"]["
|
|
2996
|
-
"application/*+json": components["schemas"]["
|
|
4465
|
+
"application/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
4466
|
+
"text/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
4467
|
+
"application/*+json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
2997
4468
|
};
|
|
2998
4469
|
};
|
|
2999
4470
|
responses: {
|
|
@@ -3007,6 +4478,18 @@ export interface paths {
|
|
|
3007
4478
|
};
|
|
3008
4479
|
content?: never;
|
|
3009
4480
|
};
|
|
4481
|
+
/** @description Bad Request */
|
|
4482
|
+
400: {
|
|
4483
|
+
headers: {
|
|
4484
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4485
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4486
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4487
|
+
[name: string]: unknown;
|
|
4488
|
+
};
|
|
4489
|
+
content: {
|
|
4490
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4491
|
+
};
|
|
4492
|
+
};
|
|
3010
4493
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3011
4494
|
401: {
|
|
3012
4495
|
headers: {
|
|
@@ -3061,7 +4544,7 @@ export interface paths {
|
|
|
3061
4544
|
};
|
|
3062
4545
|
post?: never;
|
|
3063
4546
|
/**
|
|
3064
|
-
* Deletes a
|
|
4547
|
+
* Deletes a user segment.
|
|
3065
4548
|
* @description Requires at least Member.
|
|
3066
4549
|
*/
|
|
3067
4550
|
delete: {
|
|
@@ -3071,6 +4554,7 @@ export interface paths {
|
|
|
3071
4554
|
path: {
|
|
3072
4555
|
org: string;
|
|
3073
4556
|
project: string;
|
|
4557
|
+
segment: string;
|
|
3074
4558
|
};
|
|
3075
4559
|
cookie?: never;
|
|
3076
4560
|
};
|
|
@@ -3143,7 +4627,7 @@ export interface paths {
|
|
|
3143
4627
|
patch?: never;
|
|
3144
4628
|
trace?: never;
|
|
3145
4629
|
};
|
|
3146
|
-
"/api/v1/orgs/{org}/
|
|
4630
|
+
"/api/v1/orgs/{org}/webhooks": {
|
|
3147
4631
|
parameters: {
|
|
3148
4632
|
query?: never;
|
|
3149
4633
|
header?: never;
|
|
@@ -3151,11 +4635,8 @@ export interface paths {
|
|
|
3151
4635
|
cookie?: never;
|
|
3152
4636
|
};
|
|
3153
4637
|
/**
|
|
3154
|
-
* Lists
|
|
3155
|
-
* @description
|
|
3156
|
-
* List, ListSdkKeysQuery has no
|
|
3157
|
-
* `Skip`/`Take` (an environment's key count is small), so this fetches the full
|
|
3158
|
-
* set and pages in-memory to still expose the standard cursor contract.
|
|
4638
|
+
* Lists the organization's webhook subscriptions, oldest first.
|
|
4639
|
+
* @description Requires Admin.
|
|
3159
4640
|
*/
|
|
3160
4641
|
get: {
|
|
3161
4642
|
parameters: {
|
|
@@ -3166,8 +4647,6 @@ export interface paths {
|
|
|
3166
4647
|
header?: never;
|
|
3167
4648
|
path: {
|
|
3168
4649
|
org: string;
|
|
3169
|
-
project: string;
|
|
3170
|
-
env: string;
|
|
3171
4650
|
};
|
|
3172
4651
|
cookie?: never;
|
|
3173
4652
|
};
|
|
@@ -3182,7 +4661,7 @@ export interface paths {
|
|
|
3182
4661
|
[name: string]: unknown;
|
|
3183
4662
|
};
|
|
3184
4663
|
content: {
|
|
3185
|
-
"application/json": components["schemas"]["
|
|
4664
|
+
"application/json": components["schemas"]["PublicWebhookSubscriptionResponsePagedResult"];
|
|
3186
4665
|
};
|
|
3187
4666
|
};
|
|
3188
4667
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3197,6 +4676,18 @@ export interface paths {
|
|
|
3197
4676
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3198
4677
|
};
|
|
3199
4678
|
};
|
|
4679
|
+
/** @description Forbidden */
|
|
4680
|
+
403: {
|
|
4681
|
+
headers: {
|
|
4682
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4683
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4684
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4685
|
+
[name: string]: unknown;
|
|
4686
|
+
};
|
|
4687
|
+
content: {
|
|
4688
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4689
|
+
};
|
|
4690
|
+
};
|
|
3200
4691
|
/** @description Not Found */
|
|
3201
4692
|
404: {
|
|
3202
4693
|
headers: {
|
|
@@ -3227,9 +4718,9 @@ export interface paths {
|
|
|
3227
4718
|
};
|
|
3228
4719
|
put?: never;
|
|
3229
4720
|
/**
|
|
3230
|
-
* Creates
|
|
3231
|
-
* @description Requires
|
|
3232
|
-
*
|
|
4721
|
+
* Creates a webhook subscription.
|
|
4722
|
+
* @description Requires Admin. The response carries the signing secret,
|
|
4723
|
+
* which is never shown again. Supports the `Idempotency-Key` header.
|
|
3233
4724
|
*/
|
|
3234
4725
|
post: {
|
|
3235
4726
|
parameters: {
|
|
@@ -3237,16 +4728,14 @@ export interface paths {
|
|
|
3237
4728
|
header?: never;
|
|
3238
4729
|
path: {
|
|
3239
4730
|
org: string;
|
|
3240
|
-
project: string;
|
|
3241
|
-
env: string;
|
|
3242
4731
|
};
|
|
3243
4732
|
cookie?: never;
|
|
3244
4733
|
};
|
|
3245
4734
|
requestBody?: {
|
|
3246
4735
|
content: {
|
|
3247
|
-
"application/json": components["schemas"]["
|
|
3248
|
-
"text/json": components["schemas"]["
|
|
3249
|
-
"application/*+json": components["schemas"]["
|
|
4736
|
+
"application/json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
4737
|
+
"text/json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
4738
|
+
"application/*+json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
3250
4739
|
};
|
|
3251
4740
|
};
|
|
3252
4741
|
responses: {
|
|
@@ -3259,7 +4748,7 @@ export interface paths {
|
|
|
3259
4748
|
[name: string]: unknown;
|
|
3260
4749
|
};
|
|
3261
4750
|
content: {
|
|
3262
|
-
"application/json": components["schemas"]["
|
|
4751
|
+
"application/json": components["schemas"]["PublicCreateWebhookSubscriptionResponse"];
|
|
3263
4752
|
};
|
|
3264
4753
|
};
|
|
3265
4754
|
/** @description Bad Request */
|
|
@@ -3332,23 +4821,23 @@ export interface paths {
|
|
|
3332
4821
|
patch?: never;
|
|
3333
4822
|
trace?: never;
|
|
3334
4823
|
};
|
|
3335
|
-
"/api/v1/orgs/{org}/
|
|
4824
|
+
"/api/v1/orgs/{org}/webhooks/event-types": {
|
|
3336
4825
|
parameters: {
|
|
3337
4826
|
query?: never;
|
|
3338
4827
|
header?: never;
|
|
3339
4828
|
path?: never;
|
|
3340
4829
|
cookie?: never;
|
|
3341
4830
|
};
|
|
3342
|
-
/**
|
|
4831
|
+
/**
|
|
4832
|
+
* Lists the event types a subscription can filter on.
|
|
4833
|
+
* @description Requires Admin.
|
|
4834
|
+
*/
|
|
3343
4835
|
get: {
|
|
3344
4836
|
parameters: {
|
|
3345
4837
|
query?: never;
|
|
3346
4838
|
header?: never;
|
|
3347
4839
|
path: {
|
|
3348
4840
|
org: string;
|
|
3349
|
-
project: string;
|
|
3350
|
-
env: string;
|
|
3351
|
-
sdkKey: string;
|
|
3352
4841
|
};
|
|
3353
4842
|
cookie?: never;
|
|
3354
4843
|
};
|
|
@@ -3363,7 +4852,7 @@ export interface paths {
|
|
|
3363
4852
|
[name: string]: unknown;
|
|
3364
4853
|
};
|
|
3365
4854
|
content: {
|
|
3366
|
-
"application/json":
|
|
4855
|
+
"application/json": string[];
|
|
3367
4856
|
};
|
|
3368
4857
|
};
|
|
3369
4858
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3378,6 +4867,18 @@ export interface paths {
|
|
|
3378
4867
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3379
4868
|
};
|
|
3380
4869
|
};
|
|
4870
|
+
/** @description Forbidden */
|
|
4871
|
+
403: {
|
|
4872
|
+
headers: {
|
|
4873
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4874
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4875
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4876
|
+
[name: string]: unknown;
|
|
4877
|
+
};
|
|
4878
|
+
content: {
|
|
4879
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4880
|
+
};
|
|
4881
|
+
};
|
|
3381
4882
|
/** @description Not Found */
|
|
3382
4883
|
404: {
|
|
3383
4884
|
headers: {
|
|
@@ -3406,9 +4907,105 @@ export interface paths {
|
|
|
3406
4907
|
};
|
|
3407
4908
|
};
|
|
3408
4909
|
};
|
|
4910
|
+
put?: never;
|
|
4911
|
+
post?: never;
|
|
4912
|
+
delete?: never;
|
|
4913
|
+
options?: never;
|
|
4914
|
+
head?: never;
|
|
4915
|
+
patch?: never;
|
|
4916
|
+
trace?: never;
|
|
4917
|
+
};
|
|
4918
|
+
"/api/v1/orgs/{org}/webhooks/{id}": {
|
|
4919
|
+
parameters: {
|
|
4920
|
+
query?: never;
|
|
4921
|
+
header?: never;
|
|
4922
|
+
path?: never;
|
|
4923
|
+
cookie?: never;
|
|
4924
|
+
};
|
|
3409
4925
|
/**
|
|
3410
|
-
*
|
|
3411
|
-
* @description Requires
|
|
4926
|
+
* Gets a webhook subscription by id.
|
|
4927
|
+
* @description Requires Admin. Never returns secret values.
|
|
4928
|
+
*/
|
|
4929
|
+
get: {
|
|
4930
|
+
parameters: {
|
|
4931
|
+
query?: never;
|
|
4932
|
+
header?: never;
|
|
4933
|
+
path: {
|
|
4934
|
+
org: string;
|
|
4935
|
+
id: string;
|
|
4936
|
+
};
|
|
4937
|
+
cookie?: never;
|
|
4938
|
+
};
|
|
4939
|
+
requestBody?: never;
|
|
4940
|
+
responses: {
|
|
4941
|
+
/** @description OK */
|
|
4942
|
+
200: {
|
|
4943
|
+
headers: {
|
|
4944
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4945
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4946
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4947
|
+
[name: string]: unknown;
|
|
4948
|
+
};
|
|
4949
|
+
content: {
|
|
4950
|
+
"application/json": components["schemas"]["PublicWebhookSubscriptionResponse"];
|
|
4951
|
+
};
|
|
4952
|
+
};
|
|
4953
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
4954
|
+
401: {
|
|
4955
|
+
headers: {
|
|
4956
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4957
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4958
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4959
|
+
[name: string]: unknown;
|
|
4960
|
+
};
|
|
4961
|
+
content: {
|
|
4962
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4963
|
+
};
|
|
4964
|
+
};
|
|
4965
|
+
/** @description Forbidden */
|
|
4966
|
+
403: {
|
|
4967
|
+
headers: {
|
|
4968
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4969
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4970
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4971
|
+
[name: string]: unknown;
|
|
4972
|
+
};
|
|
4973
|
+
content: {
|
|
4974
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4975
|
+
};
|
|
4976
|
+
};
|
|
4977
|
+
/** @description Not Found */
|
|
4978
|
+
404: {
|
|
4979
|
+
headers: {
|
|
4980
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4981
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4982
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4983
|
+
[name: string]: unknown;
|
|
4984
|
+
};
|
|
4985
|
+
content: {
|
|
4986
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4987
|
+
};
|
|
4988
|
+
};
|
|
4989
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4990
|
+
429: {
|
|
4991
|
+
headers: {
|
|
4992
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
4993
|
+
"Retry-After"?: number;
|
|
4994
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4995
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4996
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4997
|
+
[name: string]: unknown;
|
|
4998
|
+
};
|
|
4999
|
+
content: {
|
|
5000
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5001
|
+
};
|
|
5002
|
+
};
|
|
5003
|
+
};
|
|
5004
|
+
};
|
|
5005
|
+
/**
|
|
5006
|
+
* Replaces a webhook subscription's configuration.
|
|
5007
|
+
* @description Requires Admin. Omitted lists become empty,
|
|
5008
|
+
* which means "all".
|
|
3412
5009
|
*/
|
|
3413
5010
|
put: {
|
|
3414
5011
|
parameters: {
|
|
@@ -3416,17 +5013,15 @@ export interface paths {
|
|
|
3416
5013
|
header?: never;
|
|
3417
5014
|
path: {
|
|
3418
5015
|
org: string;
|
|
3419
|
-
|
|
3420
|
-
env: string;
|
|
3421
|
-
sdkKey: string;
|
|
5016
|
+
id: string;
|
|
3422
5017
|
};
|
|
3423
5018
|
cookie?: never;
|
|
3424
5019
|
};
|
|
3425
5020
|
requestBody?: {
|
|
3426
5021
|
content: {
|
|
3427
|
-
"application/json": components["schemas"]["
|
|
3428
|
-
"text/json": components["schemas"]["
|
|
3429
|
-
"application/*+json": components["schemas"]["
|
|
5022
|
+
"application/json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
5023
|
+
"text/json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
5024
|
+
"application/*+json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
3430
5025
|
};
|
|
3431
5026
|
};
|
|
3432
5027
|
responses: {
|
|
@@ -3440,6 +5035,18 @@ export interface paths {
|
|
|
3440
5035
|
};
|
|
3441
5036
|
content?: never;
|
|
3442
5037
|
};
|
|
5038
|
+
/** @description Bad Request */
|
|
5039
|
+
400: {
|
|
5040
|
+
headers: {
|
|
5041
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5042
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5043
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5044
|
+
[name: string]: unknown;
|
|
5045
|
+
};
|
|
5046
|
+
content: {
|
|
5047
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5048
|
+
};
|
|
5049
|
+
};
|
|
3443
5050
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3444
5051
|
401: {
|
|
3445
5052
|
headers: {
|
|
@@ -3493,34 +5100,17 @@ export interface paths {
|
|
|
3493
5100
|
};
|
|
3494
5101
|
};
|
|
3495
5102
|
post?: never;
|
|
3496
|
-
delete?: never;
|
|
3497
|
-
options?: never;
|
|
3498
|
-
head?: never;
|
|
3499
|
-
patch?: never;
|
|
3500
|
-
trace?: never;
|
|
3501
|
-
};
|
|
3502
|
-
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}/revoke": {
|
|
3503
|
-
parameters: {
|
|
3504
|
-
query?: never;
|
|
3505
|
-
header?: never;
|
|
3506
|
-
path?: never;
|
|
3507
|
-
cookie?: never;
|
|
3508
|
-
};
|
|
3509
|
-
get?: never;
|
|
3510
|
-
put?: never;
|
|
3511
5103
|
/**
|
|
3512
|
-
*
|
|
3513
|
-
* @description Requires
|
|
5104
|
+
* Deletes a webhook subscription with its secrets and delivery log.
|
|
5105
|
+
* @description Requires Admin.
|
|
3514
5106
|
*/
|
|
3515
|
-
|
|
5107
|
+
delete: {
|
|
3516
5108
|
parameters: {
|
|
3517
5109
|
query?: never;
|
|
3518
5110
|
header?: never;
|
|
3519
5111
|
path: {
|
|
3520
5112
|
org: string;
|
|
3521
|
-
|
|
3522
|
-
env: string;
|
|
3523
|
-
sdkKey: string;
|
|
5113
|
+
id: string;
|
|
3524
5114
|
};
|
|
3525
5115
|
cookie?: never;
|
|
3526
5116
|
};
|
|
@@ -3588,43 +5178,41 @@ export interface paths {
|
|
|
3588
5178
|
};
|
|
3589
5179
|
};
|
|
3590
5180
|
};
|
|
3591
|
-
delete?: never;
|
|
3592
5181
|
options?: never;
|
|
3593
5182
|
head?: never;
|
|
3594
5183
|
patch?: never;
|
|
3595
5184
|
trace?: never;
|
|
3596
5185
|
};
|
|
3597
|
-
"/api/v1/orgs/{org}/
|
|
5186
|
+
"/api/v1/orgs/{org}/webhooks/{id}/secrets": {
|
|
3598
5187
|
parameters: {
|
|
3599
5188
|
query?: never;
|
|
3600
5189
|
header?: never;
|
|
3601
5190
|
path?: never;
|
|
3602
5191
|
cookie?: never;
|
|
3603
5192
|
};
|
|
5193
|
+
get?: never;
|
|
5194
|
+
put?: never;
|
|
3604
5195
|
/**
|
|
3605
|
-
*
|
|
3606
|
-
* @description
|
|
3607
|
-
*
|
|
3608
|
-
*
|
|
3609
|
-
*
|
|
5196
|
+
* Adds a new active signing secret.
|
|
5197
|
+
* @description Requires Admin. The previous secret keeps signing until
|
|
5198
|
+
* you retire it, so receivers can switch over without dropping deliveries. The response
|
|
5199
|
+
* carries the new secret, which is never shown again. Supports the `Idempotency-Key`
|
|
5200
|
+
* header.
|
|
3610
5201
|
*/
|
|
3611
|
-
|
|
5202
|
+
post: {
|
|
3612
5203
|
parameters: {
|
|
3613
|
-
query?:
|
|
3614
|
-
limit?: number;
|
|
3615
|
-
cursor?: string;
|
|
3616
|
-
};
|
|
5204
|
+
query?: never;
|
|
3617
5205
|
header?: never;
|
|
3618
5206
|
path: {
|
|
3619
5207
|
org: string;
|
|
3620
|
-
|
|
5208
|
+
id: string;
|
|
3621
5209
|
};
|
|
3622
5210
|
cookie?: never;
|
|
3623
5211
|
};
|
|
3624
5212
|
requestBody?: never;
|
|
3625
5213
|
responses: {
|
|
3626
|
-
/** @description
|
|
3627
|
-
|
|
5214
|
+
/** @description Created */
|
|
5215
|
+
201: {
|
|
3628
5216
|
headers: {
|
|
3629
5217
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3630
5218
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3632,7 +5220,7 @@ export interface paths {
|
|
|
3632
5220
|
[name: string]: unknown;
|
|
3633
5221
|
};
|
|
3634
5222
|
content: {
|
|
3635
|
-
"application/json": components["schemas"]["
|
|
5223
|
+
"application/json": components["schemas"]["PublicRotateWebhookSecretResponse"];
|
|
3636
5224
|
};
|
|
3637
5225
|
};
|
|
3638
5226
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3647,6 +5235,18 @@ export interface paths {
|
|
|
3647
5235
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3648
5236
|
};
|
|
3649
5237
|
};
|
|
5238
|
+
/** @description Forbidden */
|
|
5239
|
+
403: {
|
|
5240
|
+
headers: {
|
|
5241
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5242
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5243
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5244
|
+
[name: string]: unknown;
|
|
5245
|
+
};
|
|
5246
|
+
content: {
|
|
5247
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5248
|
+
};
|
|
5249
|
+
};
|
|
3650
5250
|
/** @description Not Found */
|
|
3651
5251
|
404: {
|
|
3652
5252
|
headers: {
|
|
@@ -3675,44 +5275,49 @@ export interface paths {
|
|
|
3675
5275
|
};
|
|
3676
5276
|
};
|
|
3677
5277
|
};
|
|
5278
|
+
delete?: never;
|
|
5279
|
+
options?: never;
|
|
5280
|
+
head?: never;
|
|
5281
|
+
patch?: never;
|
|
5282
|
+
trace?: never;
|
|
5283
|
+
};
|
|
5284
|
+
"/api/v1/orgs/{org}/webhooks/{id}/secrets/{secretId}": {
|
|
5285
|
+
parameters: {
|
|
5286
|
+
query?: never;
|
|
5287
|
+
header?: never;
|
|
5288
|
+
path?: never;
|
|
5289
|
+
cookie?: never;
|
|
5290
|
+
};
|
|
5291
|
+
get?: never;
|
|
3678
5292
|
put?: never;
|
|
5293
|
+
post?: never;
|
|
3679
5294
|
/**
|
|
3680
|
-
*
|
|
3681
|
-
* @description Requires
|
|
3682
|
-
*
|
|
3683
|
-
* segment by the id returned from CreateUserSegmentCommand so the response
|
|
3684
|
-
* reflects exactly what was persisted (e.g. server-assigned condition ids, folded into the
|
|
3685
|
-
* public shape via FromDto).
|
|
5295
|
+
* Retires a signing secret.
|
|
5296
|
+
* @description Requires Admin. Refused with a 400 when it is the subscription's
|
|
5297
|
+
* last active secret — rotate first.
|
|
3686
5298
|
*/
|
|
3687
|
-
|
|
5299
|
+
delete: {
|
|
3688
5300
|
parameters: {
|
|
3689
5301
|
query?: never;
|
|
3690
5302
|
header?: never;
|
|
3691
5303
|
path: {
|
|
3692
5304
|
org: string;
|
|
3693
|
-
|
|
5305
|
+
id: string;
|
|
5306
|
+
secretId: string;
|
|
3694
5307
|
};
|
|
3695
5308
|
cookie?: never;
|
|
3696
5309
|
};
|
|
3697
|
-
requestBody?:
|
|
3698
|
-
content: {
|
|
3699
|
-
"application/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3700
|
-
"text/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3701
|
-
"application/*+json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3702
|
-
};
|
|
3703
|
-
};
|
|
5310
|
+
requestBody?: never;
|
|
3704
5311
|
responses: {
|
|
3705
|
-
/** @description
|
|
3706
|
-
|
|
5312
|
+
/** @description No Content */
|
|
5313
|
+
204: {
|
|
3707
5314
|
headers: {
|
|
3708
5315
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3709
5316
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3710
5317
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3711
5318
|
[name: string]: unknown;
|
|
3712
5319
|
};
|
|
3713
|
-
content
|
|
3714
|
-
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
3715
|
-
};
|
|
5320
|
+
content?: never;
|
|
3716
5321
|
};
|
|
3717
5322
|
/** @description Bad Request */
|
|
3718
5323
|
400: {
|
|
@@ -3778,41 +5383,40 @@ export interface paths {
|
|
|
3778
5383
|
};
|
|
3779
5384
|
};
|
|
3780
5385
|
};
|
|
3781
|
-
delete?: never;
|
|
3782
5386
|
options?: never;
|
|
3783
5387
|
head?: never;
|
|
3784
5388
|
patch?: never;
|
|
3785
5389
|
trace?: never;
|
|
3786
5390
|
};
|
|
3787
|
-
"/api/v1/orgs/{org}/
|
|
5391
|
+
"/api/v1/orgs/{org}/webhooks/{id}/test": {
|
|
3788
5392
|
parameters: {
|
|
3789
5393
|
query?: never;
|
|
3790
5394
|
header?: never;
|
|
3791
5395
|
path?: never;
|
|
3792
5396
|
cookie?: never;
|
|
3793
5397
|
};
|
|
5398
|
+
get?: never;
|
|
5399
|
+
put?: never;
|
|
3794
5400
|
/**
|
|
3795
|
-
*
|
|
3796
|
-
* @description
|
|
3797
|
-
*
|
|
3798
|
-
*
|
|
3799
|
-
* and finds the match — see the type-level remarks for why a list+find is acceptable here.
|
|
5401
|
+
* Queues one synthetic `flag.toggled` event for this subscription alone.
|
|
5402
|
+
* @description Requires Admin.
|
|
5403
|
+
* Delivery is asynchronous — read the delivery log for the outcome. Refused with a 400 when
|
|
5404
|
+
* the subscription is disabled.
|
|
3800
5405
|
*/
|
|
3801
|
-
|
|
5406
|
+
post: {
|
|
3802
5407
|
parameters: {
|
|
3803
5408
|
query?: never;
|
|
3804
5409
|
header?: never;
|
|
3805
5410
|
path: {
|
|
3806
5411
|
org: string;
|
|
3807
|
-
|
|
3808
|
-
segment: string;
|
|
5412
|
+
id: string;
|
|
3809
5413
|
};
|
|
3810
5414
|
cookie?: never;
|
|
3811
5415
|
};
|
|
3812
5416
|
requestBody?: never;
|
|
3813
5417
|
responses: {
|
|
3814
|
-
/** @description
|
|
3815
|
-
|
|
5418
|
+
/** @description Accepted */
|
|
5419
|
+
202: {
|
|
3816
5420
|
headers: {
|
|
3817
5421
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3818
5422
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3820,7 +5424,19 @@ export interface paths {
|
|
|
3820
5424
|
[name: string]: unknown;
|
|
3821
5425
|
};
|
|
3822
5426
|
content: {
|
|
3823
|
-
"application/json": components["schemas"]["
|
|
5427
|
+
"application/json": components["schemas"]["PublicTestWebhookSubscriptionResponse"];
|
|
5428
|
+
};
|
|
5429
|
+
};
|
|
5430
|
+
/** @description Bad Request */
|
|
5431
|
+
400: {
|
|
5432
|
+
headers: {
|
|
5433
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5434
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5435
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5436
|
+
[name: string]: unknown;
|
|
5437
|
+
};
|
|
5438
|
+
content: {
|
|
5439
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3824
5440
|
};
|
|
3825
5441
|
};
|
|
3826
5442
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3835,6 +5451,18 @@ export interface paths {
|
|
|
3835
5451
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3836
5452
|
};
|
|
3837
5453
|
};
|
|
5454
|
+
/** @description Forbidden */
|
|
5455
|
+
403: {
|
|
5456
|
+
headers: {
|
|
5457
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5458
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5459
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5460
|
+
[name: string]: unknown;
|
|
5461
|
+
};
|
|
5462
|
+
content: {
|
|
5463
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5464
|
+
};
|
|
5465
|
+
};
|
|
3838
5466
|
/** @description Not Found */
|
|
3839
5467
|
404: {
|
|
3840
5468
|
headers: {
|
|
@@ -3863,41 +5491,40 @@ export interface paths {
|
|
|
3863
5491
|
};
|
|
3864
5492
|
};
|
|
3865
5493
|
};
|
|
5494
|
+
delete?: never;
|
|
5495
|
+
options?: never;
|
|
5496
|
+
head?: never;
|
|
5497
|
+
patch?: never;
|
|
5498
|
+
trace?: never;
|
|
5499
|
+
};
|
|
5500
|
+
"/api/v1/orgs/{org}/webhooks/{id}/deliveries": {
|
|
5501
|
+
parameters: {
|
|
5502
|
+
query?: never;
|
|
5503
|
+
header?: never;
|
|
5504
|
+
path?: never;
|
|
5505
|
+
cookie?: never;
|
|
5506
|
+
};
|
|
3866
5507
|
/**
|
|
3867
|
-
*
|
|
3868
|
-
* @description Requires
|
|
5508
|
+
* Lists a subscription's delivery attempts, most recent first.
|
|
5509
|
+
* @description Requires Admin.
|
|
3869
5510
|
*/
|
|
3870
|
-
|
|
5511
|
+
get: {
|
|
3871
5512
|
parameters: {
|
|
3872
|
-
query?:
|
|
5513
|
+
query?: {
|
|
5514
|
+
limit?: number;
|
|
5515
|
+
cursor?: string;
|
|
5516
|
+
};
|
|
3873
5517
|
header?: never;
|
|
3874
5518
|
path: {
|
|
3875
5519
|
org: string;
|
|
3876
|
-
|
|
3877
|
-
segment: string;
|
|
5520
|
+
id: string;
|
|
3878
5521
|
};
|
|
3879
5522
|
cookie?: never;
|
|
3880
5523
|
};
|
|
3881
|
-
requestBody?:
|
|
3882
|
-
content: {
|
|
3883
|
-
"application/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3884
|
-
"text/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3885
|
-
"application/*+json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3886
|
-
};
|
|
3887
|
-
};
|
|
5524
|
+
requestBody?: never;
|
|
3888
5525
|
responses: {
|
|
3889
|
-
/** @description
|
|
3890
|
-
|
|
3891
|
-
headers: {
|
|
3892
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3893
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3894
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3895
|
-
[name: string]: unknown;
|
|
3896
|
-
};
|
|
3897
|
-
content?: never;
|
|
3898
|
-
};
|
|
3899
|
-
/** @description Bad Request */
|
|
3900
|
-
400: {
|
|
5526
|
+
/** @description OK */
|
|
5527
|
+
200: {
|
|
3901
5528
|
headers: {
|
|
3902
5529
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3903
5530
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3905,7 +5532,7 @@ export interface paths {
|
|
|
3905
5532
|
[name: string]: unknown;
|
|
3906
5533
|
};
|
|
3907
5534
|
content: {
|
|
3908
|
-
"application/json": components["schemas"]["
|
|
5535
|
+
"application/json": components["schemas"]["PublicWebhookDeliveryResponsePagedResult"];
|
|
3909
5536
|
};
|
|
3910
5537
|
};
|
|
3911
5538
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3960,19 +5587,37 @@ export interface paths {
|
|
|
3960
5587
|
};
|
|
3961
5588
|
};
|
|
3962
5589
|
};
|
|
5590
|
+
put?: never;
|
|
3963
5591
|
post?: never;
|
|
5592
|
+
delete?: never;
|
|
5593
|
+
options?: never;
|
|
5594
|
+
head?: never;
|
|
5595
|
+
patch?: never;
|
|
5596
|
+
trace?: never;
|
|
5597
|
+
};
|
|
5598
|
+
"/api/v1/orgs/{org}/webhooks/{id}/deliveries/{deliveryId}/redeliver": {
|
|
5599
|
+
parameters: {
|
|
5600
|
+
query?: never;
|
|
5601
|
+
header?: never;
|
|
5602
|
+
path?: never;
|
|
5603
|
+
cookie?: never;
|
|
5604
|
+
};
|
|
5605
|
+
get?: never;
|
|
5606
|
+
put?: never;
|
|
3964
5607
|
/**
|
|
3965
|
-
*
|
|
3966
|
-
* @description Requires
|
|
5608
|
+
* Queues a finished delivery (succeeded or dead-lettered) to be sent again, restarting its retry schedule.
|
|
5609
|
+
* @description Requires Admin. Refused with a 400 when the delivery is still pending, when
|
|
5610
|
+
* the subscription is disabled, or when the subscription's current project, environment or
|
|
5611
|
+
* event-type filters no longer cover the delivery's event.
|
|
3967
5612
|
*/
|
|
3968
|
-
|
|
5613
|
+
post: {
|
|
3969
5614
|
parameters: {
|
|
3970
5615
|
query?: never;
|
|
3971
5616
|
header?: never;
|
|
3972
5617
|
path: {
|
|
3973
5618
|
org: string;
|
|
3974
|
-
|
|
3975
|
-
|
|
5619
|
+
id: string;
|
|
5620
|
+
deliveryId: string;
|
|
3976
5621
|
};
|
|
3977
5622
|
cookie?: never;
|
|
3978
5623
|
};
|
|
@@ -3988,6 +5633,18 @@ export interface paths {
|
|
|
3988
5633
|
};
|
|
3989
5634
|
content?: never;
|
|
3990
5635
|
};
|
|
5636
|
+
/** @description Bad Request */
|
|
5637
|
+
400: {
|
|
5638
|
+
headers: {
|
|
5639
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5640
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5641
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5642
|
+
[name: string]: unknown;
|
|
5643
|
+
};
|
|
5644
|
+
content: {
|
|
5645
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5646
|
+
};
|
|
5647
|
+
};
|
|
3991
5648
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3992
5649
|
401: {
|
|
3993
5650
|
headers: {
|
|
@@ -4040,6 +5697,7 @@ export interface paths {
|
|
|
4040
5697
|
};
|
|
4041
5698
|
};
|
|
4042
5699
|
};
|
|
5700
|
+
delete?: never;
|
|
4043
5701
|
options?: never;
|
|
4044
5702
|
head?: never;
|
|
4045
5703
|
patch?: never;
|
|
@@ -4092,10 +5750,10 @@ export interface components {
|
|
|
4092
5750
|
name?: string | null;
|
|
4093
5751
|
slug?: string | null;
|
|
4094
5752
|
/**
|
|
4095
|
-
* @description Allowed values: Solo, Pro, Business, Enterprise.
|
|
5753
|
+
* @description Allowed values: Solo, Team, Pro, Business, Enterprise.
|
|
4096
5754
|
* @enum {string|null}
|
|
4097
5755
|
*/
|
|
4098
|
-
plan?: "Solo" | "Pro" | "Business" | "Enterprise" | null;
|
|
5756
|
+
plan?: "Solo" | "Team" | "Pro" | "Business" | "Enterprise" | null;
|
|
4099
5757
|
isActive?: boolean;
|
|
4100
5758
|
/** Format: date-time */
|
|
4101
5759
|
createdAt?: string;
|
|
@@ -4183,9 +5841,13 @@ export interface components {
|
|
|
4183
5841
|
* `docsUrl`/`retryAfter`, breaking the published spec. !:JsonPropertyName
|
|
4184
5842
|
* always wins over the policy, so these are pinned explicitly rather than relying on the
|
|
4185
5843
|
* property names already being lowercase for the single-word ones.
|
|
4186
|
-
* `did_you_mean` and `
|
|
4187
|
-
* the global `DefaultIgnoreCondition = WhenWritingNull`), so
|
|
4188
|
-
* are byte-for-byte unchanged when they're absent.
|
|
5844
|
+
* `did_you_mean`, `next_actions` and `connection_id` are ADDITIVE optional keys
|
|
5845
|
+
* (null → omitted via the global `DefaultIgnoreCondition = WhenWritingNull`), so
|
|
5846
|
+
* pre-existing error bodies are byte-for-byte unchanged when they're absent.
|
|
5847
|
+
*
|
|
5848
|
+
* `connection_id` is present only on the `sso_required` error: the organization
|
|
5849
|
+
* requires single sign-on, and this credential didn't come through its identity provider.
|
|
5850
|
+
* `connection_id` identifies which SSO connection to sign in with.
|
|
4189
5851
|
* @example {
|
|
4190
5852
|
* "error": "not_found",
|
|
4191
5853
|
* "message": "Flag 'new-checkout-flw' was not found in project 'checkout'.",
|
|
@@ -4212,6 +5874,8 @@ export interface components {
|
|
|
4212
5874
|
retry_after?: number | null;
|
|
4213
5875
|
did_you_mean?: string[] | null;
|
|
4214
5876
|
next_actions?: components["schemas"]["NextAction"][] | null;
|
|
5877
|
+
/** Format: uuid */
|
|
5878
|
+
connection_id?: string | null;
|
|
4215
5879
|
};
|
|
4216
5880
|
/** @description Request-side condition group, symmetric with PublicConditionGroupResponse. */
|
|
4217
5881
|
PublicConditionGroupRequest: {
|
|
@@ -4290,7 +5954,13 @@ export interface components {
|
|
|
4290
5954
|
* schemaId-collision rationale (both controllers share one Swagger document). Type
|
|
4291
5955
|
* is passed through verbatim to Type, which itself takes a
|
|
4292
5956
|
* bare string (Boolean/String/Number/Json) rather than the domain enum — invalid values surface
|
|
4293
|
-
* as the handler's own validation failure, not a controller-level 400.
|
|
5957
|
+
* as the handler's own validation failure, not a controller-level 400. ExpiresAtUtc is
|
|
5958
|
+
* optional and advisory; a bare date (`2026-12-01`) means the end of that day in UTC, and a full
|
|
5959
|
+
* timestamp is stored exactly. It must be in the future and requires the flag-expiration feature
|
|
5960
|
+
* (400 `EXPIRY_IN_PAST` / `FEATURE_NOT_ENABLED`). OwnerEmail optionally names
|
|
5961
|
+
* the owner (an active member, matched case-insensitively; requires the flag-ownership feature —
|
|
5962
|
+
* 400 `OWNER_NOT_MEMBER` / `FEATURE_NOT_ENABLED`). Omitted, the owner is the caller when
|
|
5963
|
+
* the caller is a member, so a service token creates an unowned flag.
|
|
4294
5964
|
* @example {
|
|
4295
5965
|
* "key": "new-checkout-flow",
|
|
4296
5966
|
* "name": "New Checkout Flow",
|
|
@@ -4329,6 +5999,9 @@ export interface components {
|
|
|
4329
5999
|
tags?: string[] | null;
|
|
4330
6000
|
initialVariations?: components["schemas"]["PublicCreateVariationDto"][] | null;
|
|
4331
6001
|
clientSideVisible?: boolean;
|
|
6002
|
+
/** Format: date-time */
|
|
6003
|
+
expiresAtUtc?: string | null;
|
|
6004
|
+
ownerEmail?: string | null;
|
|
4332
6005
|
};
|
|
4333
6006
|
/**
|
|
4334
6007
|
* @description Request body for `POST /api/v1/orgs/{org}/projects`. Named distinctly from the
|
|
@@ -4479,6 +6152,53 @@ export interface components {
|
|
|
4479
6152
|
value?: string | null;
|
|
4480
6153
|
description?: string | null;
|
|
4481
6154
|
};
|
|
6155
|
+
/**
|
|
6156
|
+
* @description Creates a webhook subscription. `provider` is `GenericHttp`. Omit `eventTypes`,
|
|
6157
|
+
* `projectIds` or `environmentIds` (or send an empty list) to receive every event,
|
|
6158
|
+
* project or environment. A token restricted to specific projects must list at least one project,
|
|
6159
|
+
* all of them within its allowlist.
|
|
6160
|
+
* @example {
|
|
6161
|
+
* "name": "Checkout flag changes to Slack relay",
|
|
6162
|
+
* "url": "https://hooks.acme.example/featureflip",
|
|
6163
|
+
* "provider": "GenericHttp",
|
|
6164
|
+
* "eventTypes": [
|
|
6165
|
+
* "flag.toggled",
|
|
6166
|
+
* "flag.updated"
|
|
6167
|
+
* ],
|
|
6168
|
+
* "projectIds": [
|
|
6169
|
+
* "0197b69f-1a2b-7c3d-8e4f-5a6b7c8d9e0f"
|
|
6170
|
+
* ],
|
|
6171
|
+
* "environmentIds": [
|
|
6172
|
+
* "0197b69f-2b3c-7d4e-9f5a-6b7c8d9e0f1a"
|
|
6173
|
+
* ]
|
|
6174
|
+
* }
|
|
6175
|
+
*/
|
|
6176
|
+
PublicCreateWebhookSubscriptionRequest: {
|
|
6177
|
+
name?: string | null;
|
|
6178
|
+
url?: string | null;
|
|
6179
|
+
/**
|
|
6180
|
+
* @description Allowed values: GenericHttp.
|
|
6181
|
+
* @enum {string|null}
|
|
6182
|
+
*/
|
|
6183
|
+
provider?: "GenericHttp" | null;
|
|
6184
|
+
eventTypes?: string[] | null;
|
|
6185
|
+
projectIds?: string[] | null;
|
|
6186
|
+
environmentIds?: string[] | null;
|
|
6187
|
+
};
|
|
6188
|
+
/**
|
|
6189
|
+
* @description The created subscription's id and its signing secret. The secret is shown only here.
|
|
6190
|
+
* @example {
|
|
6191
|
+
* "id": "0197b6a4-6f7a-7b8c-9d0e-1f2a3b4c5d6e",
|
|
6192
|
+
* "secret": "whsec_q2Vb8XJ1s0mYpZ4tK7wRr3uN9cL6aD5eF1gH2iJ3kL4=",
|
|
6193
|
+
* "warning": "Store this secret securely — it will not be shown again."
|
|
6194
|
+
* }
|
|
6195
|
+
*/
|
|
6196
|
+
PublicCreateWebhookSubscriptionResponse: {
|
|
6197
|
+
/** Format: uuid */
|
|
6198
|
+
id?: string;
|
|
6199
|
+
secret?: string | null;
|
|
6200
|
+
warning?: string | null;
|
|
6201
|
+
};
|
|
4482
6202
|
/**
|
|
4483
6203
|
* @description Public representation of an environment, returned by
|
|
4484
6204
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments` (list),
|
|
@@ -4588,6 +6308,10 @@ export interface components {
|
|
|
4588
6308
|
createdAt?: string;
|
|
4589
6309
|
/** Format: date-time */
|
|
4590
6310
|
updatedAt?: string;
|
|
6311
|
+
/** Format: date-time */
|
|
6312
|
+
expiresAtUtc?: string | null;
|
|
6313
|
+
owner?: components["schemas"]["PublicFlagOwner"];
|
|
6314
|
+
removalPrUrl?: string | null;
|
|
4591
6315
|
};
|
|
4592
6316
|
/**
|
|
4593
6317
|
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
@@ -4621,6 +6345,13 @@ export interface components {
|
|
|
4621
6345
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4622
6346
|
};
|
|
4623
6347
|
};
|
|
6348
|
+
/** @description A flag's owner as returned on flag reads. Null means the flag is unowned. */
|
|
6349
|
+
PublicFlagOwner: {
|
|
6350
|
+
/** Format: uuid */
|
|
6351
|
+
id?: string;
|
|
6352
|
+
email?: string | null;
|
|
6353
|
+
name?: string | null;
|
|
6354
|
+
};
|
|
4624
6355
|
/**
|
|
4625
6356
|
* @description One dead flag the Featureflip Flag Cleanup Action should remove, returned by
|
|
4626
6357
|
* `GET .../flags/removal-candidates`. `Treatment` is the kill decision: true → keep the
|
|
@@ -4701,6 +6432,10 @@ export interface components {
|
|
|
4701
6432
|
createdAt?: string;
|
|
4702
6433
|
/** Format: date-time */
|
|
4703
6434
|
updatedAt?: string;
|
|
6435
|
+
/** Format: date-time */
|
|
6436
|
+
expiresAtUtc?: string | null;
|
|
6437
|
+
owner?: components["schemas"]["PublicFlagOwner"];
|
|
6438
|
+
removalPrUrl?: string | null;
|
|
4704
6439
|
/** @description Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it. */
|
|
4705
6440
|
_actions?: {
|
|
4706
6441
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -4738,6 +6473,13 @@ export interface components {
|
|
|
4738
6473
|
PublicReorderRulesRequest: {
|
|
4739
6474
|
ruleIds?: string[] | null;
|
|
4740
6475
|
};
|
|
6476
|
+
/** @description A newly added signing secret. The secret is shown only here. */
|
|
6477
|
+
PublicRotateWebhookSecretResponse: {
|
|
6478
|
+
/** Format: uuid */
|
|
6479
|
+
secretId?: string;
|
|
6480
|
+
secret?: string | null;
|
|
6481
|
+
warning?: string | null;
|
|
6482
|
+
};
|
|
4741
6483
|
/**
|
|
4742
6484
|
* @description Public representation of an SDK key, returned by
|
|
4743
6485
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys` (list) and
|
|
@@ -4862,6 +6604,35 @@ export interface components {
|
|
|
4862
6604
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4863
6605
|
};
|
|
4864
6606
|
};
|
|
6607
|
+
/**
|
|
6608
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/expiry`. Expiry is a
|
|
6609
|
+
* dedicated sub-resource, deliberately NOT a field on PublicUpdateFeatureFlagRequest: that
|
|
6610
|
+
* PUT is a full replace, so a new nullable field there would let any client that doesn't know about
|
|
6611
|
+
* expiry (the Terraform provider included) wipe it on every update. A bare date means the end of that
|
|
6612
|
+
* UTC day; a full timestamp is stored exactly.
|
|
6613
|
+
*/
|
|
6614
|
+
PublicSetFlagExpiryRequest: {
|
|
6615
|
+
/** Format: date-time */
|
|
6616
|
+
expiresAtUtc?: string;
|
|
6617
|
+
};
|
|
6618
|
+
/**
|
|
6619
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/owner`. A dedicated
|
|
6620
|
+
* sub-resource for the same reason as expiry: the main flag PUT is a full replace, so an owner field
|
|
6621
|
+
* there would let every client that doesn't know about owners wipe one. `email` must belong
|
|
6622
|
+
* to an active member of the organization (case-insensitive).
|
|
6623
|
+
*/
|
|
6624
|
+
PublicSetFlagOwnerRequest: {
|
|
6625
|
+
email?: string | null;
|
|
6626
|
+
};
|
|
6627
|
+
/**
|
|
6628
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/removal-pr`: the
|
|
6629
|
+
* pull request that removes this flag from code, as opened by the Featureflip Flag Cleanup Action.
|
|
6630
|
+
* A dedicated sub-resource for the same reason as expiry and owner. `url` must be an https
|
|
6631
|
+
* pull request URL (`https://{host}/{owner}/{repo}/pull/{number}`).
|
|
6632
|
+
*/
|
|
6633
|
+
PublicSetFlagRemovalPrRequest: {
|
|
6634
|
+
url?: string | null;
|
|
6635
|
+
};
|
|
4865
6636
|
/**
|
|
4866
6637
|
* @description The full targeting configuration for a flag in a single environment, returned by
|
|
4867
6638
|
* `GET .../targeting`. Maps 1:1 onto TargetingConfigurationDto — including
|
|
@@ -4925,6 +6696,13 @@ export interface components {
|
|
|
4925
6696
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4926
6697
|
};
|
|
4927
6698
|
};
|
|
6699
|
+
/** @description The queued test event and its delivery. Poll the delivery log for the outcome. */
|
|
6700
|
+
PublicTestWebhookSubscriptionResponse: {
|
|
6701
|
+
/** Format: uuid */
|
|
6702
|
+
webhookEventId?: string;
|
|
6703
|
+
/** Format: uuid */
|
|
6704
|
+
webhookDeliveryId?: string;
|
|
6705
|
+
};
|
|
4928
6706
|
/**
|
|
4929
6707
|
* @description Request body for `POST .../flags/{flag}/environments/{env}/toggle`. Named distinctly from
|
|
4930
6708
|
* the dashboard's own `ToggleFlagInEnvironmentRequest`
|
|
@@ -5049,6 +6827,18 @@ export interface components {
|
|
|
5049
6827
|
value?: string | null;
|
|
5050
6828
|
description?: string | null;
|
|
5051
6829
|
};
|
|
6830
|
+
/**
|
|
6831
|
+
* @description Replaces a subscription's configuration (full replace — omitted lists become empty, meaning
|
|
6832
|
+
* "all"). `isEnabled` is required. The provider cannot be changed.
|
|
6833
|
+
*/
|
|
6834
|
+
PublicUpdateWebhookSubscriptionRequest: {
|
|
6835
|
+
name?: string | null;
|
|
6836
|
+
url?: string | null;
|
|
6837
|
+
eventTypes?: string[] | null;
|
|
6838
|
+
projectIds?: string[] | null;
|
|
6839
|
+
environmentIds?: string[] | null;
|
|
6840
|
+
isEnabled?: boolean | null;
|
|
6841
|
+
};
|
|
5052
6842
|
/**
|
|
5053
6843
|
* @description A single variation on a flag, as returned in Variations.
|
|
5054
6844
|
* @example {
|
|
@@ -5071,6 +6861,126 @@ export interface components {
|
|
|
5071
6861
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
5072
6862
|
};
|
|
5073
6863
|
};
|
|
6864
|
+
/**
|
|
6865
|
+
* @description One delivery attempt record. `status` is `Pending` (awaiting its first attempt,
|
|
6866
|
+
* backing off, or in flight), `Succeeded` or `DeadLettered`.
|
|
6867
|
+
*/
|
|
6868
|
+
PublicWebhookDeliveryResponse: {
|
|
6869
|
+
/** Format: uuid */
|
|
6870
|
+
id?: string;
|
|
6871
|
+
/** Format: uuid */
|
|
6872
|
+
webhookEventId?: string;
|
|
6873
|
+
/**
|
|
6874
|
+
* @description Allowed values: Pending, Succeeded, DeadLettered.
|
|
6875
|
+
* @enum {string|null}
|
|
6876
|
+
*/
|
|
6877
|
+
status?: "Pending" | "Succeeded" | "DeadLettered" | null;
|
|
6878
|
+
/** Format: int32 */
|
|
6879
|
+
attemptCount?: number;
|
|
6880
|
+
/** Format: date-time */
|
|
6881
|
+
nextAttemptAt?: string;
|
|
6882
|
+
/** Format: int32 */
|
|
6883
|
+
lastResponseStatusCode?: number | null;
|
|
6884
|
+
lastError?: string | null;
|
|
6885
|
+
/** Format: date-time */
|
|
6886
|
+
completedAt?: string | null;
|
|
6887
|
+
/** Format: date-time */
|
|
6888
|
+
createdAt?: string;
|
|
6889
|
+
};
|
|
6890
|
+
/**
|
|
6891
|
+
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
6892
|
+
* page. Wire keys are frozen: `items` (already lowercase under the camelCase policy) and
|
|
6893
|
+
* `next_cursor` (pinned explicitly — the policy alone would emit `nextCursor`).
|
|
6894
|
+
*/
|
|
6895
|
+
PublicWebhookDeliveryResponsePagedResult: {
|
|
6896
|
+
items?: components["schemas"]["PublicWebhookDeliveryResponse"][] | null;
|
|
6897
|
+
next_cursor?: string | null;
|
|
6898
|
+
};
|
|
6899
|
+
/** @description A signing secret's id and lifecycle. A secret with no `retiredAt` is active and signs every delivery. */
|
|
6900
|
+
PublicWebhookSecretResponse: {
|
|
6901
|
+
/** Format: uuid */
|
|
6902
|
+
id?: string;
|
|
6903
|
+
/** Format: date-time */
|
|
6904
|
+
createdAt?: string;
|
|
6905
|
+
/** Format: date-time */
|
|
6906
|
+
retiredAt?: string | null;
|
|
6907
|
+
};
|
|
6908
|
+
/**
|
|
6909
|
+
* @description A webhook subscription. Never carries secret material: signing secrets are listed by id and
|
|
6910
|
+
* lifecycle only — the value itself is returned once, when it is created or rotated.
|
|
6911
|
+
* `overPlanLimit` is true when the organization has more subscriptions than its plan
|
|
6912
|
+
* allows, which happens after a downgrade. The oldest subscriptions up to the limit keep
|
|
6913
|
+
* delivering. The rest receive nothing and cannot be re-enabled, tested or redelivered to until
|
|
6914
|
+
* the plan is upgraded or older subscriptions are deleted.
|
|
6915
|
+
* @example {
|
|
6916
|
+
* "id": "0197b6a4-6f7a-7b8c-9d0e-1f2a3b4c5d6e",
|
|
6917
|
+
* "name": "Checkout flag changes to Slack relay",
|
|
6918
|
+
* "url": "https://hooks.acme.example/featureflip",
|
|
6919
|
+
* "provider": "GenericHttp",
|
|
6920
|
+
* "isEnabled": true,
|
|
6921
|
+
* "eventTypes": [
|
|
6922
|
+
* "flag.toggled",
|
|
6923
|
+
* "flag.updated"
|
|
6924
|
+
* ],
|
|
6925
|
+
* "projectIds": [
|
|
6926
|
+
* "0197b69f-1a2b-7c3d-8e4f-5a6b7c8d9e0f"
|
|
6927
|
+
* ],
|
|
6928
|
+
* "environmentIds": [
|
|
6929
|
+
* "0197b69f-2b3c-7d4e-9f5a-6b7c8d9e0f1a"
|
|
6930
|
+
* ],
|
|
6931
|
+
* "consecutiveFailureCount": 0,
|
|
6932
|
+
* "createdAt": "2026-06-01T12:00:00Z",
|
|
6933
|
+
* "updatedAt": "2026-06-15T08:30:00Z",
|
|
6934
|
+
* "secrets": [
|
|
6935
|
+
* {
|
|
6936
|
+
* "id": "0197b6a4-7a8b-7c9d-8e0f-2a3b4c5d6e7f",
|
|
6937
|
+
* "createdAt": "2026-06-01T12:00:00Z"
|
|
6938
|
+
* }
|
|
6939
|
+
* ]
|
|
6940
|
+
* }
|
|
6941
|
+
*/
|
|
6942
|
+
PublicWebhookSubscriptionResponse: {
|
|
6943
|
+
/** Format: uuid */
|
|
6944
|
+
id?: string;
|
|
6945
|
+
name?: string | null;
|
|
6946
|
+
url?: string | null;
|
|
6947
|
+
/**
|
|
6948
|
+
* @description Allowed values: GenericHttp.
|
|
6949
|
+
* @enum {string|null}
|
|
6950
|
+
*/
|
|
6951
|
+
provider?: "GenericHttp" | null;
|
|
6952
|
+
isEnabled?: boolean;
|
|
6953
|
+
eventTypes?: string[] | null;
|
|
6954
|
+
projectIds?: string[] | null;
|
|
6955
|
+
environmentIds?: string[] | null;
|
|
6956
|
+
/** Format: int32 */
|
|
6957
|
+
consecutiveFailureCount?: number;
|
|
6958
|
+
/** Format: date-time */
|
|
6959
|
+
autoDisabledAt?: string | null;
|
|
6960
|
+
/** Format: date-time */
|
|
6961
|
+
createdAt?: string;
|
|
6962
|
+
/** Format: date-time */
|
|
6963
|
+
updatedAt?: string;
|
|
6964
|
+
secrets?: components["schemas"]["PublicWebhookSecretResponse"][] | null;
|
|
6965
|
+
overPlanLimit?: boolean;
|
|
6966
|
+
/** @description Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it. */
|
|
6967
|
+
_actions?: {
|
|
6968
|
+
[key: string]: components["schemas"]["ActionCapability"];
|
|
6969
|
+
};
|
|
6970
|
+
};
|
|
6971
|
+
/**
|
|
6972
|
+
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
6973
|
+
* page. Wire keys are frozen: `items` (already lowercase under the camelCase policy) and
|
|
6974
|
+
* `next_cursor` (pinned explicitly — the policy alone would emit `nextCursor`).
|
|
6975
|
+
*/
|
|
6976
|
+
PublicWebhookSubscriptionResponsePagedResult: {
|
|
6977
|
+
items?: components["schemas"]["PublicWebhookSubscriptionResponse"][] | null;
|
|
6978
|
+
next_cursor?: string | null;
|
|
6979
|
+
/** @description Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it. */
|
|
6980
|
+
_actions?: {
|
|
6981
|
+
[key: string]: components["schemas"]["ActionCapability"];
|
|
6982
|
+
};
|
|
6983
|
+
};
|
|
5074
6984
|
};
|
|
5075
6985
|
responses: never;
|
|
5076
6986
|
parameters: never;
|