@featureflip/mcp 0.1.6 → 0.1.8
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 +3 -1
- 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 +2236 -524
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{org-BixGfyQ6.js → org-DZ1ge1Mx.js} +333 -133
- package/dist/server.d.ts.map +1 -1
- package/dist/tools/flags.d.ts.map +1 -1
- 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 +17 -5
|
@@ -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,12 +990,14 @@ 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. The date must be in the
|
|
997
|
+
* future (400 `EXPIRY_IN_PAST`) and the flag-expiration feature must be enabled
|
|
998
|
+
* (400 `FEATURE_NOT_ENABLED`).
|
|
995
999
|
*/
|
|
996
|
-
|
|
1000
|
+
put: {
|
|
997
1001
|
parameters: {
|
|
998
1002
|
query?: never;
|
|
999
1003
|
header?: never;
|
|
@@ -1004,7 +1008,13 @@ export interface paths {
|
|
|
1004
1008
|
};
|
|
1005
1009
|
cookie?: never;
|
|
1006
1010
|
};
|
|
1007
|
-
requestBody?:
|
|
1011
|
+
requestBody?: {
|
|
1012
|
+
content: {
|
|
1013
|
+
"application/json": components["schemas"]["PublicSetFlagExpiryRequest"];
|
|
1014
|
+
"text/json": components["schemas"]["PublicSetFlagExpiryRequest"];
|
|
1015
|
+
"application/*+json": components["schemas"]["PublicSetFlagExpiryRequest"];
|
|
1016
|
+
};
|
|
1017
|
+
};
|
|
1008
1018
|
responses: {
|
|
1009
1019
|
/** @description No Content */
|
|
1010
1020
|
204: {
|
|
@@ -1016,6 +1026,18 @@ export interface paths {
|
|
|
1016
1026
|
};
|
|
1017
1027
|
content?: never;
|
|
1018
1028
|
};
|
|
1029
|
+
/** @description Bad Request */
|
|
1030
|
+
400: {
|
|
1031
|
+
headers: {
|
|
1032
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1033
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1034
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1035
|
+
[name: string]: unknown;
|
|
1036
|
+
};
|
|
1037
|
+
content: {
|
|
1038
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1039
|
+
};
|
|
1040
|
+
};
|
|
1019
1041
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1020
1042
|
401: {
|
|
1021
1043
|
headers: {
|
|
@@ -1068,26 +1090,13 @@ export interface paths {
|
|
|
1068
1090
|
};
|
|
1069
1091
|
};
|
|
1070
1092
|
};
|
|
1071
|
-
|
|
1072
|
-
options?: never;
|
|
1073
|
-
head?: never;
|
|
1074
|
-
patch?: never;
|
|
1075
|
-
trace?: never;
|
|
1076
|
-
};
|
|
1077
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/restore": {
|
|
1078
|
-
parameters: {
|
|
1079
|
-
query?: never;
|
|
1080
|
-
header?: never;
|
|
1081
|
-
path?: never;
|
|
1082
|
-
cookie?: never;
|
|
1083
|
-
};
|
|
1084
|
-
get?: never;
|
|
1085
|
-
put?: never;
|
|
1093
|
+
post?: never;
|
|
1086
1094
|
/**
|
|
1087
|
-
*
|
|
1088
|
-
* @description Requires at least Member.
|
|
1095
|
+
* Removes the flag's expiry date.
|
|
1096
|
+
* @description Requires at least Member. Always allowed, even when
|
|
1097
|
+
* the flag-expiration feature is disabled.
|
|
1089
1098
|
*/
|
|
1090
|
-
|
|
1099
|
+
delete: {
|
|
1091
1100
|
parameters: {
|
|
1092
1101
|
query?: never;
|
|
1093
1102
|
header?: never;
|
|
@@ -1162,21 +1171,26 @@ export interface paths {
|
|
|
1162
1171
|
};
|
|
1163
1172
|
};
|
|
1164
1173
|
};
|
|
1165
|
-
delete?: never;
|
|
1166
1174
|
options?: never;
|
|
1167
1175
|
head?: never;
|
|
1168
1176
|
patch?: never;
|
|
1169
1177
|
trace?: never;
|
|
1170
1178
|
};
|
|
1171
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
1179
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/owner": {
|
|
1172
1180
|
parameters: {
|
|
1173
1181
|
query?: never;
|
|
1174
1182
|
header?: never;
|
|
1175
1183
|
path?: never;
|
|
1176
1184
|
cookie?: never;
|
|
1177
1185
|
};
|
|
1178
|
-
|
|
1179
|
-
|
|
1186
|
+
get?: never;
|
|
1187
|
+
/**
|
|
1188
|
+
* Assigns the flag's owner by email.
|
|
1189
|
+
* @description Requires at least Member. The email must belong to an
|
|
1190
|
+
* active member of the organization (400 `OWNER_NOT_MEMBER`) and the flag-ownership feature
|
|
1191
|
+
* must be enabled (400 `FEATURE_NOT_ENABLED`).
|
|
1192
|
+
*/
|
|
1193
|
+
put: {
|
|
1180
1194
|
parameters: {
|
|
1181
1195
|
query?: never;
|
|
1182
1196
|
header?: never;
|
|
@@ -1187,10 +1201,26 @@ export interface paths {
|
|
|
1187
1201
|
};
|
|
1188
1202
|
cookie?: never;
|
|
1189
1203
|
};
|
|
1190
|
-
requestBody?:
|
|
1204
|
+
requestBody?: {
|
|
1205
|
+
content: {
|
|
1206
|
+
"application/json": components["schemas"]["PublicSetFlagOwnerRequest"];
|
|
1207
|
+
"text/json": components["schemas"]["PublicSetFlagOwnerRequest"];
|
|
1208
|
+
"application/*+json": components["schemas"]["PublicSetFlagOwnerRequest"];
|
|
1209
|
+
};
|
|
1210
|
+
};
|
|
1191
1211
|
responses: {
|
|
1192
|
-
/** @description
|
|
1193
|
-
|
|
1212
|
+
/** @description No Content */
|
|
1213
|
+
204: {
|
|
1214
|
+
headers: {
|
|
1215
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1216
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1217
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1218
|
+
[name: string]: unknown;
|
|
1219
|
+
};
|
|
1220
|
+
content?: never;
|
|
1221
|
+
};
|
|
1222
|
+
/** @description Bad Request */
|
|
1223
|
+
400: {
|
|
1194
1224
|
headers: {
|
|
1195
1225
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1196
1226
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1198,7 +1228,7 @@ export interface paths {
|
|
|
1198
1228
|
[name: string]: unknown;
|
|
1199
1229
|
};
|
|
1200
1230
|
content: {
|
|
1201
|
-
"application/json": components["schemas"]["
|
|
1231
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1202
1232
|
};
|
|
1203
1233
|
};
|
|
1204
1234
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1213,6 +1243,18 @@ export interface paths {
|
|
|
1213
1243
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1214
1244
|
};
|
|
1215
1245
|
};
|
|
1246
|
+
/** @description Forbidden */
|
|
1247
|
+
403: {
|
|
1248
|
+
headers: {
|
|
1249
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1250
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1251
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1252
|
+
[name: string]: unknown;
|
|
1253
|
+
};
|
|
1254
|
+
content: {
|
|
1255
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1256
|
+
};
|
|
1257
|
+
};
|
|
1216
1258
|
/** @description Not Found */
|
|
1217
1259
|
404: {
|
|
1218
1260
|
headers: {
|
|
@@ -1241,29 +1283,13 @@ export interface paths {
|
|
|
1241
1283
|
};
|
|
1242
1284
|
};
|
|
1243
1285
|
};
|
|
1244
|
-
put?: never;
|
|
1245
1286
|
post?: never;
|
|
1246
|
-
delete?: never;
|
|
1247
|
-
options?: never;
|
|
1248
|
-
head?: never;
|
|
1249
|
-
patch?: never;
|
|
1250
|
-
trace?: never;
|
|
1251
|
-
};
|
|
1252
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}": {
|
|
1253
|
-
parameters: {
|
|
1254
|
-
query?: never;
|
|
1255
|
-
header?: never;
|
|
1256
|
-
path?: never;
|
|
1257
|
-
cookie?: never;
|
|
1258
|
-
};
|
|
1259
1287
|
/**
|
|
1260
|
-
*
|
|
1261
|
-
* @description
|
|
1262
|
-
*
|
|
1263
|
-
* GetFlagEnvironmentConfigurationsQuery as GetAll and finds the
|
|
1264
|
-
* resolved environment by id.
|
|
1288
|
+
* Leaves the flag unowned.
|
|
1289
|
+
* @description Requires at least Member. Always allowed, even when the
|
|
1290
|
+
* flag-ownership feature is disabled.
|
|
1265
1291
|
*/
|
|
1266
|
-
|
|
1292
|
+
delete: {
|
|
1267
1293
|
parameters: {
|
|
1268
1294
|
query?: never;
|
|
1269
1295
|
header?: never;
|
|
@@ -1271,23 +1297,20 @@ export interface paths {
|
|
|
1271
1297
|
org: string;
|
|
1272
1298
|
project: string;
|
|
1273
1299
|
flag: string;
|
|
1274
|
-
env: string;
|
|
1275
1300
|
};
|
|
1276
1301
|
cookie?: never;
|
|
1277
1302
|
};
|
|
1278
1303
|
requestBody?: never;
|
|
1279
1304
|
responses: {
|
|
1280
|
-
/** @description
|
|
1281
|
-
|
|
1305
|
+
/** @description No Content */
|
|
1306
|
+
204: {
|
|
1282
1307
|
headers: {
|
|
1283
1308
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1284
1309
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1285
1310
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1286
1311
|
[name: string]: unknown;
|
|
1287
1312
|
};
|
|
1288
|
-
content
|
|
1289
|
-
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"];
|
|
1290
|
-
};
|
|
1313
|
+
content?: never;
|
|
1291
1314
|
};
|
|
1292
1315
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1293
1316
|
401: {
|
|
@@ -1301,6 +1324,18 @@ export interface paths {
|
|
|
1301
1324
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1302
1325
|
};
|
|
1303
1326
|
};
|
|
1327
|
+
/** @description Forbidden */
|
|
1328
|
+
403: {
|
|
1329
|
+
headers: {
|
|
1330
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1331
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1332
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1333
|
+
[name: string]: unknown;
|
|
1334
|
+
};
|
|
1335
|
+
content: {
|
|
1336
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1337
|
+
};
|
|
1338
|
+
};
|
|
1304
1339
|
/** @description Not Found */
|
|
1305
1340
|
404: {
|
|
1306
1341
|
headers: {
|
|
@@ -1329,31 +1364,43 @@ export interface paths {
|
|
|
1329
1364
|
};
|
|
1330
1365
|
};
|
|
1331
1366
|
};
|
|
1367
|
+
options?: never;
|
|
1368
|
+
head?: never;
|
|
1369
|
+
patch?: never;
|
|
1370
|
+
trace?: never;
|
|
1371
|
+
};
|
|
1372
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/archive": {
|
|
1373
|
+
parameters: {
|
|
1374
|
+
query?: never;
|
|
1375
|
+
header?: never;
|
|
1376
|
+
path?: never;
|
|
1377
|
+
cookie?: never;
|
|
1378
|
+
};
|
|
1379
|
+
get?: never;
|
|
1380
|
+
put?: never;
|
|
1332
1381
|
/**
|
|
1333
|
-
*
|
|
1334
|
-
* @description Requires at least Member.
|
|
1335
|
-
* Prerequisites leaves prerequisites untouched;
|
|
1336
|
-
* a non-null list replaces them wholesale.
|
|
1382
|
+
* Archives a flag.
|
|
1383
|
+
* @description Requires at least Member.
|
|
1337
1384
|
*/
|
|
1338
|
-
|
|
1385
|
+
post: {
|
|
1339
1386
|
parameters: {
|
|
1340
|
-
query?:
|
|
1387
|
+
query?: {
|
|
1388
|
+
/**
|
|
1389
|
+
* @description Archive even though live traffic is still evaluating the flag. Without it the request is
|
|
1390
|
+
* refused with `FLAG_RECENTLY_EVALUATED` naming the environments still reading it — which
|
|
1391
|
+
* usually means the removal has merged but not yet deployed.
|
|
1392
|
+
*/
|
|
1393
|
+
force?: boolean;
|
|
1394
|
+
};
|
|
1341
1395
|
header?: never;
|
|
1342
1396
|
path: {
|
|
1343
1397
|
org: string;
|
|
1344
1398
|
project: string;
|
|
1345
1399
|
flag: string;
|
|
1346
|
-
env: string;
|
|
1347
1400
|
};
|
|
1348
1401
|
cookie?: never;
|
|
1349
1402
|
};
|
|
1350
|
-
requestBody?:
|
|
1351
|
-
content: {
|
|
1352
|
-
"application/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1353
|
-
"text/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1354
|
-
"application/*+json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1355
|
-
};
|
|
1356
|
-
};
|
|
1403
|
+
requestBody?: never;
|
|
1357
1404
|
responses: {
|
|
1358
1405
|
/** @description No Content */
|
|
1359
1406
|
204: {
|
|
@@ -1429,14 +1476,13 @@ export interface paths {
|
|
|
1429
1476
|
};
|
|
1430
1477
|
};
|
|
1431
1478
|
};
|
|
1432
|
-
post?: never;
|
|
1433
1479
|
delete?: never;
|
|
1434
1480
|
options?: never;
|
|
1435
1481
|
head?: never;
|
|
1436
1482
|
patch?: never;
|
|
1437
1483
|
trace?: never;
|
|
1438
1484
|
};
|
|
1439
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
1485
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/restore": {
|
|
1440
1486
|
parameters: {
|
|
1441
1487
|
query?: never;
|
|
1442
1488
|
header?: never;
|
|
@@ -1446,7 +1492,7 @@ export interface paths {
|
|
|
1446
1492
|
get?: never;
|
|
1447
1493
|
put?: never;
|
|
1448
1494
|
/**
|
|
1449
|
-
*
|
|
1495
|
+
* Restores a previously archived flag.
|
|
1450
1496
|
* @description Requires at least Member.
|
|
1451
1497
|
*/
|
|
1452
1498
|
post: {
|
|
@@ -1457,17 +1503,10 @@ export interface paths {
|
|
|
1457
1503
|
org: string;
|
|
1458
1504
|
project: string;
|
|
1459
1505
|
flag: string;
|
|
1460
|
-
env: string;
|
|
1461
1506
|
};
|
|
1462
1507
|
cookie?: never;
|
|
1463
1508
|
};
|
|
1464
|
-
requestBody?:
|
|
1465
|
-
content: {
|
|
1466
|
-
"application/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1467
|
-
"text/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1468
|
-
"application/*+json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1469
|
-
};
|
|
1470
|
-
};
|
|
1509
|
+
requestBody?: never;
|
|
1471
1510
|
responses: {
|
|
1472
1511
|
/** @description No Content */
|
|
1473
1512
|
204: {
|
|
@@ -1479,18 +1518,6 @@ export interface paths {
|
|
|
1479
1518
|
};
|
|
1480
1519
|
content?: never;
|
|
1481
1520
|
};
|
|
1482
|
-
/** @description Bad Request */
|
|
1483
|
-
400: {
|
|
1484
|
-
headers: {
|
|
1485
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1486
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1487
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1488
|
-
[name: string]: unknown;
|
|
1489
|
-
};
|
|
1490
|
-
content: {
|
|
1491
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1492
|
-
};
|
|
1493
|
-
};
|
|
1494
1521
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1495
1522
|
401: {
|
|
1496
1523
|
headers: {
|
|
@@ -1549,20 +1576,14 @@ export interface paths {
|
|
|
1549
1576
|
patch?: never;
|
|
1550
1577
|
trace?: never;
|
|
1551
1578
|
};
|
|
1552
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments
|
|
1579
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments": {
|
|
1553
1580
|
parameters: {
|
|
1554
1581
|
query?: never;
|
|
1555
1582
|
header?: never;
|
|
1556
1583
|
path?: never;
|
|
1557
1584
|
cookie?: never;
|
|
1558
1585
|
};
|
|
1559
|
-
/**
|
|
1560
|
-
* Gets the resolved flag's full targeting configuration (enabled flag + ordered rules) in the resolved environment.
|
|
1561
|
-
* @description GetTargetingConfigurationQuery returns null when
|
|
1562
|
-
* no `FlagEnvironmentConfiguration` exists yet for this flag/environment pair — treated
|
|
1563
|
-
* as 404 here (rather than an empty PublicTargetingConfigResponse) for
|
|
1564
|
-
* consistency with every other resolved-resource 404 on this surface.
|
|
1565
|
-
*/
|
|
1586
|
+
/** Gets the resolved flag's config in every environment of the resolved project. */
|
|
1566
1587
|
get: {
|
|
1567
1588
|
parameters: {
|
|
1568
1589
|
query?: never;
|
|
@@ -1571,7 +1592,6 @@ export interface paths {
|
|
|
1571
1592
|
org: string;
|
|
1572
1593
|
project: string;
|
|
1573
1594
|
flag: string;
|
|
1574
|
-
env: string;
|
|
1575
1595
|
};
|
|
1576
1596
|
cookie?: never;
|
|
1577
1597
|
};
|
|
@@ -1586,7 +1606,7 @@ export interface paths {
|
|
|
1586
1606
|
[name: string]: unknown;
|
|
1587
1607
|
};
|
|
1588
1608
|
content: {
|
|
1589
|
-
"application/json": components["schemas"]["
|
|
1609
|
+
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"][];
|
|
1590
1610
|
};
|
|
1591
1611
|
};
|
|
1592
1612
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1629,13 +1649,29 @@ export interface paths {
|
|
|
1629
1649
|
};
|
|
1630
1650
|
};
|
|
1631
1651
|
};
|
|
1652
|
+
put?: never;
|
|
1653
|
+
post?: never;
|
|
1654
|
+
delete?: never;
|
|
1655
|
+
options?: never;
|
|
1656
|
+
head?: never;
|
|
1657
|
+
patch?: never;
|
|
1658
|
+
trace?: never;
|
|
1659
|
+
};
|
|
1660
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}": {
|
|
1661
|
+
parameters: {
|
|
1662
|
+
query?: never;
|
|
1663
|
+
header?: never;
|
|
1664
|
+
path?: never;
|
|
1665
|
+
cookie?: never;
|
|
1666
|
+
};
|
|
1632
1667
|
/**
|
|
1633
|
-
*
|
|
1634
|
-
* @description
|
|
1635
|
-
*
|
|
1636
|
-
*
|
|
1668
|
+
* Gets the resolved flag's config in a single resolved environment.
|
|
1669
|
+
* @description There is no
|
|
1670
|
+
* single-environment query on the Application side, so this dispatches the same
|
|
1671
|
+
* GetFlagEnvironmentConfigurationsQuery as GetAll and finds the
|
|
1672
|
+
* resolved environment by id.
|
|
1637
1673
|
*/
|
|
1638
|
-
|
|
1674
|
+
get: {
|
|
1639
1675
|
parameters: {
|
|
1640
1676
|
query?: never;
|
|
1641
1677
|
header?: never;
|
|
@@ -1647,26 +1683,10 @@ export interface paths {
|
|
|
1647
1683
|
};
|
|
1648
1684
|
cookie?: never;
|
|
1649
1685
|
};
|
|
1650
|
-
requestBody?:
|
|
1651
|
-
content: {
|
|
1652
|
-
"application/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1653
|
-
"text/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1654
|
-
"application/*+json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1655
|
-
};
|
|
1656
|
-
};
|
|
1686
|
+
requestBody?: never;
|
|
1657
1687
|
responses: {
|
|
1658
|
-
/** @description
|
|
1659
|
-
|
|
1660
|
-
headers: {
|
|
1661
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1662
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1663
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1664
|
-
[name: string]: unknown;
|
|
1665
|
-
};
|
|
1666
|
-
content?: never;
|
|
1667
|
-
};
|
|
1668
|
-
/** @description Bad Request */
|
|
1669
|
-
400: {
|
|
1688
|
+
/** @description OK */
|
|
1689
|
+
200: {
|
|
1670
1690
|
headers: {
|
|
1671
1691
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1672
1692
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1674,7 +1694,7 @@ export interface paths {
|
|
|
1674
1694
|
[name: string]: unknown;
|
|
1675
1695
|
};
|
|
1676
1696
|
content: {
|
|
1677
|
-
"application/json": components["schemas"]["
|
|
1697
|
+
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"];
|
|
1678
1698
|
};
|
|
1679
1699
|
};
|
|
1680
1700
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1689,20 +1709,8 @@ export interface paths {
|
|
|
1689
1709
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1690
1710
|
};
|
|
1691
1711
|
};
|
|
1692
|
-
/** @description
|
|
1693
|
-
|
|
1694
|
-
headers: {
|
|
1695
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1696
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1697
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1698
|
-
[name: string]: unknown;
|
|
1699
|
-
};
|
|
1700
|
-
content: {
|
|
1701
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1702
|
-
};
|
|
1703
|
-
};
|
|
1704
|
-
/** @description Not Found */
|
|
1705
|
-
404: {
|
|
1712
|
+
/** @description Not Found */
|
|
1713
|
+
404: {
|
|
1706
1714
|
headers: {
|
|
1707
1715
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1708
1716
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1729,30 +1737,13 @@ export interface paths {
|
|
|
1729
1737
|
};
|
|
1730
1738
|
};
|
|
1731
1739
|
};
|
|
1732
|
-
post?: never;
|
|
1733
|
-
delete?: never;
|
|
1734
|
-
options?: never;
|
|
1735
|
-
head?: never;
|
|
1736
|
-
patch?: never;
|
|
1737
|
-
trace?: never;
|
|
1738
|
-
};
|
|
1739
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules": {
|
|
1740
|
-
parameters: {
|
|
1741
|
-
query?: never;
|
|
1742
|
-
header?: never;
|
|
1743
|
-
path?: never;
|
|
1744
|
-
cookie?: never;
|
|
1745
|
-
};
|
|
1746
|
-
get?: never;
|
|
1747
|
-
put?: never;
|
|
1748
1740
|
/**
|
|
1749
|
-
*
|
|
1750
|
-
* @description Requires at
|
|
1751
|
-
*
|
|
1752
|
-
*
|
|
1753
|
-
* persisted (e.g. server-assigned priority and condition/group ids).
|
|
1741
|
+
* Updates the resolved flag's default variation, strategy, and (optionally) prerequisites in a resolved environment.
|
|
1742
|
+
* @description Requires at least Member. A null
|
|
1743
|
+
* Prerequisites leaves prerequisites untouched;
|
|
1744
|
+
* a non-null list replaces them wholesale.
|
|
1754
1745
|
*/
|
|
1755
|
-
|
|
1746
|
+
put: {
|
|
1756
1747
|
parameters: {
|
|
1757
1748
|
query?: never;
|
|
1758
1749
|
header?: never;
|
|
@@ -1766,23 +1757,21 @@ export interface paths {
|
|
|
1766
1757
|
};
|
|
1767
1758
|
requestBody?: {
|
|
1768
1759
|
content: {
|
|
1769
|
-
"application/json": components["schemas"]["
|
|
1770
|
-
"text/json": components["schemas"]["
|
|
1771
|
-
"application/*+json": components["schemas"]["
|
|
1760
|
+
"application/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1761
|
+
"text/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1762
|
+
"application/*+json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1772
1763
|
};
|
|
1773
1764
|
};
|
|
1774
1765
|
responses: {
|
|
1775
|
-
/** @description
|
|
1776
|
-
|
|
1766
|
+
/** @description No Content */
|
|
1767
|
+
204: {
|
|
1777
1768
|
headers: {
|
|
1778
1769
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1779
1770
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1780
1771
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1781
1772
|
[name: string]: unknown;
|
|
1782
1773
|
};
|
|
1783
|
-
content
|
|
1784
|
-
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
1785
|
-
};
|
|
1774
|
+
content?: never;
|
|
1786
1775
|
};
|
|
1787
1776
|
/** @description Bad Request */
|
|
1788
1777
|
400: {
|
|
@@ -1848,92 +1837,27 @@ export interface paths {
|
|
|
1848
1837
|
};
|
|
1849
1838
|
};
|
|
1850
1839
|
};
|
|
1840
|
+
post?: never;
|
|
1851
1841
|
delete?: never;
|
|
1852
1842
|
options?: never;
|
|
1853
1843
|
head?: never;
|
|
1854
1844
|
patch?: never;
|
|
1855
1845
|
trace?: never;
|
|
1856
1846
|
};
|
|
1857
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/
|
|
1847
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/toggle": {
|
|
1858
1848
|
parameters: {
|
|
1859
1849
|
query?: never;
|
|
1860
1850
|
header?: never;
|
|
1861
1851
|
path?: never;
|
|
1862
1852
|
cookie?: never;
|
|
1863
1853
|
};
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
parameters: {
|
|
1867
|
-
query?: never;
|
|
1868
|
-
header?: never;
|
|
1869
|
-
path: {
|
|
1870
|
-
org: string;
|
|
1871
|
-
project: string;
|
|
1872
|
-
flag: string;
|
|
1873
|
-
env: string;
|
|
1874
|
-
ruleId: string;
|
|
1875
|
-
};
|
|
1876
|
-
cookie?: never;
|
|
1877
|
-
};
|
|
1878
|
-
requestBody?: never;
|
|
1879
|
-
responses: {
|
|
1880
|
-
/** @description OK */
|
|
1881
|
-
200: {
|
|
1882
|
-
headers: {
|
|
1883
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1884
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1885
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1886
|
-
[name: string]: unknown;
|
|
1887
|
-
};
|
|
1888
|
-
content: {
|
|
1889
|
-
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
1890
|
-
};
|
|
1891
|
-
};
|
|
1892
|
-
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1893
|
-
401: {
|
|
1894
|
-
headers: {
|
|
1895
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1896
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1897
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1898
|
-
[name: string]: unknown;
|
|
1899
|
-
};
|
|
1900
|
-
content: {
|
|
1901
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1902
|
-
};
|
|
1903
|
-
};
|
|
1904
|
-
/** @description Not Found */
|
|
1905
|
-
404: {
|
|
1906
|
-
headers: {
|
|
1907
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1908
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1909
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1910
|
-
[name: string]: unknown;
|
|
1911
|
-
};
|
|
1912
|
-
content: {
|
|
1913
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1914
|
-
};
|
|
1915
|
-
};
|
|
1916
|
-
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
1917
|
-
429: {
|
|
1918
|
-
headers: {
|
|
1919
|
-
/** @description Number of seconds to wait before retrying the request. */
|
|
1920
|
-
"Retry-After"?: number;
|
|
1921
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1922
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1923
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1924
|
-
[name: string]: unknown;
|
|
1925
|
-
};
|
|
1926
|
-
content: {
|
|
1927
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1928
|
-
};
|
|
1929
|
-
};
|
|
1930
|
-
};
|
|
1931
|
-
};
|
|
1854
|
+
get?: never;
|
|
1855
|
+
put?: never;
|
|
1932
1856
|
/**
|
|
1933
|
-
*
|
|
1857
|
+
* Enables or disables the resolved flag in a resolved environment.
|
|
1934
1858
|
* @description Requires at least Member.
|
|
1935
1859
|
*/
|
|
1936
|
-
|
|
1860
|
+
post: {
|
|
1937
1861
|
parameters: {
|
|
1938
1862
|
query?: never;
|
|
1939
1863
|
header?: never;
|
|
@@ -1942,15 +1866,14 @@ export interface paths {
|
|
|
1942
1866
|
project: string;
|
|
1943
1867
|
flag: string;
|
|
1944
1868
|
env: string;
|
|
1945
|
-
ruleId: string;
|
|
1946
1869
|
};
|
|
1947
1870
|
cookie?: never;
|
|
1948
1871
|
};
|
|
1949
1872
|
requestBody?: {
|
|
1950
1873
|
content: {
|
|
1951
|
-
"application/json": components["schemas"]["
|
|
1952
|
-
"text/json": components["schemas"]["
|
|
1953
|
-
"application/*+json": components["schemas"]["
|
|
1874
|
+
"application/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1875
|
+
"text/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1876
|
+
"application/*+json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1954
1877
|
};
|
|
1955
1878
|
};
|
|
1956
1879
|
responses: {
|
|
@@ -2028,12 +1951,27 @@ export interface paths {
|
|
|
2028
1951
|
};
|
|
2029
1952
|
};
|
|
2030
1953
|
};
|
|
2031
|
-
|
|
1954
|
+
delete?: never;
|
|
1955
|
+
options?: never;
|
|
1956
|
+
head?: never;
|
|
1957
|
+
patch?: never;
|
|
1958
|
+
trace?: never;
|
|
1959
|
+
};
|
|
1960
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/targeting": {
|
|
1961
|
+
parameters: {
|
|
1962
|
+
query?: never;
|
|
1963
|
+
header?: never;
|
|
1964
|
+
path?: never;
|
|
1965
|
+
cookie?: never;
|
|
1966
|
+
};
|
|
2032
1967
|
/**
|
|
2033
|
-
*
|
|
2034
|
-
* @description
|
|
1968
|
+
* Gets the resolved flag's full targeting configuration (enabled flag + ordered rules) in the resolved environment.
|
|
1969
|
+
* @description GetTargetingConfigurationQuery returns null when
|
|
1970
|
+
* no `FlagEnvironmentConfiguration` exists yet for this flag/environment pair — treated
|
|
1971
|
+
* as 404 here (rather than an empty PublicTargetingConfigResponse) for
|
|
1972
|
+
* consistency with every other resolved-resource 404 on this surface.
|
|
2035
1973
|
*/
|
|
2036
|
-
|
|
1974
|
+
get: {
|
|
2037
1975
|
parameters: {
|
|
2038
1976
|
query?: never;
|
|
2039
1977
|
header?: never;
|
|
@@ -2042,24 +1980,13 @@ export interface paths {
|
|
|
2042
1980
|
project: string;
|
|
2043
1981
|
flag: string;
|
|
2044
1982
|
env: string;
|
|
2045
|
-
ruleId: string;
|
|
2046
1983
|
};
|
|
2047
1984
|
cookie?: never;
|
|
2048
1985
|
};
|
|
2049
1986
|
requestBody?: never;
|
|
2050
1987
|
responses: {
|
|
2051
|
-
/** @description
|
|
2052
|
-
|
|
2053
|
-
headers: {
|
|
2054
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2055
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2056
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2057
|
-
[name: string]: unknown;
|
|
2058
|
-
};
|
|
2059
|
-
content?: never;
|
|
2060
|
-
};
|
|
2061
|
-
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2062
|
-
401: {
|
|
1988
|
+
/** @description OK */
|
|
1989
|
+
200: {
|
|
2063
1990
|
headers: {
|
|
2064
1991
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2065
1992
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -2067,11 +1994,11 @@ export interface paths {
|
|
|
2067
1994
|
[name: string]: unknown;
|
|
2068
1995
|
};
|
|
2069
1996
|
content: {
|
|
2070
|
-
"application/json": components["schemas"]["
|
|
1997
|
+
"application/json": components["schemas"]["PublicTargetingConfigResponse"];
|
|
2071
1998
|
};
|
|
2072
1999
|
};
|
|
2073
|
-
/** @description
|
|
2074
|
-
|
|
2000
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2001
|
+
401: {
|
|
2075
2002
|
headers: {
|
|
2076
2003
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2077
2004
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -2110,23 +2037,11 @@ export interface paths {
|
|
|
2110
2037
|
};
|
|
2111
2038
|
};
|
|
2112
2039
|
};
|
|
2113
|
-
options?: never;
|
|
2114
|
-
head?: never;
|
|
2115
|
-
patch?: never;
|
|
2116
|
-
trace?: never;
|
|
2117
|
-
};
|
|
2118
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/reorder": {
|
|
2119
|
-
parameters: {
|
|
2120
|
-
query?: never;
|
|
2121
|
-
header?: never;
|
|
2122
|
-
path?: never;
|
|
2123
|
-
cookie?: never;
|
|
2124
|
-
};
|
|
2125
|
-
get?: never;
|
|
2126
2040
|
/**
|
|
2127
|
-
*
|
|
2128
|
-
* @description
|
|
2129
|
-
*
|
|
2041
|
+
* Declaratively replaces the resolved flag's entire targeting rule set in the resolved environment.
|
|
2042
|
+
* @description The ordered Rules list is applied in
|
|
2043
|
+
* array order (= evaluation order); an empty or omitted list clears all rules. Segment-scoped
|
|
2044
|
+
* rules are supported. The replace is atomic. Requires at least Member.
|
|
2130
2045
|
*/
|
|
2131
2046
|
put: {
|
|
2132
2047
|
parameters: {
|
|
@@ -2142,9 +2057,9 @@ export interface paths {
|
|
|
2142
2057
|
};
|
|
2143
2058
|
requestBody?: {
|
|
2144
2059
|
content: {
|
|
2145
|
-
"application/json": components["schemas"]["
|
|
2146
|
-
"text/json": components["schemas"]["
|
|
2147
|
-
"application/*+json": components["schemas"]["
|
|
2060
|
+
"application/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2061
|
+
"text/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2062
|
+
"application/*+json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2148
2063
|
};
|
|
2149
2064
|
};
|
|
2150
2065
|
responses: {
|
|
@@ -2158,6 +2073,18 @@ export interface paths {
|
|
|
2158
2073
|
};
|
|
2159
2074
|
content?: never;
|
|
2160
2075
|
};
|
|
2076
|
+
/** @description Bad Request */
|
|
2077
|
+
400: {
|
|
2078
|
+
headers: {
|
|
2079
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2080
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2081
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2082
|
+
[name: string]: unknown;
|
|
2083
|
+
};
|
|
2084
|
+
content: {
|
|
2085
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2086
|
+
};
|
|
2087
|
+
};
|
|
2161
2088
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2162
2089
|
401: {
|
|
2163
2090
|
headers: {
|
|
@@ -2217,7 +2144,7 @@ export interface paths {
|
|
|
2217
2144
|
patch?: never;
|
|
2218
2145
|
trace?: never;
|
|
2219
2146
|
};
|
|
2220
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
2147
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules": {
|
|
2221
2148
|
parameters: {
|
|
2222
2149
|
query?: never;
|
|
2223
2150
|
header?: never;
|
|
@@ -2227,10 +2154,11 @@ export interface paths {
|
|
|
2227
2154
|
get?: never;
|
|
2228
2155
|
put?: never;
|
|
2229
2156
|
/**
|
|
2230
|
-
*
|
|
2231
|
-
* @description Requires at
|
|
2232
|
-
*
|
|
2233
|
-
*
|
|
2157
|
+
* Creates a targeting rule on the resolved flag in the resolved environment.
|
|
2158
|
+
* @description Requires at
|
|
2159
|
+
* least Member. Re-fetches via GetTargetingRuleQuery using the id returned
|
|
2160
|
+
* from CreateTargetingRuleCommand so the response reflects exactly what was
|
|
2161
|
+
* persisted (e.g. server-assigned priority and condition/group ids).
|
|
2234
2162
|
*/
|
|
2235
2163
|
post: {
|
|
2236
2164
|
parameters: {
|
|
@@ -2240,14 +2168,15 @@ export interface paths {
|
|
|
2240
2168
|
org: string;
|
|
2241
2169
|
project: string;
|
|
2242
2170
|
flag: string;
|
|
2171
|
+
env: string;
|
|
2243
2172
|
};
|
|
2244
2173
|
cookie?: never;
|
|
2245
2174
|
};
|
|
2246
2175
|
requestBody?: {
|
|
2247
2176
|
content: {
|
|
2248
|
-
"application/json": components["schemas"]["
|
|
2249
|
-
"text/json": components["schemas"]["
|
|
2250
|
-
"application/*+json": components["schemas"]["
|
|
2177
|
+
"application/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2178
|
+
"text/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2179
|
+
"application/*+json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2251
2180
|
};
|
|
2252
2181
|
};
|
|
2253
2182
|
responses: {
|
|
@@ -2260,7 +2189,7 @@ export interface paths {
|
|
|
2260
2189
|
[name: string]: unknown;
|
|
2261
2190
|
};
|
|
2262
2191
|
content: {
|
|
2263
|
-
"application/json": components["schemas"]["
|
|
2192
|
+
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
2264
2193
|
};
|
|
2265
2194
|
};
|
|
2266
2195
|
/** @description Bad Request */
|
|
@@ -2333,19 +2262,15 @@ export interface paths {
|
|
|
2333
2262
|
patch?: never;
|
|
2334
2263
|
trace?: never;
|
|
2335
2264
|
};
|
|
2336
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
2265
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/{ruleId}": {
|
|
2337
2266
|
parameters: {
|
|
2338
2267
|
query?: never;
|
|
2339
2268
|
header?: never;
|
|
2340
2269
|
path?: never;
|
|
2341
2270
|
cookie?: never;
|
|
2342
2271
|
};
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
* Updates a variation's name/value/description.
|
|
2346
|
-
* @description Requires at least Member. The variation's key is immutable via this endpoint.
|
|
2347
|
-
*/
|
|
2348
|
-
put: {
|
|
2272
|
+
/** Gets a single targeting rule on the resolved flag in the resolved environment by id. */
|
|
2273
|
+
get: {
|
|
2349
2274
|
parameters: {
|
|
2350
2275
|
query?: never;
|
|
2351
2276
|
header?: never;
|
|
@@ -2353,15 +2278,1111 @@ export interface paths {
|
|
|
2353
2278
|
org: string;
|
|
2354
2279
|
project: string;
|
|
2355
2280
|
flag: string;
|
|
2356
|
-
|
|
2281
|
+
env: string;
|
|
2282
|
+
ruleId: string;
|
|
2357
2283
|
};
|
|
2358
2284
|
cookie?: never;
|
|
2359
2285
|
};
|
|
2360
|
-
requestBody?:
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2286
|
+
requestBody?: never;
|
|
2287
|
+
responses: {
|
|
2288
|
+
/** @description OK */
|
|
2289
|
+
200: {
|
|
2290
|
+
headers: {
|
|
2291
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2292
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2293
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2294
|
+
[name: string]: unknown;
|
|
2295
|
+
};
|
|
2296
|
+
content: {
|
|
2297
|
+
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
2298
|
+
};
|
|
2299
|
+
};
|
|
2300
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2301
|
+
401: {
|
|
2302
|
+
headers: {
|
|
2303
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2304
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2305
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2306
|
+
[name: string]: unknown;
|
|
2307
|
+
};
|
|
2308
|
+
content: {
|
|
2309
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2310
|
+
};
|
|
2311
|
+
};
|
|
2312
|
+
/** @description Not Found */
|
|
2313
|
+
404: {
|
|
2314
|
+
headers: {
|
|
2315
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2316
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2317
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2318
|
+
[name: string]: unknown;
|
|
2319
|
+
};
|
|
2320
|
+
content: {
|
|
2321
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2322
|
+
};
|
|
2323
|
+
};
|
|
2324
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2325
|
+
429: {
|
|
2326
|
+
headers: {
|
|
2327
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2328
|
+
"Retry-After"?: number;
|
|
2329
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2330
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2331
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2332
|
+
[name: string]: unknown;
|
|
2333
|
+
};
|
|
2334
|
+
content: {
|
|
2335
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2336
|
+
};
|
|
2337
|
+
};
|
|
2338
|
+
};
|
|
2339
|
+
};
|
|
2340
|
+
/**
|
|
2341
|
+
* Updates a targeting rule's variation/description/rollout/segment/conditions wholesale.
|
|
2342
|
+
* @description Requires at least Member.
|
|
2343
|
+
*/
|
|
2344
|
+
put: {
|
|
2345
|
+
parameters: {
|
|
2346
|
+
query?: never;
|
|
2347
|
+
header?: never;
|
|
2348
|
+
path: {
|
|
2349
|
+
org: string;
|
|
2350
|
+
project: string;
|
|
2351
|
+
flag: string;
|
|
2352
|
+
env: string;
|
|
2353
|
+
ruleId: string;
|
|
2354
|
+
};
|
|
2355
|
+
cookie?: never;
|
|
2356
|
+
};
|
|
2357
|
+
requestBody?: {
|
|
2358
|
+
content: {
|
|
2359
|
+
"application/json": components["schemas"]["PublicUpdateTargetingRuleRequest"];
|
|
2360
|
+
"text/json": components["schemas"]["PublicUpdateTargetingRuleRequest"];
|
|
2361
|
+
"application/*+json": components["schemas"]["PublicUpdateTargetingRuleRequest"];
|
|
2362
|
+
};
|
|
2363
|
+
};
|
|
2364
|
+
responses: {
|
|
2365
|
+
/** @description No Content */
|
|
2366
|
+
204: {
|
|
2367
|
+
headers: {
|
|
2368
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2369
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2370
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2371
|
+
[name: string]: unknown;
|
|
2372
|
+
};
|
|
2373
|
+
content?: never;
|
|
2374
|
+
};
|
|
2375
|
+
/** @description Bad Request */
|
|
2376
|
+
400: {
|
|
2377
|
+
headers: {
|
|
2378
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2379
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2380
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2381
|
+
[name: string]: unknown;
|
|
2382
|
+
};
|
|
2383
|
+
content: {
|
|
2384
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2385
|
+
};
|
|
2386
|
+
};
|
|
2387
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2388
|
+
401: {
|
|
2389
|
+
headers: {
|
|
2390
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2391
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2392
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2393
|
+
[name: string]: unknown;
|
|
2394
|
+
};
|
|
2395
|
+
content: {
|
|
2396
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2397
|
+
};
|
|
2398
|
+
};
|
|
2399
|
+
/** @description Forbidden */
|
|
2400
|
+
403: {
|
|
2401
|
+
headers: {
|
|
2402
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2403
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2404
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2405
|
+
[name: string]: unknown;
|
|
2406
|
+
};
|
|
2407
|
+
content: {
|
|
2408
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2409
|
+
};
|
|
2410
|
+
};
|
|
2411
|
+
/** @description Not Found */
|
|
2412
|
+
404: {
|
|
2413
|
+
headers: {
|
|
2414
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2415
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2416
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2417
|
+
[name: string]: unknown;
|
|
2418
|
+
};
|
|
2419
|
+
content: {
|
|
2420
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2421
|
+
};
|
|
2422
|
+
};
|
|
2423
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2424
|
+
429: {
|
|
2425
|
+
headers: {
|
|
2426
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2427
|
+
"Retry-After"?: number;
|
|
2428
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2429
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2430
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2431
|
+
[name: string]: unknown;
|
|
2432
|
+
};
|
|
2433
|
+
content: {
|
|
2434
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2435
|
+
};
|
|
2436
|
+
};
|
|
2437
|
+
};
|
|
2438
|
+
};
|
|
2439
|
+
post?: never;
|
|
2440
|
+
/**
|
|
2441
|
+
* Deletes a targeting rule from the resolved flag in the resolved environment.
|
|
2442
|
+
* @description Requires at least Member.
|
|
2443
|
+
*/
|
|
2444
|
+
delete: {
|
|
2445
|
+
parameters: {
|
|
2446
|
+
query?: never;
|
|
2447
|
+
header?: never;
|
|
2448
|
+
path: {
|
|
2449
|
+
org: string;
|
|
2450
|
+
project: string;
|
|
2451
|
+
flag: string;
|
|
2452
|
+
env: string;
|
|
2453
|
+
ruleId: string;
|
|
2454
|
+
};
|
|
2455
|
+
cookie?: never;
|
|
2456
|
+
};
|
|
2457
|
+
requestBody?: never;
|
|
2458
|
+
responses: {
|
|
2459
|
+
/** @description No Content */
|
|
2460
|
+
204: {
|
|
2461
|
+
headers: {
|
|
2462
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2463
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2464
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2465
|
+
[name: string]: unknown;
|
|
2466
|
+
};
|
|
2467
|
+
content?: never;
|
|
2468
|
+
};
|
|
2469
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2470
|
+
401: {
|
|
2471
|
+
headers: {
|
|
2472
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2473
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2474
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2475
|
+
[name: string]: unknown;
|
|
2476
|
+
};
|
|
2477
|
+
content: {
|
|
2478
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2479
|
+
};
|
|
2480
|
+
};
|
|
2481
|
+
/** @description Forbidden */
|
|
2482
|
+
403: {
|
|
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"]["PublicApiErrorEnvelope"];
|
|
2491
|
+
};
|
|
2492
|
+
};
|
|
2493
|
+
/** @description Not Found */
|
|
2494
|
+
404: {
|
|
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 Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2506
|
+
429: {
|
|
2507
|
+
headers: {
|
|
2508
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2509
|
+
"Retry-After"?: number;
|
|
2510
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2511
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2512
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2513
|
+
[name: string]: unknown;
|
|
2514
|
+
};
|
|
2515
|
+
content: {
|
|
2516
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2517
|
+
};
|
|
2518
|
+
};
|
|
2519
|
+
};
|
|
2520
|
+
};
|
|
2521
|
+
options?: never;
|
|
2522
|
+
head?: never;
|
|
2523
|
+
patch?: never;
|
|
2524
|
+
trace?: never;
|
|
2525
|
+
};
|
|
2526
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/reorder": {
|
|
2527
|
+
parameters: {
|
|
2528
|
+
query?: never;
|
|
2529
|
+
header?: never;
|
|
2530
|
+
path?: never;
|
|
2531
|
+
cookie?: never;
|
|
2532
|
+
};
|
|
2533
|
+
get?: never;
|
|
2534
|
+
/**
|
|
2535
|
+
* Reorders the resolved flag's targeting rules in the resolved environment by priority.
|
|
2536
|
+
* @description Requires at least Member. Must include every existing rule id exactly once — see the
|
|
2537
|
+
* type-level remarks on the dup/omission 500 wart.
|
|
2538
|
+
*/
|
|
2539
|
+
put: {
|
|
2540
|
+
parameters: {
|
|
2541
|
+
query?: never;
|
|
2542
|
+
header?: never;
|
|
2543
|
+
path: {
|
|
2544
|
+
org: string;
|
|
2545
|
+
project: string;
|
|
2546
|
+
flag: string;
|
|
2547
|
+
env: string;
|
|
2548
|
+
};
|
|
2549
|
+
cookie?: never;
|
|
2550
|
+
};
|
|
2551
|
+
requestBody?: {
|
|
2552
|
+
content: {
|
|
2553
|
+
"application/json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2554
|
+
"text/json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2555
|
+
"application/*+json": components["schemas"]["PublicReorderRulesRequest"];
|
|
2556
|
+
};
|
|
2557
|
+
};
|
|
2558
|
+
responses: {
|
|
2559
|
+
/** @description No Content */
|
|
2560
|
+
204: {
|
|
2561
|
+
headers: {
|
|
2562
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2563
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2564
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2565
|
+
[name: string]: unknown;
|
|
2566
|
+
};
|
|
2567
|
+
content?: never;
|
|
2568
|
+
};
|
|
2569
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2570
|
+
401: {
|
|
2571
|
+
headers: {
|
|
2572
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2573
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2574
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2575
|
+
[name: string]: unknown;
|
|
2576
|
+
};
|
|
2577
|
+
content: {
|
|
2578
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2579
|
+
};
|
|
2580
|
+
};
|
|
2581
|
+
/** @description Forbidden */
|
|
2582
|
+
403: {
|
|
2583
|
+
headers: {
|
|
2584
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2585
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2586
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2587
|
+
[name: string]: unknown;
|
|
2588
|
+
};
|
|
2589
|
+
content: {
|
|
2590
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2591
|
+
};
|
|
2592
|
+
};
|
|
2593
|
+
/** @description Not Found */
|
|
2594
|
+
404: {
|
|
2595
|
+
headers: {
|
|
2596
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2597
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2598
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2599
|
+
[name: string]: unknown;
|
|
2600
|
+
};
|
|
2601
|
+
content: {
|
|
2602
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2603
|
+
};
|
|
2604
|
+
};
|
|
2605
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2606
|
+
429: {
|
|
2607
|
+
headers: {
|
|
2608
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2609
|
+
"Retry-After"?: number;
|
|
2610
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2611
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2612
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2613
|
+
[name: string]: unknown;
|
|
2614
|
+
};
|
|
2615
|
+
content: {
|
|
2616
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2617
|
+
};
|
|
2618
|
+
};
|
|
2619
|
+
};
|
|
2620
|
+
};
|
|
2621
|
+
post?: never;
|
|
2622
|
+
delete?: never;
|
|
2623
|
+
options?: never;
|
|
2624
|
+
head?: never;
|
|
2625
|
+
patch?: never;
|
|
2626
|
+
trace?: never;
|
|
2627
|
+
};
|
|
2628
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/variations": {
|
|
2629
|
+
parameters: {
|
|
2630
|
+
query?: never;
|
|
2631
|
+
header?: never;
|
|
2632
|
+
path?: never;
|
|
2633
|
+
cookie?: never;
|
|
2634
|
+
};
|
|
2635
|
+
get?: never;
|
|
2636
|
+
put?: never;
|
|
2637
|
+
/**
|
|
2638
|
+
* Adds a variation to the resolved flag.
|
|
2639
|
+
* @description Requires at least Member. Re-fetches the flag via
|
|
2640
|
+
* GetFeatureFlagQuery and locates the new variation by the id returned from
|
|
2641
|
+
* AddVariationCommand so the response reflects exactly what was persisted.
|
|
2642
|
+
*/
|
|
2643
|
+
post: {
|
|
2644
|
+
parameters: {
|
|
2645
|
+
query?: never;
|
|
2646
|
+
header?: never;
|
|
2647
|
+
path: {
|
|
2648
|
+
org: string;
|
|
2649
|
+
project: string;
|
|
2650
|
+
flag: string;
|
|
2651
|
+
};
|
|
2652
|
+
cookie?: never;
|
|
2653
|
+
};
|
|
2654
|
+
requestBody?: {
|
|
2655
|
+
content: {
|
|
2656
|
+
"application/json": components["schemas"]["PublicAddVariationRequest"];
|
|
2657
|
+
"text/json": components["schemas"]["PublicAddVariationRequest"];
|
|
2658
|
+
"application/*+json": components["schemas"]["PublicAddVariationRequest"];
|
|
2659
|
+
};
|
|
2660
|
+
};
|
|
2661
|
+
responses: {
|
|
2662
|
+
/** @description Created */
|
|
2663
|
+
201: {
|
|
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"]["PublicVariationResponse"];
|
|
2672
|
+
};
|
|
2673
|
+
};
|
|
2674
|
+
/** @description Bad Request */
|
|
2675
|
+
400: {
|
|
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 Authentication is required, or the supplied API token is invalid or expired. */
|
|
2687
|
+
401: {
|
|
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 Forbidden */
|
|
2699
|
+
403: {
|
|
2700
|
+
headers: {
|
|
2701
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2702
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2703
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2704
|
+
[name: string]: unknown;
|
|
2705
|
+
};
|
|
2706
|
+
content: {
|
|
2707
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2708
|
+
};
|
|
2709
|
+
};
|
|
2710
|
+
/** @description Not Found */
|
|
2711
|
+
404: {
|
|
2712
|
+
headers: {
|
|
2713
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2714
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2715
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2716
|
+
[name: string]: unknown;
|
|
2717
|
+
};
|
|
2718
|
+
content: {
|
|
2719
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2720
|
+
};
|
|
2721
|
+
};
|
|
2722
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2723
|
+
429: {
|
|
2724
|
+
headers: {
|
|
2725
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2726
|
+
"Retry-After"?: number;
|
|
2727
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2728
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2729
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2730
|
+
[name: string]: unknown;
|
|
2731
|
+
};
|
|
2732
|
+
content: {
|
|
2733
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2734
|
+
};
|
|
2735
|
+
};
|
|
2736
|
+
};
|
|
2737
|
+
};
|
|
2738
|
+
delete?: never;
|
|
2739
|
+
options?: never;
|
|
2740
|
+
head?: never;
|
|
2741
|
+
patch?: never;
|
|
2742
|
+
trace?: never;
|
|
2743
|
+
};
|
|
2744
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/variations/{variationId}": {
|
|
2745
|
+
parameters: {
|
|
2746
|
+
query?: never;
|
|
2747
|
+
header?: never;
|
|
2748
|
+
path?: never;
|
|
2749
|
+
cookie?: never;
|
|
2750
|
+
};
|
|
2751
|
+
get?: never;
|
|
2752
|
+
/**
|
|
2753
|
+
* Updates a variation's name/value/description.
|
|
2754
|
+
* @description Requires at least Member. The variation's key is immutable via this endpoint.
|
|
2755
|
+
*/
|
|
2756
|
+
put: {
|
|
2757
|
+
parameters: {
|
|
2758
|
+
query?: never;
|
|
2759
|
+
header?: never;
|
|
2760
|
+
path: {
|
|
2761
|
+
org: string;
|
|
2762
|
+
project: string;
|
|
2763
|
+
flag: string;
|
|
2764
|
+
variationId: string;
|
|
2765
|
+
};
|
|
2766
|
+
cookie?: never;
|
|
2767
|
+
};
|
|
2768
|
+
requestBody?: {
|
|
2769
|
+
content: {
|
|
2770
|
+
"application/json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2771
|
+
"text/json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2772
|
+
"application/*+json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2773
|
+
};
|
|
2774
|
+
};
|
|
2775
|
+
responses: {
|
|
2776
|
+
/** @description No Content */
|
|
2777
|
+
204: {
|
|
2778
|
+
headers: {
|
|
2779
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2780
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2781
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2782
|
+
[name: string]: unknown;
|
|
2783
|
+
};
|
|
2784
|
+
content?: never;
|
|
2785
|
+
};
|
|
2786
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2787
|
+
401: {
|
|
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 Forbidden */
|
|
2799
|
+
403: {
|
|
2800
|
+
headers: {
|
|
2801
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2802
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2803
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2804
|
+
[name: string]: unknown;
|
|
2805
|
+
};
|
|
2806
|
+
content: {
|
|
2807
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2808
|
+
};
|
|
2809
|
+
};
|
|
2810
|
+
/** @description Not Found */
|
|
2811
|
+
404: {
|
|
2812
|
+
headers: {
|
|
2813
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2814
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2815
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2816
|
+
[name: string]: unknown;
|
|
2817
|
+
};
|
|
2818
|
+
content: {
|
|
2819
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2820
|
+
};
|
|
2821
|
+
};
|
|
2822
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2823
|
+
429: {
|
|
2824
|
+
headers: {
|
|
2825
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2826
|
+
"Retry-After"?: number;
|
|
2827
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2828
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2829
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2830
|
+
[name: string]: unknown;
|
|
2831
|
+
};
|
|
2832
|
+
content: {
|
|
2833
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2834
|
+
};
|
|
2835
|
+
};
|
|
2836
|
+
};
|
|
2837
|
+
};
|
|
2838
|
+
post?: never;
|
|
2839
|
+
/**
|
|
2840
|
+
* Removes a variation from the resolved flag.
|
|
2841
|
+
* @description Requires at least Member. A variation with
|
|
2842
|
+
* dependents (used as default variation, referenced by a targeting rule, or flagged
|
|
2843
|
+
* `VARIATION_HAS_DEPENDENTS`) throws the existing
|
|
2844
|
+
* ValidationException, which the
|
|
2845
|
+
* exception filter maps to a 400 `validation_failed` envelope — this action doesn't
|
|
2846
|
+
* special-case it.
|
|
2847
|
+
*/
|
|
2848
|
+
delete: {
|
|
2849
|
+
parameters: {
|
|
2850
|
+
query?: never;
|
|
2851
|
+
header?: never;
|
|
2852
|
+
path: {
|
|
2853
|
+
org: string;
|
|
2854
|
+
project: string;
|
|
2855
|
+
flag: string;
|
|
2856
|
+
variationId: string;
|
|
2857
|
+
};
|
|
2858
|
+
cookie?: never;
|
|
2859
|
+
};
|
|
2860
|
+
requestBody?: never;
|
|
2861
|
+
responses: {
|
|
2862
|
+
/** @description No Content */
|
|
2863
|
+
204: {
|
|
2864
|
+
headers: {
|
|
2865
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2866
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2867
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2868
|
+
[name: string]: unknown;
|
|
2869
|
+
};
|
|
2870
|
+
content?: never;
|
|
2871
|
+
};
|
|
2872
|
+
/** @description Bad Request */
|
|
2873
|
+
400: {
|
|
2874
|
+
headers: {
|
|
2875
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2876
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2877
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2878
|
+
[name: string]: unknown;
|
|
2879
|
+
};
|
|
2880
|
+
content: {
|
|
2881
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2882
|
+
};
|
|
2883
|
+
};
|
|
2884
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2885
|
+
401: {
|
|
2886
|
+
headers: {
|
|
2887
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2888
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2889
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2890
|
+
[name: string]: unknown;
|
|
2891
|
+
};
|
|
2892
|
+
content: {
|
|
2893
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2894
|
+
};
|
|
2895
|
+
};
|
|
2896
|
+
/** @description Forbidden */
|
|
2897
|
+
403: {
|
|
2898
|
+
headers: {
|
|
2899
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2900
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2901
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2902
|
+
[name: string]: unknown;
|
|
2903
|
+
};
|
|
2904
|
+
content: {
|
|
2905
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2906
|
+
};
|
|
2907
|
+
};
|
|
2908
|
+
/** @description Not Found */
|
|
2909
|
+
404: {
|
|
2910
|
+
headers: {
|
|
2911
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2912
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2913
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2914
|
+
[name: string]: unknown;
|
|
2915
|
+
};
|
|
2916
|
+
content: {
|
|
2917
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2918
|
+
};
|
|
2919
|
+
};
|
|
2920
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2921
|
+
429: {
|
|
2922
|
+
headers: {
|
|
2923
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2924
|
+
"Retry-After"?: number;
|
|
2925
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2926
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2927
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2928
|
+
[name: string]: unknown;
|
|
2929
|
+
};
|
|
2930
|
+
content: {
|
|
2931
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2932
|
+
};
|
|
2933
|
+
};
|
|
2934
|
+
};
|
|
2935
|
+
};
|
|
2936
|
+
options?: never;
|
|
2937
|
+
head?: never;
|
|
2938
|
+
patch?: never;
|
|
2939
|
+
trace?: never;
|
|
2940
|
+
};
|
|
2941
|
+
"/api/v1/me": {
|
|
2942
|
+
parameters: {
|
|
2943
|
+
query?: never;
|
|
2944
|
+
header?: never;
|
|
2945
|
+
path?: never;
|
|
2946
|
+
cookie?: never;
|
|
2947
|
+
};
|
|
2948
|
+
/** Returns the authenticated caller's public identity (see MeResponse). */
|
|
2949
|
+
get: {
|
|
2950
|
+
parameters: {
|
|
2951
|
+
query?: never;
|
|
2952
|
+
header?: never;
|
|
2953
|
+
path?: never;
|
|
2954
|
+
cookie?: never;
|
|
2955
|
+
};
|
|
2956
|
+
requestBody?: never;
|
|
2957
|
+
responses: {
|
|
2958
|
+
/** @description OK */
|
|
2959
|
+
200: {
|
|
2960
|
+
headers: {
|
|
2961
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2962
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2963
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2964
|
+
[name: string]: unknown;
|
|
2965
|
+
};
|
|
2966
|
+
content: {
|
|
2967
|
+
"application/json": components["schemas"]["MeResponse"];
|
|
2968
|
+
};
|
|
2969
|
+
};
|
|
2970
|
+
/** @description Unauthorized */
|
|
2971
|
+
401: {
|
|
2972
|
+
headers: {
|
|
2973
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2974
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2975
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2976
|
+
[name: string]: unknown;
|
|
2977
|
+
};
|
|
2978
|
+
content: {
|
|
2979
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2980
|
+
};
|
|
2981
|
+
};
|
|
2982
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2983
|
+
429: {
|
|
2984
|
+
headers: {
|
|
2985
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
2986
|
+
"Retry-After"?: number;
|
|
2987
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2988
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2989
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2990
|
+
[name: string]: unknown;
|
|
2991
|
+
};
|
|
2992
|
+
content: {
|
|
2993
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2994
|
+
};
|
|
2995
|
+
};
|
|
2996
|
+
};
|
|
2997
|
+
};
|
|
2998
|
+
put?: never;
|
|
2999
|
+
post?: never;
|
|
3000
|
+
delete?: never;
|
|
3001
|
+
options?: never;
|
|
3002
|
+
head?: never;
|
|
3003
|
+
patch?: never;
|
|
3004
|
+
trace?: never;
|
|
3005
|
+
};
|
|
3006
|
+
"/api/v1/orgs": {
|
|
3007
|
+
parameters: {
|
|
3008
|
+
query?: never;
|
|
3009
|
+
header?: never;
|
|
3010
|
+
path?: never;
|
|
3011
|
+
cookie?: never;
|
|
3012
|
+
};
|
|
3013
|
+
/** Lists the caller's organizations, cursor-paginated. */
|
|
3014
|
+
get: {
|
|
3015
|
+
parameters: {
|
|
3016
|
+
query?: {
|
|
3017
|
+
limit?: number;
|
|
3018
|
+
cursor?: string;
|
|
3019
|
+
};
|
|
3020
|
+
header?: never;
|
|
3021
|
+
path?: never;
|
|
3022
|
+
cookie?: never;
|
|
3023
|
+
};
|
|
3024
|
+
requestBody?: never;
|
|
3025
|
+
responses: {
|
|
3026
|
+
/** @description OK */
|
|
3027
|
+
200: {
|
|
3028
|
+
headers: {
|
|
3029
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3030
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3031
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3032
|
+
[name: string]: unknown;
|
|
3033
|
+
};
|
|
3034
|
+
content: {
|
|
3035
|
+
"application/json": components["schemas"]["OrganizationResponsePagedResult"];
|
|
3036
|
+
};
|
|
3037
|
+
};
|
|
3038
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3039
|
+
401: {
|
|
3040
|
+
headers: {
|
|
3041
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3042
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3043
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3044
|
+
[name: string]: unknown;
|
|
3045
|
+
};
|
|
3046
|
+
content: {
|
|
3047
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3048
|
+
};
|
|
3049
|
+
};
|
|
3050
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3051
|
+
429: {
|
|
3052
|
+
headers: {
|
|
3053
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3054
|
+
"Retry-After"?: number;
|
|
3055
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3056
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3057
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3058
|
+
[name: string]: unknown;
|
|
3059
|
+
};
|
|
3060
|
+
content: {
|
|
3061
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3062
|
+
};
|
|
3063
|
+
};
|
|
3064
|
+
};
|
|
3065
|
+
};
|
|
3066
|
+
put?: never;
|
|
3067
|
+
post?: never;
|
|
3068
|
+
delete?: never;
|
|
3069
|
+
options?: never;
|
|
3070
|
+
head?: never;
|
|
3071
|
+
patch?: never;
|
|
3072
|
+
trace?: never;
|
|
3073
|
+
};
|
|
3074
|
+
"/api/v1/orgs/{org}": {
|
|
3075
|
+
parameters: {
|
|
3076
|
+
query?: never;
|
|
3077
|
+
header?: never;
|
|
3078
|
+
path?: never;
|
|
3079
|
+
cookie?: never;
|
|
3080
|
+
};
|
|
3081
|
+
/** Gets one of the caller's organizations by slug or id. */
|
|
3082
|
+
get: {
|
|
3083
|
+
parameters: {
|
|
3084
|
+
query?: never;
|
|
3085
|
+
header?: never;
|
|
3086
|
+
path: {
|
|
3087
|
+
org: string;
|
|
3088
|
+
};
|
|
3089
|
+
cookie?: never;
|
|
3090
|
+
};
|
|
3091
|
+
requestBody?: never;
|
|
3092
|
+
responses: {
|
|
3093
|
+
/** @description OK */
|
|
3094
|
+
200: {
|
|
3095
|
+
headers: {
|
|
3096
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3097
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3098
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3099
|
+
[name: string]: unknown;
|
|
3100
|
+
};
|
|
3101
|
+
content: {
|
|
3102
|
+
"application/json": components["schemas"]["OrganizationResponse"];
|
|
3103
|
+
};
|
|
3104
|
+
};
|
|
3105
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3106
|
+
401: {
|
|
3107
|
+
headers: {
|
|
3108
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3109
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3110
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3111
|
+
[name: string]: unknown;
|
|
3112
|
+
};
|
|
3113
|
+
content: {
|
|
3114
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3115
|
+
};
|
|
3116
|
+
};
|
|
3117
|
+
/** @description Not Found */
|
|
3118
|
+
404: {
|
|
3119
|
+
headers: {
|
|
3120
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3121
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3122
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3123
|
+
[name: string]: unknown;
|
|
3124
|
+
};
|
|
3125
|
+
content: {
|
|
3126
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3127
|
+
};
|
|
3128
|
+
};
|
|
3129
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3130
|
+
429: {
|
|
3131
|
+
headers: {
|
|
3132
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3133
|
+
"Retry-After"?: number;
|
|
3134
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3135
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3136
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3137
|
+
[name: string]: unknown;
|
|
3138
|
+
};
|
|
3139
|
+
content: {
|
|
3140
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3141
|
+
};
|
|
3142
|
+
};
|
|
3143
|
+
};
|
|
3144
|
+
};
|
|
3145
|
+
put?: never;
|
|
3146
|
+
post?: never;
|
|
3147
|
+
delete?: never;
|
|
3148
|
+
options?: never;
|
|
3149
|
+
head?: never;
|
|
3150
|
+
patch?: never;
|
|
3151
|
+
trace?: never;
|
|
3152
|
+
};
|
|
3153
|
+
"/api/v1/orgs/{org}/projects": {
|
|
3154
|
+
parameters: {
|
|
3155
|
+
query?: never;
|
|
3156
|
+
header?: never;
|
|
3157
|
+
path?: never;
|
|
3158
|
+
cookie?: never;
|
|
3159
|
+
};
|
|
3160
|
+
/** Lists projects in the resolved organization, cursor-paginated. */
|
|
3161
|
+
get: {
|
|
3162
|
+
parameters: {
|
|
3163
|
+
query?: {
|
|
3164
|
+
limit?: number;
|
|
3165
|
+
cursor?: string;
|
|
3166
|
+
};
|
|
3167
|
+
header?: never;
|
|
3168
|
+
path: {
|
|
3169
|
+
org: string;
|
|
3170
|
+
};
|
|
3171
|
+
cookie?: never;
|
|
3172
|
+
};
|
|
3173
|
+
requestBody?: never;
|
|
3174
|
+
responses: {
|
|
3175
|
+
/** @description OK */
|
|
3176
|
+
200: {
|
|
3177
|
+
headers: {
|
|
3178
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3179
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3180
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3181
|
+
[name: string]: unknown;
|
|
3182
|
+
};
|
|
3183
|
+
content: {
|
|
3184
|
+
"application/json": components["schemas"]["ProjectResponsePagedResult"];
|
|
3185
|
+
};
|
|
3186
|
+
};
|
|
3187
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3188
|
+
401: {
|
|
3189
|
+
headers: {
|
|
3190
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3191
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3192
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3193
|
+
[name: string]: unknown;
|
|
3194
|
+
};
|
|
3195
|
+
content: {
|
|
3196
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3197
|
+
};
|
|
3198
|
+
};
|
|
3199
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3200
|
+
429: {
|
|
3201
|
+
headers: {
|
|
3202
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3203
|
+
"Retry-After"?: number;
|
|
3204
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3205
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3206
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3207
|
+
[name: string]: unknown;
|
|
3208
|
+
};
|
|
3209
|
+
content: {
|
|
3210
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3211
|
+
};
|
|
3212
|
+
};
|
|
3213
|
+
};
|
|
3214
|
+
};
|
|
3215
|
+
put?: never;
|
|
3216
|
+
/**
|
|
3217
|
+
* Creates a project in the resolved organization.
|
|
3218
|
+
* @description Requires at least Member.
|
|
3219
|
+
*/
|
|
3220
|
+
post: {
|
|
3221
|
+
parameters: {
|
|
3222
|
+
query?: never;
|
|
3223
|
+
header?: never;
|
|
3224
|
+
path: {
|
|
3225
|
+
org: string;
|
|
3226
|
+
};
|
|
3227
|
+
cookie?: never;
|
|
3228
|
+
};
|
|
3229
|
+
requestBody?: {
|
|
3230
|
+
content: {
|
|
3231
|
+
"application/json": components["schemas"]["PublicCreateProjectRequest"];
|
|
3232
|
+
"text/json": components["schemas"]["PublicCreateProjectRequest"];
|
|
3233
|
+
"application/*+json": components["schemas"]["PublicCreateProjectRequest"];
|
|
3234
|
+
};
|
|
3235
|
+
};
|
|
3236
|
+
responses: {
|
|
3237
|
+
/** @description Created */
|
|
3238
|
+
201: {
|
|
3239
|
+
headers: {
|
|
3240
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3241
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3242
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3243
|
+
[name: string]: unknown;
|
|
3244
|
+
};
|
|
3245
|
+
content: {
|
|
3246
|
+
"application/json": components["schemas"]["ProjectResponse"];
|
|
3247
|
+
};
|
|
3248
|
+
};
|
|
3249
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3250
|
+
401: {
|
|
3251
|
+
headers: {
|
|
3252
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3253
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3254
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3255
|
+
[name: string]: unknown;
|
|
3256
|
+
};
|
|
3257
|
+
content: {
|
|
3258
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3259
|
+
};
|
|
3260
|
+
};
|
|
3261
|
+
/** @description Forbidden */
|
|
3262
|
+
403: {
|
|
3263
|
+
headers: {
|
|
3264
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3265
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3266
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3267
|
+
[name: string]: unknown;
|
|
3268
|
+
};
|
|
3269
|
+
content: {
|
|
3270
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3271
|
+
};
|
|
3272
|
+
};
|
|
3273
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3274
|
+
429: {
|
|
3275
|
+
headers: {
|
|
3276
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3277
|
+
"Retry-After"?: number;
|
|
3278
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3279
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3280
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3281
|
+
[name: string]: unknown;
|
|
3282
|
+
};
|
|
3283
|
+
content: {
|
|
3284
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3285
|
+
};
|
|
3286
|
+
};
|
|
3287
|
+
};
|
|
3288
|
+
};
|
|
3289
|
+
delete?: never;
|
|
3290
|
+
options?: never;
|
|
3291
|
+
head?: never;
|
|
3292
|
+
patch?: never;
|
|
3293
|
+
trace?: never;
|
|
3294
|
+
};
|
|
3295
|
+
"/api/v1/orgs/{org}/projects/{project}": {
|
|
3296
|
+
parameters: {
|
|
3297
|
+
query?: never;
|
|
3298
|
+
header?: never;
|
|
3299
|
+
path?: never;
|
|
3300
|
+
cookie?: never;
|
|
3301
|
+
};
|
|
3302
|
+
/** Gets a project in the resolved organization by key or id. */
|
|
3303
|
+
get: {
|
|
3304
|
+
parameters: {
|
|
3305
|
+
query?: never;
|
|
3306
|
+
header?: never;
|
|
3307
|
+
path: {
|
|
3308
|
+
org: string;
|
|
3309
|
+
project: string;
|
|
3310
|
+
};
|
|
3311
|
+
cookie?: never;
|
|
3312
|
+
};
|
|
3313
|
+
requestBody?: never;
|
|
3314
|
+
responses: {
|
|
3315
|
+
/** @description OK */
|
|
3316
|
+
200: {
|
|
3317
|
+
headers: {
|
|
3318
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3319
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3320
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3321
|
+
[name: string]: unknown;
|
|
3322
|
+
};
|
|
3323
|
+
content: {
|
|
3324
|
+
"application/json": components["schemas"]["ProjectResponse"];
|
|
3325
|
+
};
|
|
3326
|
+
};
|
|
3327
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3328
|
+
401: {
|
|
3329
|
+
headers: {
|
|
3330
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3331
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3332
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3333
|
+
[name: string]: unknown;
|
|
3334
|
+
};
|
|
3335
|
+
content: {
|
|
3336
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3337
|
+
};
|
|
3338
|
+
};
|
|
3339
|
+
/** @description Not Found */
|
|
3340
|
+
404: {
|
|
3341
|
+
headers: {
|
|
3342
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3343
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3344
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3345
|
+
[name: string]: unknown;
|
|
3346
|
+
};
|
|
3347
|
+
content: {
|
|
3348
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3349
|
+
};
|
|
3350
|
+
};
|
|
3351
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3352
|
+
429: {
|
|
3353
|
+
headers: {
|
|
3354
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3355
|
+
"Retry-After"?: number;
|
|
3356
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3357
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3358
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3359
|
+
[name: string]: unknown;
|
|
3360
|
+
};
|
|
3361
|
+
content: {
|
|
3362
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3363
|
+
};
|
|
3364
|
+
};
|
|
3365
|
+
};
|
|
3366
|
+
};
|
|
3367
|
+
/**
|
|
3368
|
+
* Updates a project's name/description.
|
|
3369
|
+
* @description Requires at least Member.
|
|
3370
|
+
*/
|
|
3371
|
+
put: {
|
|
3372
|
+
parameters: {
|
|
3373
|
+
query?: never;
|
|
3374
|
+
header?: never;
|
|
3375
|
+
path: {
|
|
3376
|
+
org: string;
|
|
3377
|
+
project: string;
|
|
3378
|
+
};
|
|
3379
|
+
cookie?: never;
|
|
3380
|
+
};
|
|
3381
|
+
requestBody?: {
|
|
3382
|
+
content: {
|
|
3383
|
+
"application/json": components["schemas"]["PublicUpdateProjectRequest"];
|
|
3384
|
+
"text/json": components["schemas"]["PublicUpdateProjectRequest"];
|
|
3385
|
+
"application/*+json": components["schemas"]["PublicUpdateProjectRequest"];
|
|
2365
3386
|
};
|
|
2366
3387
|
};
|
|
2367
3388
|
responses: {
|
|
@@ -2429,37 +3450,206 @@ export interface paths {
|
|
|
2429
3450
|
};
|
|
2430
3451
|
post?: never;
|
|
2431
3452
|
/**
|
|
2432
|
-
*
|
|
2433
|
-
* @description Requires at least Member.
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
3453
|
+
* Deletes a project.
|
|
3454
|
+
* @description Requires at least Member.
|
|
3455
|
+
*/
|
|
3456
|
+
delete: {
|
|
3457
|
+
parameters: {
|
|
3458
|
+
query?: never;
|
|
3459
|
+
header?: never;
|
|
3460
|
+
path: {
|
|
3461
|
+
org: string;
|
|
3462
|
+
project: string;
|
|
3463
|
+
};
|
|
3464
|
+
cookie?: never;
|
|
3465
|
+
};
|
|
3466
|
+
requestBody?: never;
|
|
3467
|
+
responses: {
|
|
3468
|
+
/** @description No Content */
|
|
3469
|
+
204: {
|
|
3470
|
+
headers: {
|
|
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?: never;
|
|
3477
|
+
};
|
|
3478
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3479
|
+
401: {
|
|
3480
|
+
headers: {
|
|
3481
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3482
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3483
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3484
|
+
[name: string]: unknown;
|
|
3485
|
+
};
|
|
3486
|
+
content: {
|
|
3487
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3488
|
+
};
|
|
3489
|
+
};
|
|
3490
|
+
/** @description Forbidden */
|
|
3491
|
+
403: {
|
|
3492
|
+
headers: {
|
|
3493
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3494
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3495
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3496
|
+
[name: string]: unknown;
|
|
3497
|
+
};
|
|
3498
|
+
content: {
|
|
3499
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3500
|
+
};
|
|
3501
|
+
};
|
|
3502
|
+
/** @description Not Found */
|
|
3503
|
+
404: {
|
|
3504
|
+
headers: {
|
|
3505
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3506
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3507
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3508
|
+
[name: string]: unknown;
|
|
3509
|
+
};
|
|
3510
|
+
content: {
|
|
3511
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3512
|
+
};
|
|
3513
|
+
};
|
|
3514
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3515
|
+
429: {
|
|
3516
|
+
headers: {
|
|
3517
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3518
|
+
"Retry-After"?: number;
|
|
3519
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3520
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3521
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3522
|
+
[name: string]: unknown;
|
|
3523
|
+
};
|
|
3524
|
+
content: {
|
|
3525
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3526
|
+
};
|
|
3527
|
+
};
|
|
3528
|
+
};
|
|
3529
|
+
};
|
|
3530
|
+
options?: never;
|
|
3531
|
+
head?: never;
|
|
3532
|
+
patch?: never;
|
|
3533
|
+
trace?: never;
|
|
3534
|
+
};
|
|
3535
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys": {
|
|
3536
|
+
parameters: {
|
|
3537
|
+
query?: never;
|
|
3538
|
+
header?: never;
|
|
3539
|
+
path?: never;
|
|
3540
|
+
cookie?: never;
|
|
3541
|
+
};
|
|
3542
|
+
/**
|
|
3543
|
+
* Lists SDK keys in the resolved environment, cursor-paginated.
|
|
3544
|
+
* @description Like
|
|
3545
|
+
* List, ListSdkKeysQuery has no
|
|
3546
|
+
* `Skip`/`Take` (an environment's key count is small), so this fetches the full
|
|
3547
|
+
* set and pages in-memory to still expose the standard cursor contract.
|
|
3548
|
+
*/
|
|
3549
|
+
get: {
|
|
3550
|
+
parameters: {
|
|
3551
|
+
query?: {
|
|
3552
|
+
limit?: number;
|
|
3553
|
+
cursor?: string;
|
|
3554
|
+
};
|
|
3555
|
+
header?: never;
|
|
3556
|
+
path: {
|
|
3557
|
+
org: string;
|
|
3558
|
+
project: string;
|
|
3559
|
+
env: string;
|
|
3560
|
+
};
|
|
3561
|
+
cookie?: never;
|
|
3562
|
+
};
|
|
3563
|
+
requestBody?: never;
|
|
3564
|
+
responses: {
|
|
3565
|
+
/** @description OK */
|
|
3566
|
+
200: {
|
|
3567
|
+
headers: {
|
|
3568
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3569
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3570
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3571
|
+
[name: string]: unknown;
|
|
3572
|
+
};
|
|
3573
|
+
content: {
|
|
3574
|
+
"application/json": components["schemas"]["PublicSdkKeyResponsePagedResult"];
|
|
3575
|
+
};
|
|
3576
|
+
};
|
|
3577
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3578
|
+
401: {
|
|
3579
|
+
headers: {
|
|
3580
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3581
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3582
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3583
|
+
[name: string]: unknown;
|
|
3584
|
+
};
|
|
3585
|
+
content: {
|
|
3586
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3587
|
+
};
|
|
3588
|
+
};
|
|
3589
|
+
/** @description Not Found */
|
|
3590
|
+
404: {
|
|
3591
|
+
headers: {
|
|
3592
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3593
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3594
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3595
|
+
[name: string]: unknown;
|
|
3596
|
+
};
|
|
3597
|
+
content: {
|
|
3598
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3599
|
+
};
|
|
3600
|
+
};
|
|
3601
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3602
|
+
429: {
|
|
3603
|
+
headers: {
|
|
3604
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3605
|
+
"Retry-After"?: number;
|
|
3606
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3607
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3608
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3609
|
+
[name: string]: unknown;
|
|
3610
|
+
};
|
|
3611
|
+
content: {
|
|
3612
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3613
|
+
};
|
|
3614
|
+
};
|
|
3615
|
+
};
|
|
3616
|
+
};
|
|
3617
|
+
put?: never;
|
|
3618
|
+
/**
|
|
3619
|
+
* Creates an SDK key in the resolved environment.
|
|
3620
|
+
* @description Requires at least Member. Returns the
|
|
3621
|
+
* plaintext key exactly once — see the type-level remarks.
|
|
2439
3622
|
*/
|
|
2440
|
-
|
|
3623
|
+
post: {
|
|
2441
3624
|
parameters: {
|
|
2442
3625
|
query?: never;
|
|
2443
3626
|
header?: never;
|
|
2444
3627
|
path: {
|
|
2445
3628
|
org: string;
|
|
2446
3629
|
project: string;
|
|
2447
|
-
|
|
2448
|
-
variationId: string;
|
|
3630
|
+
env: string;
|
|
2449
3631
|
};
|
|
2450
3632
|
cookie?: never;
|
|
2451
3633
|
};
|
|
2452
|
-
requestBody?:
|
|
3634
|
+
requestBody?: {
|
|
3635
|
+
content: {
|
|
3636
|
+
"application/json": components["schemas"]["PublicCreateSdkKeyRequest"];
|
|
3637
|
+
"text/json": components["schemas"]["PublicCreateSdkKeyRequest"];
|
|
3638
|
+
"application/*+json": components["schemas"]["PublicCreateSdkKeyRequest"];
|
|
3639
|
+
};
|
|
3640
|
+
};
|
|
2453
3641
|
responses: {
|
|
2454
|
-
/** @description
|
|
2455
|
-
|
|
3642
|
+
/** @description Created */
|
|
3643
|
+
201: {
|
|
2456
3644
|
headers: {
|
|
2457
3645
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2458
3646
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2459
3647
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2460
3648
|
[name: string]: unknown;
|
|
2461
3649
|
};
|
|
2462
|
-
content
|
|
3650
|
+
content: {
|
|
3651
|
+
"application/json": components["schemas"]["PublicCreateSdkKeyResponse"];
|
|
3652
|
+
};
|
|
2463
3653
|
};
|
|
2464
3654
|
/** @description Bad Request */
|
|
2465
3655
|
400: {
|
|
@@ -2525,24 +3715,30 @@ export interface paths {
|
|
|
2525
3715
|
};
|
|
2526
3716
|
};
|
|
2527
3717
|
};
|
|
3718
|
+
delete?: never;
|
|
2528
3719
|
options?: never;
|
|
2529
3720
|
head?: never;
|
|
2530
3721
|
patch?: never;
|
|
2531
3722
|
trace?: never;
|
|
2532
3723
|
};
|
|
2533
|
-
"/api/v1/
|
|
3724
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}": {
|
|
2534
3725
|
parameters: {
|
|
2535
3726
|
query?: never;
|
|
2536
3727
|
header?: never;
|
|
2537
3728
|
path?: never;
|
|
2538
3729
|
cookie?: never;
|
|
2539
3730
|
};
|
|
2540
|
-
/**
|
|
3731
|
+
/** Gets an SDK key in the resolved environment by id (guid-only — see the type-level remarks). */
|
|
2541
3732
|
get: {
|
|
2542
3733
|
parameters: {
|
|
2543
3734
|
query?: never;
|
|
2544
3735
|
header?: never;
|
|
2545
|
-
path
|
|
3736
|
+
path: {
|
|
3737
|
+
org: string;
|
|
3738
|
+
project: string;
|
|
3739
|
+
env: string;
|
|
3740
|
+
sdkKey: string;
|
|
3741
|
+
};
|
|
2546
3742
|
cookie?: never;
|
|
2547
3743
|
};
|
|
2548
3744
|
requestBody?: never;
|
|
@@ -2556,10 +3752,10 @@ export interface paths {
|
|
|
2556
3752
|
[name: string]: unknown;
|
|
2557
3753
|
};
|
|
2558
3754
|
content: {
|
|
2559
|
-
"application/json": components["schemas"]["
|
|
3755
|
+
"application/json": components["schemas"]["PublicSdkKeyResponse"];
|
|
2560
3756
|
};
|
|
2561
3757
|
};
|
|
2562
|
-
/** @description
|
|
3758
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2563
3759
|
401: {
|
|
2564
3760
|
headers: {
|
|
2565
3761
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
@@ -2571,6 +3767,18 @@ export interface paths {
|
|
|
2571
3767
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2572
3768
|
};
|
|
2573
3769
|
};
|
|
3770
|
+
/** @description Not Found */
|
|
3771
|
+
404: {
|
|
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
|
+
};
|
|
2574
3782
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2575
3783
|
429: {
|
|
2576
3784
|
headers: {
|
|
@@ -2587,45 +3795,39 @@ export interface paths {
|
|
|
2587
3795
|
};
|
|
2588
3796
|
};
|
|
2589
3797
|
};
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
patch?: never;
|
|
2596
|
-
trace?: never;
|
|
2597
|
-
};
|
|
2598
|
-
"/api/v1/orgs": {
|
|
2599
|
-
parameters: {
|
|
2600
|
-
query?: never;
|
|
2601
|
-
header?: never;
|
|
2602
|
-
path?: never;
|
|
2603
|
-
cookie?: never;
|
|
2604
|
-
};
|
|
2605
|
-
/** Lists the caller's organizations, cursor-paginated. */
|
|
2606
|
-
get: {
|
|
3798
|
+
/**
|
|
3799
|
+
* Updates an SDK key's name/description.
|
|
3800
|
+
* @description Requires at least Member. Type and key material are immutable via this endpoint.
|
|
3801
|
+
*/
|
|
3802
|
+
put: {
|
|
2607
3803
|
parameters: {
|
|
2608
|
-
query?:
|
|
2609
|
-
limit?: number;
|
|
2610
|
-
cursor?: string;
|
|
2611
|
-
};
|
|
3804
|
+
query?: never;
|
|
2612
3805
|
header?: never;
|
|
2613
|
-
path
|
|
3806
|
+
path: {
|
|
3807
|
+
org: string;
|
|
3808
|
+
project: string;
|
|
3809
|
+
env: string;
|
|
3810
|
+
sdkKey: string;
|
|
3811
|
+
};
|
|
2614
3812
|
cookie?: never;
|
|
2615
3813
|
};
|
|
2616
|
-
requestBody?:
|
|
3814
|
+
requestBody?: {
|
|
3815
|
+
content: {
|
|
3816
|
+
"application/json": components["schemas"]["PublicUpdateSdkKeyRequest"];
|
|
3817
|
+
"text/json": components["schemas"]["PublicUpdateSdkKeyRequest"];
|
|
3818
|
+
"application/*+json": components["schemas"]["PublicUpdateSdkKeyRequest"];
|
|
3819
|
+
};
|
|
3820
|
+
};
|
|
2617
3821
|
responses: {
|
|
2618
|
-
/** @description
|
|
2619
|
-
|
|
3822
|
+
/** @description No Content */
|
|
3823
|
+
204: {
|
|
2620
3824
|
headers: {
|
|
2621
3825
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2622
3826
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2623
3827
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2624
3828
|
[name: string]: unknown;
|
|
2625
3829
|
};
|
|
2626
|
-
content
|
|
2627
|
-
"application/json": components["schemas"]["OrganizationResponsePagedResult"];
|
|
2628
|
-
};
|
|
3830
|
+
content?: never;
|
|
2629
3831
|
};
|
|
2630
3832
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2631
3833
|
401: {
|
|
@@ -2639,6 +3841,30 @@ export interface paths {
|
|
|
2639
3841
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2640
3842
|
};
|
|
2641
3843
|
};
|
|
3844
|
+
/** @description Forbidden */
|
|
3845
|
+
403: {
|
|
3846
|
+
headers: {
|
|
3847
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3848
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3849
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3850
|
+
[name: string]: unknown;
|
|
3851
|
+
};
|
|
3852
|
+
content: {
|
|
3853
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3854
|
+
};
|
|
3855
|
+
};
|
|
3856
|
+
/** @description Not Found */
|
|
3857
|
+
404: {
|
|
3858
|
+
headers: {
|
|
3859
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3860
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3861
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3862
|
+
[name: string]: unknown;
|
|
3863
|
+
};
|
|
3864
|
+
content: {
|
|
3865
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3866
|
+
};
|
|
3867
|
+
};
|
|
2642
3868
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2643
3869
|
429: {
|
|
2644
3870
|
headers: {
|
|
@@ -2655,7 +3881,6 @@ export interface paths {
|
|
|
2655
3881
|
};
|
|
2656
3882
|
};
|
|
2657
3883
|
};
|
|
2658
|
-
put?: never;
|
|
2659
3884
|
post?: never;
|
|
2660
3885
|
delete?: never;
|
|
2661
3886
|
options?: never;
|
|
@@ -2663,36 +3888,42 @@ export interface paths {
|
|
|
2663
3888
|
patch?: never;
|
|
2664
3889
|
trace?: never;
|
|
2665
3890
|
};
|
|
2666
|
-
"/api/v1/orgs/{org}": {
|
|
3891
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}/revoke": {
|
|
2667
3892
|
parameters: {
|
|
2668
3893
|
query?: never;
|
|
2669
3894
|
header?: never;
|
|
2670
3895
|
path?: never;
|
|
2671
3896
|
cookie?: never;
|
|
2672
3897
|
};
|
|
2673
|
-
|
|
2674
|
-
|
|
3898
|
+
get?: never;
|
|
3899
|
+
put?: never;
|
|
3900
|
+
/**
|
|
3901
|
+
* Revokes an SDK key.
|
|
3902
|
+
* @description Requires at least Member.
|
|
3903
|
+
*/
|
|
3904
|
+
post: {
|
|
2675
3905
|
parameters: {
|
|
2676
3906
|
query?: never;
|
|
2677
3907
|
header?: never;
|
|
2678
3908
|
path: {
|
|
2679
3909
|
org: string;
|
|
3910
|
+
project: string;
|
|
3911
|
+
env: string;
|
|
3912
|
+
sdkKey: string;
|
|
2680
3913
|
};
|
|
2681
3914
|
cookie?: never;
|
|
2682
3915
|
};
|
|
2683
3916
|
requestBody?: never;
|
|
2684
3917
|
responses: {
|
|
2685
|
-
/** @description
|
|
2686
|
-
|
|
3918
|
+
/** @description No Content */
|
|
3919
|
+
204: {
|
|
2687
3920
|
headers: {
|
|
2688
3921
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2689
3922
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2690
3923
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2691
3924
|
[name: string]: unknown;
|
|
2692
3925
|
};
|
|
2693
|
-
content
|
|
2694
|
-
"application/json": components["schemas"]["OrganizationResponse"];
|
|
2695
|
-
};
|
|
3926
|
+
content?: never;
|
|
2696
3927
|
};
|
|
2697
3928
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2698
3929
|
401: {
|
|
@@ -2706,6 +3937,18 @@ export interface paths {
|
|
|
2706
3937
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2707
3938
|
};
|
|
2708
3939
|
};
|
|
3940
|
+
/** @description Forbidden */
|
|
3941
|
+
403: {
|
|
3942
|
+
headers: {
|
|
3943
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3944
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3945
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3946
|
+
[name: string]: unknown;
|
|
3947
|
+
};
|
|
3948
|
+
content: {
|
|
3949
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3950
|
+
};
|
|
3951
|
+
};
|
|
2709
3952
|
/** @description Not Found */
|
|
2710
3953
|
404: {
|
|
2711
3954
|
headers: {
|
|
@@ -2734,22 +3977,26 @@ export interface paths {
|
|
|
2734
3977
|
};
|
|
2735
3978
|
};
|
|
2736
3979
|
};
|
|
2737
|
-
put?: never;
|
|
2738
|
-
post?: never;
|
|
2739
3980
|
delete?: never;
|
|
2740
3981
|
options?: never;
|
|
2741
3982
|
head?: never;
|
|
2742
3983
|
patch?: never;
|
|
2743
3984
|
trace?: never;
|
|
2744
3985
|
};
|
|
2745
|
-
"/api/v1/orgs/{org}/projects": {
|
|
3986
|
+
"/api/v1/orgs/{org}/projects/{project}/segments": {
|
|
2746
3987
|
parameters: {
|
|
2747
3988
|
query?: never;
|
|
2748
3989
|
header?: never;
|
|
2749
3990
|
path?: never;
|
|
2750
3991
|
cookie?: never;
|
|
2751
3992
|
};
|
|
2752
|
-
/**
|
|
3993
|
+
/**
|
|
3994
|
+
* Lists user segments in the resolved project, cursor-paginated.
|
|
3995
|
+
* @description Like
|
|
3996
|
+
* List, ListUserSegmentsQuery has no
|
|
3997
|
+
* `Skip`/`Take` (a project's segment count is small), so this fetches the full set
|
|
3998
|
+
* and pages in-memory to still expose the standard cursor contract.
|
|
3999
|
+
*/
|
|
2753
4000
|
get: {
|
|
2754
4001
|
parameters: {
|
|
2755
4002
|
query?: {
|
|
@@ -2759,6 +4006,7 @@ export interface paths {
|
|
|
2759
4006
|
header?: never;
|
|
2760
4007
|
path: {
|
|
2761
4008
|
org: string;
|
|
4009
|
+
project: string;
|
|
2762
4010
|
};
|
|
2763
4011
|
cookie?: never;
|
|
2764
4012
|
};
|
|
@@ -2773,7 +4021,7 @@ export interface paths {
|
|
|
2773
4021
|
[name: string]: unknown;
|
|
2774
4022
|
};
|
|
2775
4023
|
content: {
|
|
2776
|
-
"application/json": components["schemas"]["
|
|
4024
|
+
"application/json": components["schemas"]["PublicSegmentResponsePagedResult"];
|
|
2777
4025
|
};
|
|
2778
4026
|
};
|
|
2779
4027
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2788,6 +4036,18 @@ export interface paths {
|
|
|
2788
4036
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2789
4037
|
};
|
|
2790
4038
|
};
|
|
4039
|
+
/** @description Not Found */
|
|
4040
|
+
404: {
|
|
4041
|
+
headers: {
|
|
4042
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4043
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4044
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4045
|
+
[name: string]: unknown;
|
|
4046
|
+
};
|
|
4047
|
+
content: {
|
|
4048
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4049
|
+
};
|
|
4050
|
+
};
|
|
2791
4051
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2792
4052
|
429: {
|
|
2793
4053
|
headers: {
|
|
@@ -2806,8 +4066,12 @@ export interface paths {
|
|
|
2806
4066
|
};
|
|
2807
4067
|
put?: never;
|
|
2808
4068
|
/**
|
|
2809
|
-
* Creates a
|
|
2810
|
-
* @description Requires at least Member.
|
|
4069
|
+
* Creates a user segment in the resolved project.
|
|
4070
|
+
* @description Requires at least Member. Re-fetches via
|
|
4071
|
+
* ListUserSegmentsQuery (there is no single-segment query) and locates the new
|
|
4072
|
+
* segment by the id returned from CreateUserSegmentCommand so the response
|
|
4073
|
+
* reflects exactly what was persisted (e.g. server-assigned condition ids, folded into the
|
|
4074
|
+
* public shape via FromDto).
|
|
2811
4075
|
*/
|
|
2812
4076
|
post: {
|
|
2813
4077
|
parameters: {
|
|
@@ -2815,14 +4079,15 @@ export interface paths {
|
|
|
2815
4079
|
header?: never;
|
|
2816
4080
|
path: {
|
|
2817
4081
|
org: string;
|
|
4082
|
+
project: string;
|
|
2818
4083
|
};
|
|
2819
4084
|
cookie?: never;
|
|
2820
4085
|
};
|
|
2821
4086
|
requestBody?: {
|
|
2822
4087
|
content: {
|
|
2823
|
-
"application/json": components["schemas"]["
|
|
2824
|
-
"text/json": components["schemas"]["
|
|
2825
|
-
"application/*+json": components["schemas"]["
|
|
4088
|
+
"application/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
4089
|
+
"text/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
4090
|
+
"application/*+json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
2826
4091
|
};
|
|
2827
4092
|
};
|
|
2828
4093
|
responses: {
|
|
@@ -2835,7 +4100,19 @@ export interface paths {
|
|
|
2835
4100
|
[name: string]: unknown;
|
|
2836
4101
|
};
|
|
2837
4102
|
content: {
|
|
2838
|
-
"application/json": components["schemas"]["
|
|
4103
|
+
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
4104
|
+
};
|
|
4105
|
+
};
|
|
4106
|
+
/** @description Bad Request */
|
|
4107
|
+
400: {
|
|
4108
|
+
headers: {
|
|
4109
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4110
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4111
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4112
|
+
[name: string]: unknown;
|
|
4113
|
+
};
|
|
4114
|
+
content: {
|
|
4115
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2839
4116
|
};
|
|
2840
4117
|
};
|
|
2841
4118
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2862,6 +4139,18 @@ export interface paths {
|
|
|
2862
4139
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2863
4140
|
};
|
|
2864
4141
|
};
|
|
4142
|
+
/** @description Not Found */
|
|
4143
|
+
404: {
|
|
4144
|
+
headers: {
|
|
4145
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4146
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4147
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4148
|
+
[name: string]: unknown;
|
|
4149
|
+
};
|
|
4150
|
+
content: {
|
|
4151
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4152
|
+
};
|
|
4153
|
+
};
|
|
2865
4154
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2866
4155
|
429: {
|
|
2867
4156
|
headers: {
|
|
@@ -2884,14 +4173,20 @@ export interface paths {
|
|
|
2884
4173
|
patch?: never;
|
|
2885
4174
|
trace?: never;
|
|
2886
4175
|
};
|
|
2887
|
-
"/api/v1/orgs/{org}/projects/{project}": {
|
|
4176
|
+
"/api/v1/orgs/{org}/projects/{project}/segments/{segment}": {
|
|
2888
4177
|
parameters: {
|
|
2889
4178
|
query?: never;
|
|
2890
4179
|
header?: never;
|
|
2891
4180
|
path?: never;
|
|
2892
4181
|
cookie?: never;
|
|
2893
4182
|
};
|
|
2894
|
-
/**
|
|
4183
|
+
/**
|
|
4184
|
+
* Gets a user segment in the resolved project by key or id.
|
|
4185
|
+
* @description There is no
|
|
4186
|
+
* ListUserSegments-adjacent single-item
|
|
4187
|
+
* query, so this resolves `{segment}` then dispatches ListUserSegmentsQuery
|
|
4188
|
+
* and finds the match — see the type-level remarks for why a list+find is acceptable here.
|
|
4189
|
+
*/
|
|
2895
4190
|
get: {
|
|
2896
4191
|
parameters: {
|
|
2897
4192
|
query?: never;
|
|
@@ -2899,6 +4194,7 @@ export interface paths {
|
|
|
2899
4194
|
path: {
|
|
2900
4195
|
org: string;
|
|
2901
4196
|
project: string;
|
|
4197
|
+
segment: string;
|
|
2902
4198
|
};
|
|
2903
4199
|
cookie?: never;
|
|
2904
4200
|
};
|
|
@@ -2913,7 +4209,7 @@ export interface paths {
|
|
|
2913
4209
|
[name: string]: unknown;
|
|
2914
4210
|
};
|
|
2915
4211
|
content: {
|
|
2916
|
-
"application/json": components["schemas"]["
|
|
4212
|
+
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
2917
4213
|
};
|
|
2918
4214
|
};
|
|
2919
4215
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2957,8 +4253,8 @@ export interface paths {
|
|
|
2957
4253
|
};
|
|
2958
4254
|
};
|
|
2959
4255
|
/**
|
|
2960
|
-
* Updates a
|
|
2961
|
-
* @description Requires at least Member.
|
|
4256
|
+
* Updates a segment's name/description/conditions.
|
|
4257
|
+
* @description Requires at least Member. The segment's key is immutable via this endpoint.
|
|
2962
4258
|
*/
|
|
2963
4259
|
put: {
|
|
2964
4260
|
parameters: {
|
|
@@ -2967,14 +4263,15 @@ export interface paths {
|
|
|
2967
4263
|
path: {
|
|
2968
4264
|
org: string;
|
|
2969
4265
|
project: string;
|
|
4266
|
+
segment: string;
|
|
2970
4267
|
};
|
|
2971
4268
|
cookie?: never;
|
|
2972
4269
|
};
|
|
2973
|
-
requestBody?: {
|
|
2974
|
-
content: {
|
|
2975
|
-
"application/json": components["schemas"]["
|
|
2976
|
-
"text/json": components["schemas"]["
|
|
2977
|
-
"application/*+json": components["schemas"]["
|
|
4270
|
+
requestBody?: {
|
|
4271
|
+
content: {
|
|
4272
|
+
"application/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
4273
|
+
"text/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
4274
|
+
"application/*+json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
2978
4275
|
};
|
|
2979
4276
|
};
|
|
2980
4277
|
responses: {
|
|
@@ -2988,6 +4285,18 @@ export interface paths {
|
|
|
2988
4285
|
};
|
|
2989
4286
|
content?: never;
|
|
2990
4287
|
};
|
|
4288
|
+
/** @description Bad Request */
|
|
4289
|
+
400: {
|
|
4290
|
+
headers: {
|
|
4291
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4292
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4293
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4294
|
+
[name: string]: unknown;
|
|
4295
|
+
};
|
|
4296
|
+
content: {
|
|
4297
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4298
|
+
};
|
|
4299
|
+
};
|
|
2991
4300
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2992
4301
|
401: {
|
|
2993
4302
|
headers: {
|
|
@@ -3042,7 +4351,7 @@ export interface paths {
|
|
|
3042
4351
|
};
|
|
3043
4352
|
post?: never;
|
|
3044
4353
|
/**
|
|
3045
|
-
* Deletes a
|
|
4354
|
+
* Deletes a user segment.
|
|
3046
4355
|
* @description Requires at least Member.
|
|
3047
4356
|
*/
|
|
3048
4357
|
delete: {
|
|
@@ -3052,6 +4361,7 @@ export interface paths {
|
|
|
3052
4361
|
path: {
|
|
3053
4362
|
org: string;
|
|
3054
4363
|
project: string;
|
|
4364
|
+
segment: string;
|
|
3055
4365
|
};
|
|
3056
4366
|
cookie?: never;
|
|
3057
4367
|
};
|
|
@@ -3124,7 +4434,7 @@ export interface paths {
|
|
|
3124
4434
|
patch?: never;
|
|
3125
4435
|
trace?: never;
|
|
3126
4436
|
};
|
|
3127
|
-
"/api/v1/orgs/{org}/
|
|
4437
|
+
"/api/v1/orgs/{org}/webhooks": {
|
|
3128
4438
|
parameters: {
|
|
3129
4439
|
query?: never;
|
|
3130
4440
|
header?: never;
|
|
@@ -3132,11 +4442,8 @@ export interface paths {
|
|
|
3132
4442
|
cookie?: never;
|
|
3133
4443
|
};
|
|
3134
4444
|
/**
|
|
3135
|
-
* Lists
|
|
3136
|
-
* @description
|
|
3137
|
-
* List, ListSdkKeysQuery has no
|
|
3138
|
-
* `Skip`/`Take` (an environment's key count is small), so this fetches the full
|
|
3139
|
-
* set and pages in-memory to still expose the standard cursor contract.
|
|
4445
|
+
* Lists the organization's webhook subscriptions, oldest first.
|
|
4446
|
+
* @description Requires Admin.
|
|
3140
4447
|
*/
|
|
3141
4448
|
get: {
|
|
3142
4449
|
parameters: {
|
|
@@ -3147,8 +4454,6 @@ export interface paths {
|
|
|
3147
4454
|
header?: never;
|
|
3148
4455
|
path: {
|
|
3149
4456
|
org: string;
|
|
3150
|
-
project: string;
|
|
3151
|
-
env: string;
|
|
3152
4457
|
};
|
|
3153
4458
|
cookie?: never;
|
|
3154
4459
|
};
|
|
@@ -3163,7 +4468,7 @@ export interface paths {
|
|
|
3163
4468
|
[name: string]: unknown;
|
|
3164
4469
|
};
|
|
3165
4470
|
content: {
|
|
3166
|
-
"application/json": components["schemas"]["
|
|
4471
|
+
"application/json": components["schemas"]["PublicWebhookSubscriptionResponsePagedResult"];
|
|
3167
4472
|
};
|
|
3168
4473
|
};
|
|
3169
4474
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3178,6 +4483,18 @@ export interface paths {
|
|
|
3178
4483
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3179
4484
|
};
|
|
3180
4485
|
};
|
|
4486
|
+
/** @description Forbidden */
|
|
4487
|
+
403: {
|
|
4488
|
+
headers: {
|
|
4489
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4490
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4491
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4492
|
+
[name: string]: unknown;
|
|
4493
|
+
};
|
|
4494
|
+
content: {
|
|
4495
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4496
|
+
};
|
|
4497
|
+
};
|
|
3181
4498
|
/** @description Not Found */
|
|
3182
4499
|
404: {
|
|
3183
4500
|
headers: {
|
|
@@ -3208,9 +4525,9 @@ export interface paths {
|
|
|
3208
4525
|
};
|
|
3209
4526
|
put?: never;
|
|
3210
4527
|
/**
|
|
3211
|
-
* Creates
|
|
3212
|
-
* @description Requires
|
|
3213
|
-
*
|
|
4528
|
+
* Creates a webhook subscription.
|
|
4529
|
+
* @description Requires Admin. The response carries the signing secret,
|
|
4530
|
+
* which is never shown again. Supports the `Idempotency-Key` header.
|
|
3214
4531
|
*/
|
|
3215
4532
|
post: {
|
|
3216
4533
|
parameters: {
|
|
@@ -3218,16 +4535,14 @@ export interface paths {
|
|
|
3218
4535
|
header?: never;
|
|
3219
4536
|
path: {
|
|
3220
4537
|
org: string;
|
|
3221
|
-
project: string;
|
|
3222
|
-
env: string;
|
|
3223
4538
|
};
|
|
3224
4539
|
cookie?: never;
|
|
3225
4540
|
};
|
|
3226
4541
|
requestBody?: {
|
|
3227
4542
|
content: {
|
|
3228
|
-
"application/json": components["schemas"]["
|
|
3229
|
-
"text/json": components["schemas"]["
|
|
3230
|
-
"application/*+json": components["schemas"]["
|
|
4543
|
+
"application/json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
4544
|
+
"text/json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
4545
|
+
"application/*+json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
3231
4546
|
};
|
|
3232
4547
|
};
|
|
3233
4548
|
responses: {
|
|
@@ -3240,7 +4555,7 @@ export interface paths {
|
|
|
3240
4555
|
[name: string]: unknown;
|
|
3241
4556
|
};
|
|
3242
4557
|
content: {
|
|
3243
|
-
"application/json": components["schemas"]["
|
|
4558
|
+
"application/json": components["schemas"]["PublicCreateWebhookSubscriptionResponse"];
|
|
3244
4559
|
};
|
|
3245
4560
|
};
|
|
3246
4561
|
/** @description Bad Request */
|
|
@@ -3313,23 +4628,23 @@ export interface paths {
|
|
|
3313
4628
|
patch?: never;
|
|
3314
4629
|
trace?: never;
|
|
3315
4630
|
};
|
|
3316
|
-
"/api/v1/orgs/{org}/
|
|
4631
|
+
"/api/v1/orgs/{org}/webhooks/event-types": {
|
|
3317
4632
|
parameters: {
|
|
3318
4633
|
query?: never;
|
|
3319
4634
|
header?: never;
|
|
3320
4635
|
path?: never;
|
|
3321
4636
|
cookie?: never;
|
|
3322
4637
|
};
|
|
3323
|
-
/**
|
|
4638
|
+
/**
|
|
4639
|
+
* Lists the event types a subscription can filter on.
|
|
4640
|
+
* @description Requires Admin.
|
|
4641
|
+
*/
|
|
3324
4642
|
get: {
|
|
3325
4643
|
parameters: {
|
|
3326
4644
|
query?: never;
|
|
3327
4645
|
header?: never;
|
|
3328
4646
|
path: {
|
|
3329
4647
|
org: string;
|
|
3330
|
-
project: string;
|
|
3331
|
-
env: string;
|
|
3332
|
-
sdkKey: string;
|
|
3333
4648
|
};
|
|
3334
4649
|
cookie?: never;
|
|
3335
4650
|
};
|
|
@@ -3344,7 +4659,7 @@ export interface paths {
|
|
|
3344
4659
|
[name: string]: unknown;
|
|
3345
4660
|
};
|
|
3346
4661
|
content: {
|
|
3347
|
-
"application/json":
|
|
4662
|
+
"application/json": string[];
|
|
3348
4663
|
};
|
|
3349
4664
|
};
|
|
3350
4665
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3359,6 +4674,18 @@ export interface paths {
|
|
|
3359
4674
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3360
4675
|
};
|
|
3361
4676
|
};
|
|
4677
|
+
/** @description Forbidden */
|
|
4678
|
+
403: {
|
|
4679
|
+
headers: {
|
|
4680
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4681
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4682
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4683
|
+
[name: string]: unknown;
|
|
4684
|
+
};
|
|
4685
|
+
content: {
|
|
4686
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4687
|
+
};
|
|
4688
|
+
};
|
|
3362
4689
|
/** @description Not Found */
|
|
3363
4690
|
404: {
|
|
3364
4691
|
headers: {
|
|
@@ -3387,9 +4714,105 @@ export interface paths {
|
|
|
3387
4714
|
};
|
|
3388
4715
|
};
|
|
3389
4716
|
};
|
|
4717
|
+
put?: never;
|
|
4718
|
+
post?: never;
|
|
4719
|
+
delete?: never;
|
|
4720
|
+
options?: never;
|
|
4721
|
+
head?: never;
|
|
4722
|
+
patch?: never;
|
|
4723
|
+
trace?: never;
|
|
4724
|
+
};
|
|
4725
|
+
"/api/v1/orgs/{org}/webhooks/{id}": {
|
|
4726
|
+
parameters: {
|
|
4727
|
+
query?: never;
|
|
4728
|
+
header?: never;
|
|
4729
|
+
path?: never;
|
|
4730
|
+
cookie?: never;
|
|
4731
|
+
};
|
|
3390
4732
|
/**
|
|
3391
|
-
*
|
|
3392
|
-
* @description Requires
|
|
4733
|
+
* Gets a webhook subscription by id.
|
|
4734
|
+
* @description Requires Admin. Never returns secret values.
|
|
4735
|
+
*/
|
|
4736
|
+
get: {
|
|
4737
|
+
parameters: {
|
|
4738
|
+
query?: never;
|
|
4739
|
+
header?: never;
|
|
4740
|
+
path: {
|
|
4741
|
+
org: string;
|
|
4742
|
+
id: string;
|
|
4743
|
+
};
|
|
4744
|
+
cookie?: never;
|
|
4745
|
+
};
|
|
4746
|
+
requestBody?: never;
|
|
4747
|
+
responses: {
|
|
4748
|
+
/** @description OK */
|
|
4749
|
+
200: {
|
|
4750
|
+
headers: {
|
|
4751
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4752
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4753
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4754
|
+
[name: string]: unknown;
|
|
4755
|
+
};
|
|
4756
|
+
content: {
|
|
4757
|
+
"application/json": components["schemas"]["PublicWebhookSubscriptionResponse"];
|
|
4758
|
+
};
|
|
4759
|
+
};
|
|
4760
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
4761
|
+
401: {
|
|
4762
|
+
headers: {
|
|
4763
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4764
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4765
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4766
|
+
[name: string]: unknown;
|
|
4767
|
+
};
|
|
4768
|
+
content: {
|
|
4769
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4770
|
+
};
|
|
4771
|
+
};
|
|
4772
|
+
/** @description Forbidden */
|
|
4773
|
+
403: {
|
|
4774
|
+
headers: {
|
|
4775
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4776
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4777
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4778
|
+
[name: string]: unknown;
|
|
4779
|
+
};
|
|
4780
|
+
content: {
|
|
4781
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4782
|
+
};
|
|
4783
|
+
};
|
|
4784
|
+
/** @description Not Found */
|
|
4785
|
+
404: {
|
|
4786
|
+
headers: {
|
|
4787
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4788
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4789
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4790
|
+
[name: string]: unknown;
|
|
4791
|
+
};
|
|
4792
|
+
content: {
|
|
4793
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4794
|
+
};
|
|
4795
|
+
};
|
|
4796
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4797
|
+
429: {
|
|
4798
|
+
headers: {
|
|
4799
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
4800
|
+
"Retry-After"?: number;
|
|
4801
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4802
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4803
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4804
|
+
[name: string]: unknown;
|
|
4805
|
+
};
|
|
4806
|
+
content: {
|
|
4807
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4808
|
+
};
|
|
4809
|
+
};
|
|
4810
|
+
};
|
|
4811
|
+
};
|
|
4812
|
+
/**
|
|
4813
|
+
* Replaces a webhook subscription's configuration.
|
|
4814
|
+
* @description Requires Admin. Omitted lists become empty,
|
|
4815
|
+
* which means "all".
|
|
3393
4816
|
*/
|
|
3394
4817
|
put: {
|
|
3395
4818
|
parameters: {
|
|
@@ -3397,17 +4820,15 @@ export interface paths {
|
|
|
3397
4820
|
header?: never;
|
|
3398
4821
|
path: {
|
|
3399
4822
|
org: string;
|
|
3400
|
-
|
|
3401
|
-
env: string;
|
|
3402
|
-
sdkKey: string;
|
|
4823
|
+
id: string;
|
|
3403
4824
|
};
|
|
3404
4825
|
cookie?: never;
|
|
3405
4826
|
};
|
|
3406
4827
|
requestBody?: {
|
|
3407
4828
|
content: {
|
|
3408
|
-
"application/json": components["schemas"]["
|
|
3409
|
-
"text/json": components["schemas"]["
|
|
3410
|
-
"application/*+json": components["schemas"]["
|
|
4829
|
+
"application/json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
4830
|
+
"text/json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
4831
|
+
"application/*+json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
3411
4832
|
};
|
|
3412
4833
|
};
|
|
3413
4834
|
responses: {
|
|
@@ -3421,6 +4842,18 @@ export interface paths {
|
|
|
3421
4842
|
};
|
|
3422
4843
|
content?: never;
|
|
3423
4844
|
};
|
|
4845
|
+
/** @description Bad Request */
|
|
4846
|
+
400: {
|
|
4847
|
+
headers: {
|
|
4848
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4849
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4850
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4851
|
+
[name: string]: unknown;
|
|
4852
|
+
};
|
|
4853
|
+
content: {
|
|
4854
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4855
|
+
};
|
|
4856
|
+
};
|
|
3424
4857
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3425
4858
|
401: {
|
|
3426
4859
|
headers: {
|
|
@@ -3474,34 +4907,17 @@ export interface paths {
|
|
|
3474
4907
|
};
|
|
3475
4908
|
};
|
|
3476
4909
|
post?: never;
|
|
3477
|
-
delete?: never;
|
|
3478
|
-
options?: never;
|
|
3479
|
-
head?: never;
|
|
3480
|
-
patch?: never;
|
|
3481
|
-
trace?: never;
|
|
3482
|
-
};
|
|
3483
|
-
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}/revoke": {
|
|
3484
|
-
parameters: {
|
|
3485
|
-
query?: never;
|
|
3486
|
-
header?: never;
|
|
3487
|
-
path?: never;
|
|
3488
|
-
cookie?: never;
|
|
3489
|
-
};
|
|
3490
|
-
get?: never;
|
|
3491
|
-
put?: never;
|
|
3492
4910
|
/**
|
|
3493
|
-
*
|
|
3494
|
-
* @description Requires
|
|
4911
|
+
* Deletes a webhook subscription with its secrets and delivery log.
|
|
4912
|
+
* @description Requires Admin.
|
|
3495
4913
|
*/
|
|
3496
|
-
|
|
4914
|
+
delete: {
|
|
3497
4915
|
parameters: {
|
|
3498
4916
|
query?: never;
|
|
3499
4917
|
header?: never;
|
|
3500
4918
|
path: {
|
|
3501
4919
|
org: string;
|
|
3502
|
-
|
|
3503
|
-
env: string;
|
|
3504
|
-
sdkKey: string;
|
|
4920
|
+
id: string;
|
|
3505
4921
|
};
|
|
3506
4922
|
cookie?: never;
|
|
3507
4923
|
};
|
|
@@ -3569,43 +4985,41 @@ export interface paths {
|
|
|
3569
4985
|
};
|
|
3570
4986
|
};
|
|
3571
4987
|
};
|
|
3572
|
-
delete?: never;
|
|
3573
4988
|
options?: never;
|
|
3574
4989
|
head?: never;
|
|
3575
4990
|
patch?: never;
|
|
3576
4991
|
trace?: never;
|
|
3577
4992
|
};
|
|
3578
|
-
"/api/v1/orgs/{org}/
|
|
4993
|
+
"/api/v1/orgs/{org}/webhooks/{id}/secrets": {
|
|
3579
4994
|
parameters: {
|
|
3580
4995
|
query?: never;
|
|
3581
4996
|
header?: never;
|
|
3582
4997
|
path?: never;
|
|
3583
4998
|
cookie?: never;
|
|
3584
4999
|
};
|
|
5000
|
+
get?: never;
|
|
5001
|
+
put?: never;
|
|
3585
5002
|
/**
|
|
3586
|
-
*
|
|
3587
|
-
* @description
|
|
3588
|
-
*
|
|
3589
|
-
*
|
|
3590
|
-
*
|
|
5003
|
+
* Adds a new active signing secret.
|
|
5004
|
+
* @description Requires Admin. The previous secret keeps signing until
|
|
5005
|
+
* you retire it, so receivers can switch over without dropping deliveries. The response
|
|
5006
|
+
* carries the new secret, which is never shown again. Supports the `Idempotency-Key`
|
|
5007
|
+
* header.
|
|
3591
5008
|
*/
|
|
3592
|
-
|
|
5009
|
+
post: {
|
|
3593
5010
|
parameters: {
|
|
3594
|
-
query?:
|
|
3595
|
-
limit?: number;
|
|
3596
|
-
cursor?: string;
|
|
3597
|
-
};
|
|
5011
|
+
query?: never;
|
|
3598
5012
|
header?: never;
|
|
3599
5013
|
path: {
|
|
3600
5014
|
org: string;
|
|
3601
|
-
|
|
5015
|
+
id: string;
|
|
3602
5016
|
};
|
|
3603
5017
|
cookie?: never;
|
|
3604
5018
|
};
|
|
3605
5019
|
requestBody?: never;
|
|
3606
5020
|
responses: {
|
|
3607
|
-
/** @description
|
|
3608
|
-
|
|
5021
|
+
/** @description Created */
|
|
5022
|
+
201: {
|
|
3609
5023
|
headers: {
|
|
3610
5024
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3611
5025
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3613,7 +5027,7 @@ export interface paths {
|
|
|
3613
5027
|
[name: string]: unknown;
|
|
3614
5028
|
};
|
|
3615
5029
|
content: {
|
|
3616
|
-
"application/json": components["schemas"]["
|
|
5030
|
+
"application/json": components["schemas"]["PublicRotateWebhookSecretResponse"];
|
|
3617
5031
|
};
|
|
3618
5032
|
};
|
|
3619
5033
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3628,6 +5042,18 @@ export interface paths {
|
|
|
3628
5042
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3629
5043
|
};
|
|
3630
5044
|
};
|
|
5045
|
+
/** @description Forbidden */
|
|
5046
|
+
403: {
|
|
5047
|
+
headers: {
|
|
5048
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5049
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5050
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5051
|
+
[name: string]: unknown;
|
|
5052
|
+
};
|
|
5053
|
+
content: {
|
|
5054
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5055
|
+
};
|
|
5056
|
+
};
|
|
3631
5057
|
/** @description Not Found */
|
|
3632
5058
|
404: {
|
|
3633
5059
|
headers: {
|
|
@@ -3656,44 +5082,49 @@ export interface paths {
|
|
|
3656
5082
|
};
|
|
3657
5083
|
};
|
|
3658
5084
|
};
|
|
5085
|
+
delete?: never;
|
|
5086
|
+
options?: never;
|
|
5087
|
+
head?: never;
|
|
5088
|
+
patch?: never;
|
|
5089
|
+
trace?: never;
|
|
5090
|
+
};
|
|
5091
|
+
"/api/v1/orgs/{org}/webhooks/{id}/secrets/{secretId}": {
|
|
5092
|
+
parameters: {
|
|
5093
|
+
query?: never;
|
|
5094
|
+
header?: never;
|
|
5095
|
+
path?: never;
|
|
5096
|
+
cookie?: never;
|
|
5097
|
+
};
|
|
5098
|
+
get?: never;
|
|
3659
5099
|
put?: never;
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
*
|
|
3663
|
-
*
|
|
3664
|
-
*
|
|
3665
|
-
* reflects exactly what was persisted (e.g. server-assigned condition ids, folded into the
|
|
3666
|
-
* public shape via FromDto).
|
|
5100
|
+
post?: never;
|
|
5101
|
+
/**
|
|
5102
|
+
* Retires a signing secret.
|
|
5103
|
+
* @description Requires Admin. Refused with a 400 when it is the subscription's
|
|
5104
|
+
* last active secret — rotate first.
|
|
3667
5105
|
*/
|
|
3668
|
-
|
|
5106
|
+
delete: {
|
|
3669
5107
|
parameters: {
|
|
3670
5108
|
query?: never;
|
|
3671
5109
|
header?: never;
|
|
3672
5110
|
path: {
|
|
3673
5111
|
org: string;
|
|
3674
|
-
|
|
5112
|
+
id: string;
|
|
5113
|
+
secretId: string;
|
|
3675
5114
|
};
|
|
3676
5115
|
cookie?: never;
|
|
3677
5116
|
};
|
|
3678
|
-
requestBody?:
|
|
3679
|
-
content: {
|
|
3680
|
-
"application/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3681
|
-
"text/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3682
|
-
"application/*+json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3683
|
-
};
|
|
3684
|
-
};
|
|
5117
|
+
requestBody?: never;
|
|
3685
5118
|
responses: {
|
|
3686
|
-
/** @description
|
|
3687
|
-
|
|
5119
|
+
/** @description No Content */
|
|
5120
|
+
204: {
|
|
3688
5121
|
headers: {
|
|
3689
5122
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3690
5123
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3691
5124
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3692
5125
|
[name: string]: unknown;
|
|
3693
5126
|
};
|
|
3694
|
-
content
|
|
3695
|
-
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
3696
|
-
};
|
|
5127
|
+
content?: never;
|
|
3697
5128
|
};
|
|
3698
5129
|
/** @description Bad Request */
|
|
3699
5130
|
400: {
|
|
@@ -3759,41 +5190,40 @@ export interface paths {
|
|
|
3759
5190
|
};
|
|
3760
5191
|
};
|
|
3761
5192
|
};
|
|
3762
|
-
delete?: never;
|
|
3763
5193
|
options?: never;
|
|
3764
5194
|
head?: never;
|
|
3765
5195
|
patch?: never;
|
|
3766
5196
|
trace?: never;
|
|
3767
5197
|
};
|
|
3768
|
-
"/api/v1/orgs/{org}/
|
|
5198
|
+
"/api/v1/orgs/{org}/webhooks/{id}/test": {
|
|
3769
5199
|
parameters: {
|
|
3770
5200
|
query?: never;
|
|
3771
5201
|
header?: never;
|
|
3772
5202
|
path?: never;
|
|
3773
5203
|
cookie?: never;
|
|
3774
5204
|
};
|
|
5205
|
+
get?: never;
|
|
5206
|
+
put?: never;
|
|
3775
5207
|
/**
|
|
3776
|
-
*
|
|
3777
|
-
* @description
|
|
3778
|
-
*
|
|
3779
|
-
*
|
|
3780
|
-
* and finds the match — see the type-level remarks for why a list+find is acceptable here.
|
|
5208
|
+
* Queues one synthetic `flag.toggled` event for this subscription alone.
|
|
5209
|
+
* @description Requires Admin.
|
|
5210
|
+
* Delivery is asynchronous — read the delivery log for the outcome. Refused with a 400 when
|
|
5211
|
+
* the subscription is disabled.
|
|
3781
5212
|
*/
|
|
3782
|
-
|
|
5213
|
+
post: {
|
|
3783
5214
|
parameters: {
|
|
3784
5215
|
query?: never;
|
|
3785
5216
|
header?: never;
|
|
3786
5217
|
path: {
|
|
3787
5218
|
org: string;
|
|
3788
|
-
|
|
3789
|
-
segment: string;
|
|
5219
|
+
id: string;
|
|
3790
5220
|
};
|
|
3791
5221
|
cookie?: never;
|
|
3792
5222
|
};
|
|
3793
5223
|
requestBody?: never;
|
|
3794
5224
|
responses: {
|
|
3795
|
-
/** @description
|
|
3796
|
-
|
|
5225
|
+
/** @description Accepted */
|
|
5226
|
+
202: {
|
|
3797
5227
|
headers: {
|
|
3798
5228
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3799
5229
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3801,7 +5231,19 @@ export interface paths {
|
|
|
3801
5231
|
[name: string]: unknown;
|
|
3802
5232
|
};
|
|
3803
5233
|
content: {
|
|
3804
|
-
"application/json": components["schemas"]["
|
|
5234
|
+
"application/json": components["schemas"]["PublicTestWebhookSubscriptionResponse"];
|
|
5235
|
+
};
|
|
5236
|
+
};
|
|
5237
|
+
/** @description Bad Request */
|
|
5238
|
+
400: {
|
|
5239
|
+
headers: {
|
|
5240
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5241
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5242
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5243
|
+
[name: string]: unknown;
|
|
5244
|
+
};
|
|
5245
|
+
content: {
|
|
5246
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3805
5247
|
};
|
|
3806
5248
|
};
|
|
3807
5249
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3816,6 +5258,18 @@ export interface paths {
|
|
|
3816
5258
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3817
5259
|
};
|
|
3818
5260
|
};
|
|
5261
|
+
/** @description Forbidden */
|
|
5262
|
+
403: {
|
|
5263
|
+
headers: {
|
|
5264
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5265
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5266
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5267
|
+
[name: string]: unknown;
|
|
5268
|
+
};
|
|
5269
|
+
content: {
|
|
5270
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5271
|
+
};
|
|
5272
|
+
};
|
|
3819
5273
|
/** @description Not Found */
|
|
3820
5274
|
404: {
|
|
3821
5275
|
headers: {
|
|
@@ -3844,41 +5298,40 @@ export interface paths {
|
|
|
3844
5298
|
};
|
|
3845
5299
|
};
|
|
3846
5300
|
};
|
|
5301
|
+
delete?: never;
|
|
5302
|
+
options?: never;
|
|
5303
|
+
head?: never;
|
|
5304
|
+
patch?: never;
|
|
5305
|
+
trace?: never;
|
|
5306
|
+
};
|
|
5307
|
+
"/api/v1/orgs/{org}/webhooks/{id}/deliveries": {
|
|
5308
|
+
parameters: {
|
|
5309
|
+
query?: never;
|
|
5310
|
+
header?: never;
|
|
5311
|
+
path?: never;
|
|
5312
|
+
cookie?: never;
|
|
5313
|
+
};
|
|
3847
5314
|
/**
|
|
3848
|
-
*
|
|
3849
|
-
* @description Requires
|
|
5315
|
+
* Lists a subscription's delivery attempts, most recent first.
|
|
5316
|
+
* @description Requires Admin.
|
|
3850
5317
|
*/
|
|
3851
|
-
|
|
5318
|
+
get: {
|
|
3852
5319
|
parameters: {
|
|
3853
|
-
query?:
|
|
5320
|
+
query?: {
|
|
5321
|
+
limit?: number;
|
|
5322
|
+
cursor?: string;
|
|
5323
|
+
};
|
|
3854
5324
|
header?: never;
|
|
3855
5325
|
path: {
|
|
3856
5326
|
org: string;
|
|
3857
|
-
|
|
3858
|
-
segment: string;
|
|
5327
|
+
id: string;
|
|
3859
5328
|
};
|
|
3860
5329
|
cookie?: never;
|
|
3861
5330
|
};
|
|
3862
|
-
requestBody?:
|
|
3863
|
-
content: {
|
|
3864
|
-
"application/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3865
|
-
"text/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3866
|
-
"application/*+json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3867
|
-
};
|
|
3868
|
-
};
|
|
5331
|
+
requestBody?: never;
|
|
3869
5332
|
responses: {
|
|
3870
|
-
/** @description
|
|
3871
|
-
|
|
3872
|
-
headers: {
|
|
3873
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3874
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3875
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3876
|
-
[name: string]: unknown;
|
|
3877
|
-
};
|
|
3878
|
-
content?: never;
|
|
3879
|
-
};
|
|
3880
|
-
/** @description Bad Request */
|
|
3881
|
-
400: {
|
|
5333
|
+
/** @description OK */
|
|
5334
|
+
200: {
|
|
3882
5335
|
headers: {
|
|
3883
5336
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3884
5337
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3886,7 +5339,7 @@ export interface paths {
|
|
|
3886
5339
|
[name: string]: unknown;
|
|
3887
5340
|
};
|
|
3888
5341
|
content: {
|
|
3889
|
-
"application/json": components["schemas"]["
|
|
5342
|
+
"application/json": components["schemas"]["PublicWebhookDeliveryResponsePagedResult"];
|
|
3890
5343
|
};
|
|
3891
5344
|
};
|
|
3892
5345
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3941,19 +5394,37 @@ export interface paths {
|
|
|
3941
5394
|
};
|
|
3942
5395
|
};
|
|
3943
5396
|
};
|
|
5397
|
+
put?: never;
|
|
3944
5398
|
post?: never;
|
|
5399
|
+
delete?: never;
|
|
5400
|
+
options?: never;
|
|
5401
|
+
head?: never;
|
|
5402
|
+
patch?: never;
|
|
5403
|
+
trace?: never;
|
|
5404
|
+
};
|
|
5405
|
+
"/api/v1/orgs/{org}/webhooks/{id}/deliveries/{deliveryId}/redeliver": {
|
|
5406
|
+
parameters: {
|
|
5407
|
+
query?: never;
|
|
5408
|
+
header?: never;
|
|
5409
|
+
path?: never;
|
|
5410
|
+
cookie?: never;
|
|
5411
|
+
};
|
|
5412
|
+
get?: never;
|
|
5413
|
+
put?: never;
|
|
3945
5414
|
/**
|
|
3946
|
-
*
|
|
3947
|
-
* @description Requires
|
|
5415
|
+
* Queues a finished delivery (succeeded or dead-lettered) to be sent again, restarting its retry schedule.
|
|
5416
|
+
* @description Requires Admin. Refused with a 400 when the delivery is still pending, when
|
|
5417
|
+
* the subscription is disabled, or when the delivery's event belongs to a project the
|
|
5418
|
+
* subscription no longer covers.
|
|
3948
5419
|
*/
|
|
3949
|
-
|
|
5420
|
+
post: {
|
|
3950
5421
|
parameters: {
|
|
3951
5422
|
query?: never;
|
|
3952
5423
|
header?: never;
|
|
3953
5424
|
path: {
|
|
3954
5425
|
org: string;
|
|
3955
|
-
|
|
3956
|
-
|
|
5426
|
+
id: string;
|
|
5427
|
+
deliveryId: string;
|
|
3957
5428
|
};
|
|
3958
5429
|
cookie?: never;
|
|
3959
5430
|
};
|
|
@@ -3969,6 +5440,18 @@ export interface paths {
|
|
|
3969
5440
|
};
|
|
3970
5441
|
content?: never;
|
|
3971
5442
|
};
|
|
5443
|
+
/** @description Bad Request */
|
|
5444
|
+
400: {
|
|
5445
|
+
headers: {
|
|
5446
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5447
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5448
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5449
|
+
[name: string]: unknown;
|
|
5450
|
+
};
|
|
5451
|
+
content: {
|
|
5452
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5453
|
+
};
|
|
5454
|
+
};
|
|
3972
5455
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3973
5456
|
401: {
|
|
3974
5457
|
headers: {
|
|
@@ -4021,6 +5504,7 @@ export interface paths {
|
|
|
4021
5504
|
};
|
|
4022
5505
|
};
|
|
4023
5506
|
};
|
|
5507
|
+
delete?: never;
|
|
4024
5508
|
options?: never;
|
|
4025
5509
|
head?: never;
|
|
4026
5510
|
patch?: never;
|
|
@@ -4271,7 +5755,12 @@ export interface components {
|
|
|
4271
5755
|
* schemaId-collision rationale (both controllers share one Swagger document). Type
|
|
4272
5756
|
* is passed through verbatim to Type, which itself takes a
|
|
4273
5757
|
* bare string (Boolean/String/Number/Json) rather than the domain enum — invalid values surface
|
|
4274
|
-
* as the handler's own validation failure, not a controller-level 400.
|
|
5758
|
+
* as the handler's own validation failure, not a controller-level 400. ExpiresAtUtc is
|
|
5759
|
+
* optional and advisory; it must be in the future and requires the flag-expiration feature
|
|
5760
|
+
* (400 `EXPIRY_IN_PAST` / `FEATURE_NOT_ENABLED`). OwnerEmail optionally names
|
|
5761
|
+
* the owner (an active member, matched case-insensitively; requires the flag-ownership feature —
|
|
5762
|
+
* 400 `OWNER_NOT_MEMBER` / `FEATURE_NOT_ENABLED`). Omitted, the owner is the caller when
|
|
5763
|
+
* the caller is a member, so a service token creates an unowned flag.
|
|
4275
5764
|
* @example {
|
|
4276
5765
|
* "key": "new-checkout-flow",
|
|
4277
5766
|
* "name": "New Checkout Flow",
|
|
@@ -4310,6 +5799,9 @@ export interface components {
|
|
|
4310
5799
|
tags?: string[] | null;
|
|
4311
5800
|
initialVariations?: components["schemas"]["PublicCreateVariationDto"][] | null;
|
|
4312
5801
|
clientSideVisible?: boolean;
|
|
5802
|
+
/** Format: date-time */
|
|
5803
|
+
expiresAtUtc?: string | null;
|
|
5804
|
+
ownerEmail?: string | null;
|
|
4313
5805
|
};
|
|
4314
5806
|
/**
|
|
4315
5807
|
* @description Request body for `POST /api/v1/orgs/{org}/projects`. Named distinctly from the
|
|
@@ -4460,6 +5952,53 @@ export interface components {
|
|
|
4460
5952
|
value?: string | null;
|
|
4461
5953
|
description?: string | null;
|
|
4462
5954
|
};
|
|
5955
|
+
/**
|
|
5956
|
+
* @description Creates a webhook subscription. `provider` is `GenericHttp`. Omit `eventTypes`,
|
|
5957
|
+
* `projectIds` or `environmentIds` (or send an empty list) to receive every event,
|
|
5958
|
+
* project or environment. A token restricted to specific projects must list at least one project,
|
|
5959
|
+
* all of them within its allowlist.
|
|
5960
|
+
* @example {
|
|
5961
|
+
* "name": "Checkout flag changes to Slack relay",
|
|
5962
|
+
* "url": "https://hooks.acme.example/featureflip",
|
|
5963
|
+
* "provider": "GenericHttp",
|
|
5964
|
+
* "eventTypes": [
|
|
5965
|
+
* "flag.toggled",
|
|
5966
|
+
* "flag.updated"
|
|
5967
|
+
* ],
|
|
5968
|
+
* "projectIds": [
|
|
5969
|
+
* "0197b69f-1a2b-7c3d-8e4f-5a6b7c8d9e0f"
|
|
5970
|
+
* ],
|
|
5971
|
+
* "environmentIds": [
|
|
5972
|
+
* "0197b69f-2b3c-7d4e-9f5a-6b7c8d9e0f1a"
|
|
5973
|
+
* ]
|
|
5974
|
+
* }
|
|
5975
|
+
*/
|
|
5976
|
+
PublicCreateWebhookSubscriptionRequest: {
|
|
5977
|
+
name?: string | null;
|
|
5978
|
+
url?: string | null;
|
|
5979
|
+
/**
|
|
5980
|
+
* @description Allowed values: GenericHttp.
|
|
5981
|
+
* @enum {string|null}
|
|
5982
|
+
*/
|
|
5983
|
+
provider?: "GenericHttp" | null;
|
|
5984
|
+
eventTypes?: string[] | null;
|
|
5985
|
+
projectIds?: string[] | null;
|
|
5986
|
+
environmentIds?: string[] | null;
|
|
5987
|
+
};
|
|
5988
|
+
/**
|
|
5989
|
+
* @description The created subscription's id and its signing secret. The secret is shown only here.
|
|
5990
|
+
* @example {
|
|
5991
|
+
* "id": "0197b6a4-6f7a-7b8c-9d0e-1f2a3b4c5d6e",
|
|
5992
|
+
* "secret": "whsec_q2Vb8XJ1s0mYpZ4tK7wRr3uN9cL6aD5eF1gH2iJ3kL4=",
|
|
5993
|
+
* "warning": "Store this secret securely — it will not be shown again."
|
|
5994
|
+
* }
|
|
5995
|
+
*/
|
|
5996
|
+
PublicCreateWebhookSubscriptionResponse: {
|
|
5997
|
+
/** Format: uuid */
|
|
5998
|
+
id?: string;
|
|
5999
|
+
secret?: string | null;
|
|
6000
|
+
warning?: string | null;
|
|
6001
|
+
};
|
|
4463
6002
|
/**
|
|
4464
6003
|
* @description Public representation of an environment, returned by
|
|
4465
6004
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments` (list),
|
|
@@ -4569,6 +6108,9 @@ export interface components {
|
|
|
4569
6108
|
createdAt?: string;
|
|
4570
6109
|
/** Format: date-time */
|
|
4571
6110
|
updatedAt?: string;
|
|
6111
|
+
/** Format: date-time */
|
|
6112
|
+
expiresAtUtc?: string | null;
|
|
6113
|
+
owner?: components["schemas"]["PublicFlagOwner"];
|
|
4572
6114
|
};
|
|
4573
6115
|
/**
|
|
4574
6116
|
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
@@ -4602,6 +6144,13 @@ export interface components {
|
|
|
4602
6144
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4603
6145
|
};
|
|
4604
6146
|
};
|
|
6147
|
+
/** @description A flag's owner as returned on flag reads. Null means the flag is unowned. */
|
|
6148
|
+
PublicFlagOwner: {
|
|
6149
|
+
/** Format: uuid */
|
|
6150
|
+
id?: string;
|
|
6151
|
+
email?: string | null;
|
|
6152
|
+
name?: string | null;
|
|
6153
|
+
};
|
|
4605
6154
|
/**
|
|
4606
6155
|
* @description One dead flag the Featureflip Flag Cleanup Action should remove, returned by
|
|
4607
6156
|
* `GET .../flags/removal-candidates`. `Treatment` is the kill decision: true → keep the
|
|
@@ -4682,6 +6231,9 @@ export interface components {
|
|
|
4682
6231
|
createdAt?: string;
|
|
4683
6232
|
/** Format: date-time */
|
|
4684
6233
|
updatedAt?: string;
|
|
6234
|
+
/** Format: date-time */
|
|
6235
|
+
expiresAtUtc?: string | null;
|
|
6236
|
+
owner?: components["schemas"]["PublicFlagOwner"];
|
|
4685
6237
|
/** @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. */
|
|
4686
6238
|
_actions?: {
|
|
4687
6239
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -4719,6 +6271,13 @@ export interface components {
|
|
|
4719
6271
|
PublicReorderRulesRequest: {
|
|
4720
6272
|
ruleIds?: string[] | null;
|
|
4721
6273
|
};
|
|
6274
|
+
/** @description A newly added signing secret. The secret is shown only here. */
|
|
6275
|
+
PublicRotateWebhookSecretResponse: {
|
|
6276
|
+
/** Format: uuid */
|
|
6277
|
+
secretId?: string;
|
|
6278
|
+
secret?: string | null;
|
|
6279
|
+
warning?: string | null;
|
|
6280
|
+
};
|
|
4722
6281
|
/**
|
|
4723
6282
|
* @description Public representation of an SDK key, returned by
|
|
4724
6283
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys` (list) and
|
|
@@ -4843,6 +6402,25 @@ export interface components {
|
|
|
4843
6402
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4844
6403
|
};
|
|
4845
6404
|
};
|
|
6405
|
+
/**
|
|
6406
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/expiry`. Expiry is a
|
|
6407
|
+
* dedicated sub-resource, deliberately NOT a field on PublicUpdateFeatureFlagRequest: that
|
|
6408
|
+
* PUT is a full replace, so a new nullable field there would let any client that doesn't know about
|
|
6409
|
+
* expiry (the Terraform provider included) wipe it on every update.
|
|
6410
|
+
*/
|
|
6411
|
+
PublicSetFlagExpiryRequest: {
|
|
6412
|
+
/** Format: date-time */
|
|
6413
|
+
expiresAtUtc?: string;
|
|
6414
|
+
};
|
|
6415
|
+
/**
|
|
6416
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/owner`. A dedicated
|
|
6417
|
+
* sub-resource for the same reason as expiry: the main flag PUT is a full replace, so an owner field
|
|
6418
|
+
* there would let every client that doesn't know about owners wipe one. `email` must belong
|
|
6419
|
+
* to an active member of the organization (case-insensitive).
|
|
6420
|
+
*/
|
|
6421
|
+
PublicSetFlagOwnerRequest: {
|
|
6422
|
+
email?: string | null;
|
|
6423
|
+
};
|
|
4846
6424
|
/**
|
|
4847
6425
|
* @description The full targeting configuration for a flag in a single environment, returned by
|
|
4848
6426
|
* `GET .../targeting`. Maps 1:1 onto TargetingConfigurationDto — including
|
|
@@ -4906,6 +6484,13 @@ export interface components {
|
|
|
4906
6484
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4907
6485
|
};
|
|
4908
6486
|
};
|
|
6487
|
+
/** @description The queued test event and its delivery. Poll the delivery log for the outcome. */
|
|
6488
|
+
PublicTestWebhookSubscriptionResponse: {
|
|
6489
|
+
/** Format: uuid */
|
|
6490
|
+
webhookEventId?: string;
|
|
6491
|
+
/** Format: uuid */
|
|
6492
|
+
webhookDeliveryId?: string;
|
|
6493
|
+
};
|
|
4909
6494
|
/**
|
|
4910
6495
|
* @description Request body for `POST .../flags/{flag}/environments/{env}/toggle`. Named distinctly from
|
|
4911
6496
|
* the dashboard's own `ToggleFlagInEnvironmentRequest`
|
|
@@ -5030,6 +6615,18 @@ export interface components {
|
|
|
5030
6615
|
value?: string | null;
|
|
5031
6616
|
description?: string | null;
|
|
5032
6617
|
};
|
|
6618
|
+
/**
|
|
6619
|
+
* @description Replaces a subscription's configuration (full replace — omitted lists become empty, meaning
|
|
6620
|
+
* "all"). `isEnabled` is required. The provider cannot be changed.
|
|
6621
|
+
*/
|
|
6622
|
+
PublicUpdateWebhookSubscriptionRequest: {
|
|
6623
|
+
name?: string | null;
|
|
6624
|
+
url?: string | null;
|
|
6625
|
+
eventTypes?: string[] | null;
|
|
6626
|
+
projectIds?: string[] | null;
|
|
6627
|
+
environmentIds?: string[] | null;
|
|
6628
|
+
isEnabled?: boolean | null;
|
|
6629
|
+
};
|
|
5033
6630
|
/**
|
|
5034
6631
|
* @description A single variation on a flag, as returned in Variations.
|
|
5035
6632
|
* @example {
|
|
@@ -5052,6 +6649,121 @@ export interface components {
|
|
|
5052
6649
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
5053
6650
|
};
|
|
5054
6651
|
};
|
|
6652
|
+
/**
|
|
6653
|
+
* @description One delivery attempt record. `status` is `Pending` (awaiting its first attempt,
|
|
6654
|
+
* backing off, or in flight), `Succeeded` or `DeadLettered`.
|
|
6655
|
+
*/
|
|
6656
|
+
PublicWebhookDeliveryResponse: {
|
|
6657
|
+
/** Format: uuid */
|
|
6658
|
+
id?: string;
|
|
6659
|
+
/** Format: uuid */
|
|
6660
|
+
webhookEventId?: string;
|
|
6661
|
+
/**
|
|
6662
|
+
* @description Allowed values: Pending, Succeeded, DeadLettered.
|
|
6663
|
+
* @enum {string|null}
|
|
6664
|
+
*/
|
|
6665
|
+
status?: "Pending" | "Succeeded" | "DeadLettered" | null;
|
|
6666
|
+
/** Format: int32 */
|
|
6667
|
+
attemptCount?: number;
|
|
6668
|
+
/** Format: date-time */
|
|
6669
|
+
nextAttemptAt?: string;
|
|
6670
|
+
/** Format: int32 */
|
|
6671
|
+
lastResponseStatusCode?: number | null;
|
|
6672
|
+
lastError?: string | null;
|
|
6673
|
+
/** Format: date-time */
|
|
6674
|
+
completedAt?: string | null;
|
|
6675
|
+
/** Format: date-time */
|
|
6676
|
+
createdAt?: string;
|
|
6677
|
+
};
|
|
6678
|
+
/**
|
|
6679
|
+
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
6680
|
+
* page. Wire keys are frozen: `items` (already lowercase under the camelCase policy) and
|
|
6681
|
+
* `next_cursor` (pinned explicitly — the policy alone would emit `nextCursor`).
|
|
6682
|
+
*/
|
|
6683
|
+
PublicWebhookDeliveryResponsePagedResult: {
|
|
6684
|
+
items?: components["schemas"]["PublicWebhookDeliveryResponse"][] | null;
|
|
6685
|
+
next_cursor?: string | null;
|
|
6686
|
+
};
|
|
6687
|
+
/** @description A signing secret's id and lifecycle. A secret with no `retiredAt` is active and signs every delivery. */
|
|
6688
|
+
PublicWebhookSecretResponse: {
|
|
6689
|
+
/** Format: uuid */
|
|
6690
|
+
id?: string;
|
|
6691
|
+
/** Format: date-time */
|
|
6692
|
+
createdAt?: string;
|
|
6693
|
+
/** Format: date-time */
|
|
6694
|
+
retiredAt?: string | null;
|
|
6695
|
+
};
|
|
6696
|
+
/**
|
|
6697
|
+
* @description A webhook subscription. Never carries secret material: signing secrets are listed by id and
|
|
6698
|
+
* lifecycle only — the value itself is returned once, when it is created or rotated.
|
|
6699
|
+
* @example {
|
|
6700
|
+
* "id": "0197b6a4-6f7a-7b8c-9d0e-1f2a3b4c5d6e",
|
|
6701
|
+
* "name": "Checkout flag changes to Slack relay",
|
|
6702
|
+
* "url": "https://hooks.acme.example/featureflip",
|
|
6703
|
+
* "provider": "GenericHttp",
|
|
6704
|
+
* "isEnabled": true,
|
|
6705
|
+
* "eventTypes": [
|
|
6706
|
+
* "flag.toggled",
|
|
6707
|
+
* "flag.updated"
|
|
6708
|
+
* ],
|
|
6709
|
+
* "projectIds": [
|
|
6710
|
+
* "0197b69f-1a2b-7c3d-8e4f-5a6b7c8d9e0f"
|
|
6711
|
+
* ],
|
|
6712
|
+
* "environmentIds": [
|
|
6713
|
+
* "0197b69f-2b3c-7d4e-9f5a-6b7c8d9e0f1a"
|
|
6714
|
+
* ],
|
|
6715
|
+
* "consecutiveFailureCount": 0,
|
|
6716
|
+
* "createdAt": "2026-06-01T12:00:00Z",
|
|
6717
|
+
* "updatedAt": "2026-06-15T08:30:00Z",
|
|
6718
|
+
* "secrets": [
|
|
6719
|
+
* {
|
|
6720
|
+
* "id": "0197b6a4-7a8b-7c9d-8e0f-2a3b4c5d6e7f",
|
|
6721
|
+
* "createdAt": "2026-06-01T12:00:00Z"
|
|
6722
|
+
* }
|
|
6723
|
+
* ]
|
|
6724
|
+
* }
|
|
6725
|
+
*/
|
|
6726
|
+
PublicWebhookSubscriptionResponse: {
|
|
6727
|
+
/** Format: uuid */
|
|
6728
|
+
id?: string;
|
|
6729
|
+
name?: string | null;
|
|
6730
|
+
url?: string | null;
|
|
6731
|
+
/**
|
|
6732
|
+
* @description Allowed values: GenericHttp.
|
|
6733
|
+
* @enum {string|null}
|
|
6734
|
+
*/
|
|
6735
|
+
provider?: "GenericHttp" | null;
|
|
6736
|
+
isEnabled?: boolean;
|
|
6737
|
+
eventTypes?: string[] | null;
|
|
6738
|
+
projectIds?: string[] | null;
|
|
6739
|
+
environmentIds?: string[] | null;
|
|
6740
|
+
/** Format: int32 */
|
|
6741
|
+
consecutiveFailureCount?: number;
|
|
6742
|
+
/** Format: date-time */
|
|
6743
|
+
autoDisabledAt?: string | null;
|
|
6744
|
+
/** Format: date-time */
|
|
6745
|
+
createdAt?: string;
|
|
6746
|
+
/** Format: date-time */
|
|
6747
|
+
updatedAt?: string;
|
|
6748
|
+
secrets?: components["schemas"]["PublicWebhookSecretResponse"][] | null;
|
|
6749
|
+
/** @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. */
|
|
6750
|
+
_actions?: {
|
|
6751
|
+
[key: string]: components["schemas"]["ActionCapability"];
|
|
6752
|
+
};
|
|
6753
|
+
};
|
|
6754
|
+
/**
|
|
6755
|
+
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
6756
|
+
* page. Wire keys are frozen: `items` (already lowercase under the camelCase policy) and
|
|
6757
|
+
* `next_cursor` (pinned explicitly — the policy alone would emit `nextCursor`).
|
|
6758
|
+
*/
|
|
6759
|
+
PublicWebhookSubscriptionResponsePagedResult: {
|
|
6760
|
+
items?: components["schemas"]["PublicWebhookSubscriptionResponse"][] | null;
|
|
6761
|
+
next_cursor?: string | null;
|
|
6762
|
+
/** @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. */
|
|
6763
|
+
_actions?: {
|
|
6764
|
+
[key: string]: components["schemas"]["ActionCapability"];
|
|
6765
|
+
};
|
|
6766
|
+
};
|
|
5055
6767
|
};
|
|
5056
6768
|
responses: never;
|
|
5057
6769
|
parameters: never;
|