@featureflip/mcp 0.1.7 → 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 +2224 -531
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{org-Fbj4wFOi.js → org-DZ1ge1Mx.js} +329 -130
- 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 +16 -4
|
@@ -443,7 +443,8 @@ export interface paths {
|
|
|
443
443
|
* computed from the query result rather than an in-memory count. `type` is parsed
|
|
444
444
|
* leniently — an unrecognized value degrades to "no type filter" (matching
|
|
445
445
|
* Decode's "garbage input degrades gracefully" precedent)
|
|
446
|
-
* rather than a 400, since it's a non-critical list filter, not a mutation.
|
|
446
|
+
* rather than a 400, since it's a non-critical list filter, not a mutation. `owner` filters
|
|
447
|
+
* by owner: an email (an active member, case-insensitive) or `none` for unowned flags.
|
|
447
448
|
*/
|
|
448
449
|
get: {
|
|
449
450
|
parameters: {
|
|
@@ -454,6 +455,7 @@ export interface paths {
|
|
|
454
455
|
archived?: boolean;
|
|
455
456
|
limit?: number;
|
|
456
457
|
cursor?: string;
|
|
458
|
+
owner?: string;
|
|
457
459
|
};
|
|
458
460
|
header?: never;
|
|
459
461
|
path: {
|
|
@@ -980,7 +982,7 @@ export interface paths {
|
|
|
980
982
|
patch?: never;
|
|
981
983
|
trace?: never;
|
|
982
984
|
};
|
|
983
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
985
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/expiry": {
|
|
984
986
|
parameters: {
|
|
985
987
|
query?: never;
|
|
986
988
|
header?: never;
|
|
@@ -988,21 +990,16 @@ 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
|
-
query?:
|
|
999
|
-
/**
|
|
1000
|
-
* @description Archive even though live traffic is still evaluating the flag. Without it the request is
|
|
1001
|
-
* refused with `FLAG_RECENTLY_EVALUATED` naming the environments still reading it — which
|
|
1002
|
-
* usually means the removal has merged but not yet deployed.
|
|
1003
|
-
*/
|
|
1004
|
-
force?: boolean;
|
|
1005
|
-
};
|
|
1002
|
+
query?: never;
|
|
1006
1003
|
header?: never;
|
|
1007
1004
|
path: {
|
|
1008
1005
|
org: string;
|
|
@@ -1011,7 +1008,13 @@ export interface paths {
|
|
|
1011
1008
|
};
|
|
1012
1009
|
cookie?: never;
|
|
1013
1010
|
};
|
|
1014
|
-
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
|
+
};
|
|
1015
1018
|
responses: {
|
|
1016
1019
|
/** @description No Content */
|
|
1017
1020
|
204: {
|
|
@@ -1087,26 +1090,13 @@ export interface paths {
|
|
|
1087
1090
|
};
|
|
1088
1091
|
};
|
|
1089
1092
|
};
|
|
1090
|
-
|
|
1091
|
-
options?: never;
|
|
1092
|
-
head?: never;
|
|
1093
|
-
patch?: never;
|
|
1094
|
-
trace?: never;
|
|
1095
|
-
};
|
|
1096
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/restore": {
|
|
1097
|
-
parameters: {
|
|
1098
|
-
query?: never;
|
|
1099
|
-
header?: never;
|
|
1100
|
-
path?: never;
|
|
1101
|
-
cookie?: never;
|
|
1102
|
-
};
|
|
1103
|
-
get?: never;
|
|
1104
|
-
put?: never;
|
|
1093
|
+
post?: never;
|
|
1105
1094
|
/**
|
|
1106
|
-
*
|
|
1107
|
-
* @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.
|
|
1108
1098
|
*/
|
|
1109
|
-
|
|
1099
|
+
delete: {
|
|
1110
1100
|
parameters: {
|
|
1111
1101
|
query?: never;
|
|
1112
1102
|
header?: never;
|
|
@@ -1181,21 +1171,26 @@ export interface paths {
|
|
|
1181
1171
|
};
|
|
1182
1172
|
};
|
|
1183
1173
|
};
|
|
1184
|
-
delete?: never;
|
|
1185
1174
|
options?: never;
|
|
1186
1175
|
head?: never;
|
|
1187
1176
|
patch?: never;
|
|
1188
1177
|
trace?: never;
|
|
1189
1178
|
};
|
|
1190
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
1179
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/owner": {
|
|
1191
1180
|
parameters: {
|
|
1192
1181
|
query?: never;
|
|
1193
1182
|
header?: never;
|
|
1194
1183
|
path?: never;
|
|
1195
1184
|
cookie?: never;
|
|
1196
1185
|
};
|
|
1197
|
-
|
|
1198
|
-
|
|
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: {
|
|
1199
1194
|
parameters: {
|
|
1200
1195
|
query?: never;
|
|
1201
1196
|
header?: never;
|
|
@@ -1206,10 +1201,26 @@ export interface paths {
|
|
|
1206
1201
|
};
|
|
1207
1202
|
cookie?: never;
|
|
1208
1203
|
};
|
|
1209
|
-
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
|
+
};
|
|
1210
1211
|
responses: {
|
|
1211
|
-
/** @description
|
|
1212
|
-
|
|
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: {
|
|
1213
1224
|
headers: {
|
|
1214
1225
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1215
1226
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1217,7 +1228,7 @@ export interface paths {
|
|
|
1217
1228
|
[name: string]: unknown;
|
|
1218
1229
|
};
|
|
1219
1230
|
content: {
|
|
1220
|
-
"application/json": components["schemas"]["
|
|
1231
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1221
1232
|
};
|
|
1222
1233
|
};
|
|
1223
1234
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1232,6 +1243,18 @@ export interface paths {
|
|
|
1232
1243
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1233
1244
|
};
|
|
1234
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
|
+
};
|
|
1235
1258
|
/** @description Not Found */
|
|
1236
1259
|
404: {
|
|
1237
1260
|
headers: {
|
|
@@ -1260,29 +1283,13 @@ export interface paths {
|
|
|
1260
1283
|
};
|
|
1261
1284
|
};
|
|
1262
1285
|
};
|
|
1263
|
-
put?: never;
|
|
1264
1286
|
post?: never;
|
|
1265
|
-
delete?: never;
|
|
1266
|
-
options?: never;
|
|
1267
|
-
head?: never;
|
|
1268
|
-
patch?: never;
|
|
1269
|
-
trace?: never;
|
|
1270
|
-
};
|
|
1271
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}": {
|
|
1272
|
-
parameters: {
|
|
1273
|
-
query?: never;
|
|
1274
|
-
header?: never;
|
|
1275
|
-
path?: never;
|
|
1276
|
-
cookie?: never;
|
|
1277
|
-
};
|
|
1278
1287
|
/**
|
|
1279
|
-
*
|
|
1280
|
-
* @description
|
|
1281
|
-
*
|
|
1282
|
-
* GetFlagEnvironmentConfigurationsQuery as GetAll and finds the
|
|
1283
|
-
* 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.
|
|
1284
1291
|
*/
|
|
1285
|
-
|
|
1292
|
+
delete: {
|
|
1286
1293
|
parameters: {
|
|
1287
1294
|
query?: never;
|
|
1288
1295
|
header?: never;
|
|
@@ -1290,23 +1297,20 @@ export interface paths {
|
|
|
1290
1297
|
org: string;
|
|
1291
1298
|
project: string;
|
|
1292
1299
|
flag: string;
|
|
1293
|
-
env: string;
|
|
1294
1300
|
};
|
|
1295
1301
|
cookie?: never;
|
|
1296
1302
|
};
|
|
1297
1303
|
requestBody?: never;
|
|
1298
1304
|
responses: {
|
|
1299
|
-
/** @description
|
|
1300
|
-
|
|
1305
|
+
/** @description No Content */
|
|
1306
|
+
204: {
|
|
1301
1307
|
headers: {
|
|
1302
1308
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1303
1309
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1304
1310
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1305
1311
|
[name: string]: unknown;
|
|
1306
1312
|
};
|
|
1307
|
-
content
|
|
1308
|
-
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"];
|
|
1309
|
-
};
|
|
1313
|
+
content?: never;
|
|
1310
1314
|
};
|
|
1311
1315
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1312
1316
|
401: {
|
|
@@ -1320,6 +1324,18 @@ export interface paths {
|
|
|
1320
1324
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1321
1325
|
};
|
|
1322
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
|
+
};
|
|
1323
1339
|
/** @description Not Found */
|
|
1324
1340
|
404: {
|
|
1325
1341
|
headers: {
|
|
@@ -1348,31 +1364,43 @@ export interface paths {
|
|
|
1348
1364
|
};
|
|
1349
1365
|
};
|
|
1350
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;
|
|
1351
1381
|
/**
|
|
1352
|
-
*
|
|
1353
|
-
* @description Requires at least Member.
|
|
1354
|
-
* Prerequisites leaves prerequisites untouched;
|
|
1355
|
-
* a non-null list replaces them wholesale.
|
|
1382
|
+
* Archives a flag.
|
|
1383
|
+
* @description Requires at least Member.
|
|
1356
1384
|
*/
|
|
1357
|
-
|
|
1385
|
+
post: {
|
|
1358
1386
|
parameters: {
|
|
1359
|
-
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
|
+
};
|
|
1360
1395
|
header?: never;
|
|
1361
1396
|
path: {
|
|
1362
1397
|
org: string;
|
|
1363
1398
|
project: string;
|
|
1364
1399
|
flag: string;
|
|
1365
|
-
env: string;
|
|
1366
1400
|
};
|
|
1367
1401
|
cookie?: never;
|
|
1368
1402
|
};
|
|
1369
|
-
requestBody?:
|
|
1370
|
-
content: {
|
|
1371
|
-
"application/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1372
|
-
"text/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1373
|
-
"application/*+json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1374
|
-
};
|
|
1375
|
-
};
|
|
1403
|
+
requestBody?: never;
|
|
1376
1404
|
responses: {
|
|
1377
1405
|
/** @description No Content */
|
|
1378
1406
|
204: {
|
|
@@ -1448,14 +1476,13 @@ export interface paths {
|
|
|
1448
1476
|
};
|
|
1449
1477
|
};
|
|
1450
1478
|
};
|
|
1451
|
-
post?: never;
|
|
1452
1479
|
delete?: never;
|
|
1453
1480
|
options?: never;
|
|
1454
1481
|
head?: never;
|
|
1455
1482
|
patch?: never;
|
|
1456
1483
|
trace?: never;
|
|
1457
1484
|
};
|
|
1458
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
1485
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/restore": {
|
|
1459
1486
|
parameters: {
|
|
1460
1487
|
query?: never;
|
|
1461
1488
|
header?: never;
|
|
@@ -1465,7 +1492,7 @@ export interface paths {
|
|
|
1465
1492
|
get?: never;
|
|
1466
1493
|
put?: never;
|
|
1467
1494
|
/**
|
|
1468
|
-
*
|
|
1495
|
+
* Restores a previously archived flag.
|
|
1469
1496
|
* @description Requires at least Member.
|
|
1470
1497
|
*/
|
|
1471
1498
|
post: {
|
|
@@ -1476,17 +1503,10 @@ export interface paths {
|
|
|
1476
1503
|
org: string;
|
|
1477
1504
|
project: string;
|
|
1478
1505
|
flag: string;
|
|
1479
|
-
env: string;
|
|
1480
1506
|
};
|
|
1481
1507
|
cookie?: never;
|
|
1482
1508
|
};
|
|
1483
|
-
requestBody?:
|
|
1484
|
-
content: {
|
|
1485
|
-
"application/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1486
|
-
"text/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1487
|
-
"application/*+json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1488
|
-
};
|
|
1489
|
-
};
|
|
1509
|
+
requestBody?: never;
|
|
1490
1510
|
responses: {
|
|
1491
1511
|
/** @description No Content */
|
|
1492
1512
|
204: {
|
|
@@ -1498,18 +1518,6 @@ export interface paths {
|
|
|
1498
1518
|
};
|
|
1499
1519
|
content?: never;
|
|
1500
1520
|
};
|
|
1501
|
-
/** @description Bad Request */
|
|
1502
|
-
400: {
|
|
1503
|
-
headers: {
|
|
1504
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1505
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1506
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1507
|
-
[name: string]: unknown;
|
|
1508
|
-
};
|
|
1509
|
-
content: {
|
|
1510
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1511
|
-
};
|
|
1512
|
-
};
|
|
1513
1521
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1514
1522
|
401: {
|
|
1515
1523
|
headers: {
|
|
@@ -1568,20 +1576,14 @@ export interface paths {
|
|
|
1568
1576
|
patch?: never;
|
|
1569
1577
|
trace?: never;
|
|
1570
1578
|
};
|
|
1571
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments
|
|
1579
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments": {
|
|
1572
1580
|
parameters: {
|
|
1573
1581
|
query?: never;
|
|
1574
1582
|
header?: never;
|
|
1575
1583
|
path?: never;
|
|
1576
1584
|
cookie?: never;
|
|
1577
1585
|
};
|
|
1578
|
-
/**
|
|
1579
|
-
* Gets the resolved flag's full targeting configuration (enabled flag + ordered rules) in the resolved environment.
|
|
1580
|
-
* @description GetTargetingConfigurationQuery returns null when
|
|
1581
|
-
* no `FlagEnvironmentConfiguration` exists yet for this flag/environment pair — treated
|
|
1582
|
-
* as 404 here (rather than an empty PublicTargetingConfigResponse) for
|
|
1583
|
-
* consistency with every other resolved-resource 404 on this surface.
|
|
1584
|
-
*/
|
|
1586
|
+
/** Gets the resolved flag's config in every environment of the resolved project. */
|
|
1585
1587
|
get: {
|
|
1586
1588
|
parameters: {
|
|
1587
1589
|
query?: never;
|
|
@@ -1590,7 +1592,6 @@ export interface paths {
|
|
|
1590
1592
|
org: string;
|
|
1591
1593
|
project: string;
|
|
1592
1594
|
flag: string;
|
|
1593
|
-
env: string;
|
|
1594
1595
|
};
|
|
1595
1596
|
cookie?: never;
|
|
1596
1597
|
};
|
|
@@ -1605,7 +1606,7 @@ export interface paths {
|
|
|
1605
1606
|
[name: string]: unknown;
|
|
1606
1607
|
};
|
|
1607
1608
|
content: {
|
|
1608
|
-
"application/json": components["schemas"]["
|
|
1609
|
+
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"][];
|
|
1609
1610
|
};
|
|
1610
1611
|
};
|
|
1611
1612
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1648,13 +1649,29 @@ export interface paths {
|
|
|
1648
1649
|
};
|
|
1649
1650
|
};
|
|
1650
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
|
+
};
|
|
1651
1667
|
/**
|
|
1652
|
-
*
|
|
1653
|
-
* @description
|
|
1654
|
-
*
|
|
1655
|
-
*
|
|
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.
|
|
1656
1673
|
*/
|
|
1657
|
-
|
|
1674
|
+
get: {
|
|
1658
1675
|
parameters: {
|
|
1659
1676
|
query?: never;
|
|
1660
1677
|
header?: never;
|
|
@@ -1666,26 +1683,10 @@ export interface paths {
|
|
|
1666
1683
|
};
|
|
1667
1684
|
cookie?: never;
|
|
1668
1685
|
};
|
|
1669
|
-
requestBody?:
|
|
1670
|
-
content: {
|
|
1671
|
-
"application/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1672
|
-
"text/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1673
|
-
"application/*+json": components["schemas"]["PublicPutTargetingRequest"];
|
|
1674
|
-
};
|
|
1675
|
-
};
|
|
1686
|
+
requestBody?: never;
|
|
1676
1687
|
responses: {
|
|
1677
|
-
/** @description
|
|
1678
|
-
|
|
1679
|
-
headers: {
|
|
1680
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1681
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1682
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1683
|
-
[name: string]: unknown;
|
|
1684
|
-
};
|
|
1685
|
-
content?: never;
|
|
1686
|
-
};
|
|
1687
|
-
/** @description Bad Request */
|
|
1688
|
-
400: {
|
|
1688
|
+
/** @description OK */
|
|
1689
|
+
200: {
|
|
1689
1690
|
headers: {
|
|
1690
1691
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1691
1692
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1693,7 +1694,7 @@ export interface paths {
|
|
|
1693
1694
|
[name: string]: unknown;
|
|
1694
1695
|
};
|
|
1695
1696
|
content: {
|
|
1696
|
-
"application/json": components["schemas"]["
|
|
1697
|
+
"application/json": components["schemas"]["PublicFlagEnvConfigResponse"];
|
|
1697
1698
|
};
|
|
1698
1699
|
};
|
|
1699
1700
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -1708,20 +1709,8 @@ export interface paths {
|
|
|
1708
1709
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1709
1710
|
};
|
|
1710
1711
|
};
|
|
1711
|
-
/** @description
|
|
1712
|
-
|
|
1713
|
-
headers: {
|
|
1714
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1715
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1716
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1717
|
-
[name: string]: unknown;
|
|
1718
|
-
};
|
|
1719
|
-
content: {
|
|
1720
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1721
|
-
};
|
|
1722
|
-
};
|
|
1723
|
-
/** @description Not Found */
|
|
1724
|
-
404: {
|
|
1712
|
+
/** @description Not Found */
|
|
1713
|
+
404: {
|
|
1725
1714
|
headers: {
|
|
1726
1715
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1727
1716
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -1748,30 +1737,13 @@ export interface paths {
|
|
|
1748
1737
|
};
|
|
1749
1738
|
};
|
|
1750
1739
|
};
|
|
1751
|
-
post?: never;
|
|
1752
|
-
delete?: never;
|
|
1753
|
-
options?: never;
|
|
1754
|
-
head?: never;
|
|
1755
|
-
patch?: never;
|
|
1756
|
-
trace?: never;
|
|
1757
|
-
};
|
|
1758
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules": {
|
|
1759
|
-
parameters: {
|
|
1760
|
-
query?: never;
|
|
1761
|
-
header?: never;
|
|
1762
|
-
path?: never;
|
|
1763
|
-
cookie?: never;
|
|
1764
|
-
};
|
|
1765
|
-
get?: never;
|
|
1766
|
-
put?: never;
|
|
1767
1740
|
/**
|
|
1768
|
-
*
|
|
1769
|
-
* @description Requires at
|
|
1770
|
-
*
|
|
1771
|
-
*
|
|
1772
|
-
* 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.
|
|
1773
1745
|
*/
|
|
1774
|
-
|
|
1746
|
+
put: {
|
|
1775
1747
|
parameters: {
|
|
1776
1748
|
query?: never;
|
|
1777
1749
|
header?: never;
|
|
@@ -1785,23 +1757,21 @@ export interface paths {
|
|
|
1785
1757
|
};
|
|
1786
1758
|
requestBody?: {
|
|
1787
1759
|
content: {
|
|
1788
|
-
"application/json": components["schemas"]["
|
|
1789
|
-
"text/json": components["schemas"]["
|
|
1790
|
-
"application/*+json": components["schemas"]["
|
|
1760
|
+
"application/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1761
|
+
"text/json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1762
|
+
"application/*+json": components["schemas"]["PublicUpdateFlagEnvConfigRequest"];
|
|
1791
1763
|
};
|
|
1792
1764
|
};
|
|
1793
1765
|
responses: {
|
|
1794
|
-
/** @description
|
|
1795
|
-
|
|
1766
|
+
/** @description No Content */
|
|
1767
|
+
204: {
|
|
1796
1768
|
headers: {
|
|
1797
1769
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1798
1770
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1799
1771
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1800
1772
|
[name: string]: unknown;
|
|
1801
1773
|
};
|
|
1802
|
-
content
|
|
1803
|
-
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
1804
|
-
};
|
|
1774
|
+
content?: never;
|
|
1805
1775
|
};
|
|
1806
1776
|
/** @description Bad Request */
|
|
1807
1777
|
400: {
|
|
@@ -1867,92 +1837,27 @@ export interface paths {
|
|
|
1867
1837
|
};
|
|
1868
1838
|
};
|
|
1869
1839
|
};
|
|
1840
|
+
post?: never;
|
|
1870
1841
|
delete?: never;
|
|
1871
1842
|
options?: never;
|
|
1872
1843
|
head?: never;
|
|
1873
1844
|
patch?: never;
|
|
1874
1845
|
trace?: never;
|
|
1875
1846
|
};
|
|
1876
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/
|
|
1847
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/toggle": {
|
|
1877
1848
|
parameters: {
|
|
1878
1849
|
query?: never;
|
|
1879
1850
|
header?: never;
|
|
1880
1851
|
path?: never;
|
|
1881
1852
|
cookie?: never;
|
|
1882
1853
|
};
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
parameters: {
|
|
1886
|
-
query?: never;
|
|
1887
|
-
header?: never;
|
|
1888
|
-
path: {
|
|
1889
|
-
org: string;
|
|
1890
|
-
project: string;
|
|
1891
|
-
flag: string;
|
|
1892
|
-
env: string;
|
|
1893
|
-
ruleId: string;
|
|
1894
|
-
};
|
|
1895
|
-
cookie?: never;
|
|
1896
|
-
};
|
|
1897
|
-
requestBody?: never;
|
|
1898
|
-
responses: {
|
|
1899
|
-
/** @description OK */
|
|
1900
|
-
200: {
|
|
1901
|
-
headers: {
|
|
1902
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1903
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1904
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1905
|
-
[name: string]: unknown;
|
|
1906
|
-
};
|
|
1907
|
-
content: {
|
|
1908
|
-
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
1909
|
-
};
|
|
1910
|
-
};
|
|
1911
|
-
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
1912
|
-
401: {
|
|
1913
|
-
headers: {
|
|
1914
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1915
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1916
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1917
|
-
[name: string]: unknown;
|
|
1918
|
-
};
|
|
1919
|
-
content: {
|
|
1920
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1921
|
-
};
|
|
1922
|
-
};
|
|
1923
|
-
/** @description Not Found */
|
|
1924
|
-
404: {
|
|
1925
|
-
headers: {
|
|
1926
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1927
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1928
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1929
|
-
[name: string]: unknown;
|
|
1930
|
-
};
|
|
1931
|
-
content: {
|
|
1932
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1933
|
-
};
|
|
1934
|
-
};
|
|
1935
|
-
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
1936
|
-
429: {
|
|
1937
|
-
headers: {
|
|
1938
|
-
/** @description Number of seconds to wait before retrying the request. */
|
|
1939
|
-
"Retry-After"?: number;
|
|
1940
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
1941
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
1942
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
1943
|
-
[name: string]: unknown;
|
|
1944
|
-
};
|
|
1945
|
-
content: {
|
|
1946
|
-
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
1947
|
-
};
|
|
1948
|
-
};
|
|
1949
|
-
};
|
|
1950
|
-
};
|
|
1854
|
+
get?: never;
|
|
1855
|
+
put?: never;
|
|
1951
1856
|
/**
|
|
1952
|
-
*
|
|
1857
|
+
* Enables or disables the resolved flag in a resolved environment.
|
|
1953
1858
|
* @description Requires at least Member.
|
|
1954
1859
|
*/
|
|
1955
|
-
|
|
1860
|
+
post: {
|
|
1956
1861
|
parameters: {
|
|
1957
1862
|
query?: never;
|
|
1958
1863
|
header?: never;
|
|
@@ -1961,15 +1866,14 @@ export interface paths {
|
|
|
1961
1866
|
project: string;
|
|
1962
1867
|
flag: string;
|
|
1963
1868
|
env: string;
|
|
1964
|
-
ruleId: string;
|
|
1965
1869
|
};
|
|
1966
1870
|
cookie?: never;
|
|
1967
1871
|
};
|
|
1968
1872
|
requestBody?: {
|
|
1969
1873
|
content: {
|
|
1970
|
-
"application/json": components["schemas"]["
|
|
1971
|
-
"text/json": components["schemas"]["
|
|
1972
|
-
"application/*+json": components["schemas"]["
|
|
1874
|
+
"application/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1875
|
+
"text/json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1876
|
+
"application/*+json": components["schemas"]["PublicToggleFlagRequest"];
|
|
1973
1877
|
};
|
|
1974
1878
|
};
|
|
1975
1879
|
responses: {
|
|
@@ -2047,12 +1951,27 @@ export interface paths {
|
|
|
2047
1951
|
};
|
|
2048
1952
|
};
|
|
2049
1953
|
};
|
|
2050
|
-
|
|
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
|
+
};
|
|
2051
1967
|
/**
|
|
2052
|
-
*
|
|
2053
|
-
* @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.
|
|
2054
1973
|
*/
|
|
2055
|
-
|
|
1974
|
+
get: {
|
|
2056
1975
|
parameters: {
|
|
2057
1976
|
query?: never;
|
|
2058
1977
|
header?: never;
|
|
@@ -2061,24 +1980,13 @@ export interface paths {
|
|
|
2061
1980
|
project: string;
|
|
2062
1981
|
flag: string;
|
|
2063
1982
|
env: string;
|
|
2064
|
-
ruleId: string;
|
|
2065
1983
|
};
|
|
2066
1984
|
cookie?: never;
|
|
2067
1985
|
};
|
|
2068
1986
|
requestBody?: never;
|
|
2069
1987
|
responses: {
|
|
2070
|
-
/** @description
|
|
2071
|
-
|
|
2072
|
-
headers: {
|
|
2073
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2074
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2075
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2076
|
-
[name: string]: unknown;
|
|
2077
|
-
};
|
|
2078
|
-
content?: never;
|
|
2079
|
-
};
|
|
2080
|
-
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2081
|
-
401: {
|
|
1988
|
+
/** @description OK */
|
|
1989
|
+
200: {
|
|
2082
1990
|
headers: {
|
|
2083
1991
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2084
1992
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -2086,11 +1994,11 @@ export interface paths {
|
|
|
2086
1994
|
[name: string]: unknown;
|
|
2087
1995
|
};
|
|
2088
1996
|
content: {
|
|
2089
|
-
"application/json": components["schemas"]["
|
|
1997
|
+
"application/json": components["schemas"]["PublicTargetingConfigResponse"];
|
|
2090
1998
|
};
|
|
2091
1999
|
};
|
|
2092
|
-
/** @description
|
|
2093
|
-
|
|
2000
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2001
|
+
401: {
|
|
2094
2002
|
headers: {
|
|
2095
2003
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2096
2004
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -2129,23 +2037,11 @@ export interface paths {
|
|
|
2129
2037
|
};
|
|
2130
2038
|
};
|
|
2131
2039
|
};
|
|
2132
|
-
options?: never;
|
|
2133
|
-
head?: never;
|
|
2134
|
-
patch?: never;
|
|
2135
|
-
trace?: never;
|
|
2136
|
-
};
|
|
2137
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/reorder": {
|
|
2138
|
-
parameters: {
|
|
2139
|
-
query?: never;
|
|
2140
|
-
header?: never;
|
|
2141
|
-
path?: never;
|
|
2142
|
-
cookie?: never;
|
|
2143
|
-
};
|
|
2144
|
-
get?: never;
|
|
2145
2040
|
/**
|
|
2146
|
-
*
|
|
2147
|
-
* @description
|
|
2148
|
-
*
|
|
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.
|
|
2149
2045
|
*/
|
|
2150
2046
|
put: {
|
|
2151
2047
|
parameters: {
|
|
@@ -2161,9 +2057,9 @@ export interface paths {
|
|
|
2161
2057
|
};
|
|
2162
2058
|
requestBody?: {
|
|
2163
2059
|
content: {
|
|
2164
|
-
"application/json": components["schemas"]["
|
|
2165
|
-
"text/json": components["schemas"]["
|
|
2166
|
-
"application/*+json": components["schemas"]["
|
|
2060
|
+
"application/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2061
|
+
"text/json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2062
|
+
"application/*+json": components["schemas"]["PublicPutTargetingRequest"];
|
|
2167
2063
|
};
|
|
2168
2064
|
};
|
|
2169
2065
|
responses: {
|
|
@@ -2177,6 +2073,18 @@ export interface paths {
|
|
|
2177
2073
|
};
|
|
2178
2074
|
content?: never;
|
|
2179
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
|
+
};
|
|
2180
2088
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2181
2089
|
401: {
|
|
2182
2090
|
headers: {
|
|
@@ -2236,7 +2144,7 @@ export interface paths {
|
|
|
2236
2144
|
patch?: never;
|
|
2237
2145
|
trace?: never;
|
|
2238
2146
|
};
|
|
2239
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
2147
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules": {
|
|
2240
2148
|
parameters: {
|
|
2241
2149
|
query?: never;
|
|
2242
2150
|
header?: never;
|
|
@@ -2246,10 +2154,11 @@ export interface paths {
|
|
|
2246
2154
|
get?: never;
|
|
2247
2155
|
put?: never;
|
|
2248
2156
|
/**
|
|
2249
|
-
*
|
|
2250
|
-
* @description Requires at
|
|
2251
|
-
*
|
|
2252
|
-
*
|
|
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).
|
|
2253
2162
|
*/
|
|
2254
2163
|
post: {
|
|
2255
2164
|
parameters: {
|
|
@@ -2259,14 +2168,15 @@ export interface paths {
|
|
|
2259
2168
|
org: string;
|
|
2260
2169
|
project: string;
|
|
2261
2170
|
flag: string;
|
|
2171
|
+
env: string;
|
|
2262
2172
|
};
|
|
2263
2173
|
cookie?: never;
|
|
2264
2174
|
};
|
|
2265
2175
|
requestBody?: {
|
|
2266
2176
|
content: {
|
|
2267
|
-
"application/json": components["schemas"]["
|
|
2268
|
-
"text/json": components["schemas"]["
|
|
2269
|
-
"application/*+json": components["schemas"]["
|
|
2177
|
+
"application/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2178
|
+
"text/json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2179
|
+
"application/*+json": components["schemas"]["PublicCreateTargetingRuleRequest"];
|
|
2270
2180
|
};
|
|
2271
2181
|
};
|
|
2272
2182
|
responses: {
|
|
@@ -2279,7 +2189,7 @@ export interface paths {
|
|
|
2279
2189
|
[name: string]: unknown;
|
|
2280
2190
|
};
|
|
2281
2191
|
content: {
|
|
2282
|
-
"application/json": components["schemas"]["
|
|
2192
|
+
"application/json": components["schemas"]["PublicTargetingRuleResponse"];
|
|
2283
2193
|
};
|
|
2284
2194
|
};
|
|
2285
2195
|
/** @description Bad Request */
|
|
@@ -2352,19 +2262,15 @@ export interface paths {
|
|
|
2352
2262
|
patch?: never;
|
|
2353
2263
|
trace?: never;
|
|
2354
2264
|
};
|
|
2355
|
-
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/
|
|
2265
|
+
"/api/v1/orgs/{org}/projects/{project}/flags/{flag}/environments/{env}/rules/{ruleId}": {
|
|
2356
2266
|
parameters: {
|
|
2357
2267
|
query?: never;
|
|
2358
2268
|
header?: never;
|
|
2359
2269
|
path?: never;
|
|
2360
2270
|
cookie?: never;
|
|
2361
2271
|
};
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
* Updates a variation's name/value/description.
|
|
2365
|
-
* @description Requires at least Member. The variation's key is immutable via this endpoint.
|
|
2366
|
-
*/
|
|
2367
|
-
put: {
|
|
2272
|
+
/** Gets a single targeting rule on the resolved flag in the resolved environment by id. */
|
|
2273
|
+
get: {
|
|
2368
2274
|
parameters: {
|
|
2369
2275
|
query?: never;
|
|
2370
2276
|
header?: never;
|
|
@@ -2372,14 +2278,497 @@ export interface paths {
|
|
|
2372
2278
|
org: string;
|
|
2373
2279
|
project: string;
|
|
2374
2280
|
flag: string;
|
|
2375
|
-
|
|
2281
|
+
env: string;
|
|
2282
|
+
ruleId: string;
|
|
2376
2283
|
};
|
|
2377
2284
|
cookie?: never;
|
|
2378
2285
|
};
|
|
2379
|
-
requestBody?:
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
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"];
|
|
2383
2772
|
"application/*+json": components["schemas"]["PublicUpdateVariationRequest"];
|
|
2384
2773
|
};
|
|
2385
2774
|
};
|
|
@@ -2448,37 +2837,819 @@ export interface paths {
|
|
|
2448
2837
|
};
|
|
2449
2838
|
post?: never;
|
|
2450
2839
|
/**
|
|
2451
|
-
* Removes a variation from the resolved flag.
|
|
2452
|
-
* @description Requires at least Member. A variation with
|
|
2453
|
-
* dependents (used as default variation, referenced by a targeting rule, or flagged
|
|
2454
|
-
* `VARIATION_HAS_DEPENDENTS`) throws the existing
|
|
2455
|
-
* ValidationException, which the
|
|
2456
|
-
* exception filter maps to a 400 `validation_failed` envelope — this action doesn't
|
|
2457
|
-
* special-case it.
|
|
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"];
|
|
3386
|
+
};
|
|
3387
|
+
};
|
|
3388
|
+
responses: {
|
|
3389
|
+
/** @description No Content */
|
|
3390
|
+
204: {
|
|
3391
|
+
headers: {
|
|
3392
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3393
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3394
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3395
|
+
[name: string]: unknown;
|
|
3396
|
+
};
|
|
3397
|
+
content?: never;
|
|
3398
|
+
};
|
|
3399
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3400
|
+
401: {
|
|
3401
|
+
headers: {
|
|
3402
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3403
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3404
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3405
|
+
[name: string]: unknown;
|
|
3406
|
+
};
|
|
3407
|
+
content: {
|
|
3408
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3409
|
+
};
|
|
3410
|
+
};
|
|
3411
|
+
/** @description Forbidden */
|
|
3412
|
+
403: {
|
|
3413
|
+
headers: {
|
|
3414
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3415
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3416
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3417
|
+
[name: string]: unknown;
|
|
3418
|
+
};
|
|
3419
|
+
content: {
|
|
3420
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3421
|
+
};
|
|
3422
|
+
};
|
|
3423
|
+
/** @description Not Found */
|
|
3424
|
+
404: {
|
|
3425
|
+
headers: {
|
|
3426
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3427
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3428
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3429
|
+
[name: string]: unknown;
|
|
3430
|
+
};
|
|
3431
|
+
content: {
|
|
3432
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3433
|
+
};
|
|
3434
|
+
};
|
|
3435
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
3436
|
+
429: {
|
|
3437
|
+
headers: {
|
|
3438
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
3439
|
+
"Retry-After"?: number;
|
|
3440
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3441
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3442
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3443
|
+
[name: string]: unknown;
|
|
3444
|
+
};
|
|
3445
|
+
content: {
|
|
3446
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3447
|
+
};
|
|
3448
|
+
};
|
|
3449
|
+
};
|
|
3450
|
+
};
|
|
3451
|
+
post?: never;
|
|
3452
|
+
/**
|
|
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.
|
|
2458
3622
|
*/
|
|
2459
|
-
|
|
3623
|
+
post: {
|
|
2460
3624
|
parameters: {
|
|
2461
3625
|
query?: never;
|
|
2462
3626
|
header?: never;
|
|
2463
3627
|
path: {
|
|
2464
3628
|
org: string;
|
|
2465
3629
|
project: string;
|
|
2466
|
-
|
|
2467
|
-
variationId: string;
|
|
3630
|
+
env: string;
|
|
2468
3631
|
};
|
|
2469
3632
|
cookie?: never;
|
|
2470
3633
|
};
|
|
2471
|
-
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
|
+
};
|
|
2472
3641
|
responses: {
|
|
2473
|
-
/** @description
|
|
2474
|
-
|
|
3642
|
+
/** @description Created */
|
|
3643
|
+
201: {
|
|
2475
3644
|
headers: {
|
|
2476
3645
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2477
3646
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2478
3647
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2479
3648
|
[name: string]: unknown;
|
|
2480
3649
|
};
|
|
2481
|
-
content
|
|
3650
|
+
content: {
|
|
3651
|
+
"application/json": components["schemas"]["PublicCreateSdkKeyResponse"];
|
|
3652
|
+
};
|
|
2482
3653
|
};
|
|
2483
3654
|
/** @description Bad Request */
|
|
2484
3655
|
400: {
|
|
@@ -2544,24 +3715,30 @@ export interface paths {
|
|
|
2544
3715
|
};
|
|
2545
3716
|
};
|
|
2546
3717
|
};
|
|
3718
|
+
delete?: never;
|
|
2547
3719
|
options?: never;
|
|
2548
3720
|
head?: never;
|
|
2549
3721
|
patch?: never;
|
|
2550
3722
|
trace?: never;
|
|
2551
3723
|
};
|
|
2552
|
-
"/api/v1/
|
|
3724
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}": {
|
|
2553
3725
|
parameters: {
|
|
2554
3726
|
query?: never;
|
|
2555
3727
|
header?: never;
|
|
2556
3728
|
path?: never;
|
|
2557
3729
|
cookie?: never;
|
|
2558
3730
|
};
|
|
2559
|
-
/**
|
|
3731
|
+
/** Gets an SDK key in the resolved environment by id (guid-only — see the type-level remarks). */
|
|
2560
3732
|
get: {
|
|
2561
3733
|
parameters: {
|
|
2562
3734
|
query?: never;
|
|
2563
3735
|
header?: never;
|
|
2564
|
-
path
|
|
3736
|
+
path: {
|
|
3737
|
+
org: string;
|
|
3738
|
+
project: string;
|
|
3739
|
+
env: string;
|
|
3740
|
+
sdkKey: string;
|
|
3741
|
+
};
|
|
2565
3742
|
cookie?: never;
|
|
2566
3743
|
};
|
|
2567
3744
|
requestBody?: never;
|
|
@@ -2575,10 +3752,10 @@ export interface paths {
|
|
|
2575
3752
|
[name: string]: unknown;
|
|
2576
3753
|
};
|
|
2577
3754
|
content: {
|
|
2578
|
-
"application/json": components["schemas"]["
|
|
3755
|
+
"application/json": components["schemas"]["PublicSdkKeyResponse"];
|
|
2579
3756
|
};
|
|
2580
3757
|
};
|
|
2581
|
-
/** @description
|
|
3758
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2582
3759
|
401: {
|
|
2583
3760
|
headers: {
|
|
2584
3761
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
@@ -2590,6 +3767,18 @@ export interface paths {
|
|
|
2590
3767
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2591
3768
|
};
|
|
2592
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
|
+
};
|
|
2593
3782
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2594
3783
|
429: {
|
|
2595
3784
|
headers: {
|
|
@@ -2606,45 +3795,39 @@ export interface paths {
|
|
|
2606
3795
|
};
|
|
2607
3796
|
};
|
|
2608
3797
|
};
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
patch?: never;
|
|
2615
|
-
trace?: never;
|
|
2616
|
-
};
|
|
2617
|
-
"/api/v1/orgs": {
|
|
2618
|
-
parameters: {
|
|
2619
|
-
query?: never;
|
|
2620
|
-
header?: never;
|
|
2621
|
-
path?: never;
|
|
2622
|
-
cookie?: never;
|
|
2623
|
-
};
|
|
2624
|
-
/** Lists the caller's organizations, cursor-paginated. */
|
|
2625
|
-
get: {
|
|
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: {
|
|
2626
3803
|
parameters: {
|
|
2627
|
-
query?:
|
|
2628
|
-
limit?: number;
|
|
2629
|
-
cursor?: string;
|
|
2630
|
-
};
|
|
3804
|
+
query?: never;
|
|
2631
3805
|
header?: never;
|
|
2632
|
-
path
|
|
3806
|
+
path: {
|
|
3807
|
+
org: string;
|
|
3808
|
+
project: string;
|
|
3809
|
+
env: string;
|
|
3810
|
+
sdkKey: string;
|
|
3811
|
+
};
|
|
2633
3812
|
cookie?: never;
|
|
2634
3813
|
};
|
|
2635
|
-
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
|
+
};
|
|
2636
3821
|
responses: {
|
|
2637
|
-
/** @description
|
|
2638
|
-
|
|
3822
|
+
/** @description No Content */
|
|
3823
|
+
204: {
|
|
2639
3824
|
headers: {
|
|
2640
3825
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2641
3826
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2642
3827
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2643
3828
|
[name: string]: unknown;
|
|
2644
3829
|
};
|
|
2645
|
-
content
|
|
2646
|
-
"application/json": components["schemas"]["OrganizationResponsePagedResult"];
|
|
2647
|
-
};
|
|
3830
|
+
content?: never;
|
|
2648
3831
|
};
|
|
2649
3832
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2650
3833
|
401: {
|
|
@@ -2658,6 +3841,30 @@ export interface paths {
|
|
|
2658
3841
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2659
3842
|
};
|
|
2660
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
|
+
};
|
|
2661
3868
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2662
3869
|
429: {
|
|
2663
3870
|
headers: {
|
|
@@ -2674,7 +3881,6 @@ export interface paths {
|
|
|
2674
3881
|
};
|
|
2675
3882
|
};
|
|
2676
3883
|
};
|
|
2677
|
-
put?: never;
|
|
2678
3884
|
post?: never;
|
|
2679
3885
|
delete?: never;
|
|
2680
3886
|
options?: never;
|
|
@@ -2682,36 +3888,42 @@ export interface paths {
|
|
|
2682
3888
|
patch?: never;
|
|
2683
3889
|
trace?: never;
|
|
2684
3890
|
};
|
|
2685
|
-
"/api/v1/orgs/{org}": {
|
|
3891
|
+
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}/revoke": {
|
|
2686
3892
|
parameters: {
|
|
2687
3893
|
query?: never;
|
|
2688
3894
|
header?: never;
|
|
2689
3895
|
path?: never;
|
|
2690
3896
|
cookie?: never;
|
|
2691
3897
|
};
|
|
2692
|
-
|
|
2693
|
-
|
|
3898
|
+
get?: never;
|
|
3899
|
+
put?: never;
|
|
3900
|
+
/**
|
|
3901
|
+
* Revokes an SDK key.
|
|
3902
|
+
* @description Requires at least Member.
|
|
3903
|
+
*/
|
|
3904
|
+
post: {
|
|
2694
3905
|
parameters: {
|
|
2695
3906
|
query?: never;
|
|
2696
3907
|
header?: never;
|
|
2697
3908
|
path: {
|
|
2698
3909
|
org: string;
|
|
3910
|
+
project: string;
|
|
3911
|
+
env: string;
|
|
3912
|
+
sdkKey: string;
|
|
2699
3913
|
};
|
|
2700
3914
|
cookie?: never;
|
|
2701
3915
|
};
|
|
2702
3916
|
requestBody?: never;
|
|
2703
3917
|
responses: {
|
|
2704
|
-
/** @description
|
|
2705
|
-
|
|
3918
|
+
/** @description No Content */
|
|
3919
|
+
204: {
|
|
2706
3920
|
headers: {
|
|
2707
3921
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2708
3922
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2709
3923
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2710
3924
|
[name: string]: unknown;
|
|
2711
3925
|
};
|
|
2712
|
-
content
|
|
2713
|
-
"application/json": components["schemas"]["OrganizationResponse"];
|
|
2714
|
-
};
|
|
3926
|
+
content?: never;
|
|
2715
3927
|
};
|
|
2716
3928
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
2717
3929
|
401: {
|
|
@@ -2725,6 +3937,18 @@ export interface paths {
|
|
|
2725
3937
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2726
3938
|
};
|
|
2727
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
|
+
};
|
|
2728
3952
|
/** @description Not Found */
|
|
2729
3953
|
404: {
|
|
2730
3954
|
headers: {
|
|
@@ -2753,22 +3977,26 @@ export interface paths {
|
|
|
2753
3977
|
};
|
|
2754
3978
|
};
|
|
2755
3979
|
};
|
|
2756
|
-
put?: never;
|
|
2757
|
-
post?: never;
|
|
2758
3980
|
delete?: never;
|
|
2759
3981
|
options?: never;
|
|
2760
3982
|
head?: never;
|
|
2761
3983
|
patch?: never;
|
|
2762
3984
|
trace?: never;
|
|
2763
3985
|
};
|
|
2764
|
-
"/api/v1/orgs/{org}/projects": {
|
|
3986
|
+
"/api/v1/orgs/{org}/projects/{project}/segments": {
|
|
2765
3987
|
parameters: {
|
|
2766
3988
|
query?: never;
|
|
2767
3989
|
header?: never;
|
|
2768
3990
|
path?: never;
|
|
2769
3991
|
cookie?: never;
|
|
2770
3992
|
};
|
|
2771
|
-
/**
|
|
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
|
+
*/
|
|
2772
4000
|
get: {
|
|
2773
4001
|
parameters: {
|
|
2774
4002
|
query?: {
|
|
@@ -2778,6 +4006,7 @@ export interface paths {
|
|
|
2778
4006
|
header?: never;
|
|
2779
4007
|
path: {
|
|
2780
4008
|
org: string;
|
|
4009
|
+
project: string;
|
|
2781
4010
|
};
|
|
2782
4011
|
cookie?: never;
|
|
2783
4012
|
};
|
|
@@ -2792,7 +4021,7 @@ export interface paths {
|
|
|
2792
4021
|
[name: string]: unknown;
|
|
2793
4022
|
};
|
|
2794
4023
|
content: {
|
|
2795
|
-
"application/json": components["schemas"]["
|
|
4024
|
+
"application/json": components["schemas"]["PublicSegmentResponsePagedResult"];
|
|
2796
4025
|
};
|
|
2797
4026
|
};
|
|
2798
4027
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2807,6 +4036,18 @@ export interface paths {
|
|
|
2807
4036
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2808
4037
|
};
|
|
2809
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
|
+
};
|
|
2810
4051
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2811
4052
|
429: {
|
|
2812
4053
|
headers: {
|
|
@@ -2825,8 +4066,12 @@ export interface paths {
|
|
|
2825
4066
|
};
|
|
2826
4067
|
put?: never;
|
|
2827
4068
|
/**
|
|
2828
|
-
* Creates a
|
|
2829
|
-
* @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).
|
|
2830
4075
|
*/
|
|
2831
4076
|
post: {
|
|
2832
4077
|
parameters: {
|
|
@@ -2834,14 +4079,15 @@ export interface paths {
|
|
|
2834
4079
|
header?: never;
|
|
2835
4080
|
path: {
|
|
2836
4081
|
org: string;
|
|
4082
|
+
project: string;
|
|
2837
4083
|
};
|
|
2838
4084
|
cookie?: never;
|
|
2839
4085
|
};
|
|
2840
4086
|
requestBody?: {
|
|
2841
4087
|
content: {
|
|
2842
|
-
"application/json": components["schemas"]["
|
|
2843
|
-
"text/json": components["schemas"]["
|
|
2844
|
-
"application/*+json": components["schemas"]["
|
|
4088
|
+
"application/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
4089
|
+
"text/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
4090
|
+
"application/*+json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
2845
4091
|
};
|
|
2846
4092
|
};
|
|
2847
4093
|
responses: {
|
|
@@ -2854,7 +4100,19 @@ export interface paths {
|
|
|
2854
4100
|
[name: string]: unknown;
|
|
2855
4101
|
};
|
|
2856
4102
|
content: {
|
|
2857
|
-
"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"];
|
|
2858
4116
|
};
|
|
2859
4117
|
};
|
|
2860
4118
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2881,6 +4139,18 @@ export interface paths {
|
|
|
2881
4139
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2882
4140
|
};
|
|
2883
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
|
+
};
|
|
2884
4154
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2885
4155
|
429: {
|
|
2886
4156
|
headers: {
|
|
@@ -2903,14 +4173,20 @@ export interface paths {
|
|
|
2903
4173
|
patch?: never;
|
|
2904
4174
|
trace?: never;
|
|
2905
4175
|
};
|
|
2906
|
-
"/api/v1/orgs/{org}/projects/{project}": {
|
|
4176
|
+
"/api/v1/orgs/{org}/projects/{project}/segments/{segment}": {
|
|
2907
4177
|
parameters: {
|
|
2908
4178
|
query?: never;
|
|
2909
4179
|
header?: never;
|
|
2910
4180
|
path?: never;
|
|
2911
4181
|
cookie?: never;
|
|
2912
4182
|
};
|
|
2913
|
-
/**
|
|
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
|
+
*/
|
|
2914
4190
|
get: {
|
|
2915
4191
|
parameters: {
|
|
2916
4192
|
query?: never;
|
|
@@ -2918,6 +4194,7 @@ export interface paths {
|
|
|
2918
4194
|
path: {
|
|
2919
4195
|
org: string;
|
|
2920
4196
|
project: string;
|
|
4197
|
+
segment: string;
|
|
2921
4198
|
};
|
|
2922
4199
|
cookie?: never;
|
|
2923
4200
|
};
|
|
@@ -2932,7 +4209,7 @@ export interface paths {
|
|
|
2932
4209
|
[name: string]: unknown;
|
|
2933
4210
|
};
|
|
2934
4211
|
content: {
|
|
2935
|
-
"application/json": components["schemas"]["
|
|
4212
|
+
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
2936
4213
|
};
|
|
2937
4214
|
};
|
|
2938
4215
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -2976,8 +4253,8 @@ export interface paths {
|
|
|
2976
4253
|
};
|
|
2977
4254
|
};
|
|
2978
4255
|
/**
|
|
2979
|
-
* Updates a
|
|
2980
|
-
* @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.
|
|
2981
4258
|
*/
|
|
2982
4259
|
put: {
|
|
2983
4260
|
parameters: {
|
|
@@ -2986,14 +4263,15 @@ export interface paths {
|
|
|
2986
4263
|
path: {
|
|
2987
4264
|
org: string;
|
|
2988
4265
|
project: string;
|
|
4266
|
+
segment: string;
|
|
2989
4267
|
};
|
|
2990
4268
|
cookie?: never;
|
|
2991
4269
|
};
|
|
2992
|
-
requestBody?: {
|
|
2993
|
-
content: {
|
|
2994
|
-
"application/json": components["schemas"]["
|
|
2995
|
-
"text/json": components["schemas"]["
|
|
2996
|
-
"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"];
|
|
2997
4275
|
};
|
|
2998
4276
|
};
|
|
2999
4277
|
responses: {
|
|
@@ -3007,6 +4285,18 @@ export interface paths {
|
|
|
3007
4285
|
};
|
|
3008
4286
|
content?: never;
|
|
3009
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
|
+
};
|
|
3010
4300
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3011
4301
|
401: {
|
|
3012
4302
|
headers: {
|
|
@@ -3061,7 +4351,7 @@ export interface paths {
|
|
|
3061
4351
|
};
|
|
3062
4352
|
post?: never;
|
|
3063
4353
|
/**
|
|
3064
|
-
* Deletes a
|
|
4354
|
+
* Deletes a user segment.
|
|
3065
4355
|
* @description Requires at least Member.
|
|
3066
4356
|
*/
|
|
3067
4357
|
delete: {
|
|
@@ -3071,6 +4361,7 @@ export interface paths {
|
|
|
3071
4361
|
path: {
|
|
3072
4362
|
org: string;
|
|
3073
4363
|
project: string;
|
|
4364
|
+
segment: string;
|
|
3074
4365
|
};
|
|
3075
4366
|
cookie?: never;
|
|
3076
4367
|
};
|
|
@@ -3143,7 +4434,7 @@ export interface paths {
|
|
|
3143
4434
|
patch?: never;
|
|
3144
4435
|
trace?: never;
|
|
3145
4436
|
};
|
|
3146
|
-
"/api/v1/orgs/{org}/
|
|
4437
|
+
"/api/v1/orgs/{org}/webhooks": {
|
|
3147
4438
|
parameters: {
|
|
3148
4439
|
query?: never;
|
|
3149
4440
|
header?: never;
|
|
@@ -3151,11 +4442,8 @@ export interface paths {
|
|
|
3151
4442
|
cookie?: never;
|
|
3152
4443
|
};
|
|
3153
4444
|
/**
|
|
3154
|
-
* Lists
|
|
3155
|
-
* @description
|
|
3156
|
-
* List, ListSdkKeysQuery has no
|
|
3157
|
-
* `Skip`/`Take` (an environment's key count is small), so this fetches the full
|
|
3158
|
-
* set and pages in-memory to still expose the standard cursor contract.
|
|
4445
|
+
* Lists the organization's webhook subscriptions, oldest first.
|
|
4446
|
+
* @description Requires Admin.
|
|
3159
4447
|
*/
|
|
3160
4448
|
get: {
|
|
3161
4449
|
parameters: {
|
|
@@ -3166,8 +4454,6 @@ export interface paths {
|
|
|
3166
4454
|
header?: never;
|
|
3167
4455
|
path: {
|
|
3168
4456
|
org: string;
|
|
3169
|
-
project: string;
|
|
3170
|
-
env: string;
|
|
3171
4457
|
};
|
|
3172
4458
|
cookie?: never;
|
|
3173
4459
|
};
|
|
@@ -3182,7 +4468,7 @@ export interface paths {
|
|
|
3182
4468
|
[name: string]: unknown;
|
|
3183
4469
|
};
|
|
3184
4470
|
content: {
|
|
3185
|
-
"application/json": components["schemas"]["
|
|
4471
|
+
"application/json": components["schemas"]["PublicWebhookSubscriptionResponsePagedResult"];
|
|
3186
4472
|
};
|
|
3187
4473
|
};
|
|
3188
4474
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3197,6 +4483,18 @@ export interface paths {
|
|
|
3197
4483
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3198
4484
|
};
|
|
3199
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
|
+
};
|
|
3200
4498
|
/** @description Not Found */
|
|
3201
4499
|
404: {
|
|
3202
4500
|
headers: {
|
|
@@ -3227,9 +4525,9 @@ export interface paths {
|
|
|
3227
4525
|
};
|
|
3228
4526
|
put?: never;
|
|
3229
4527
|
/**
|
|
3230
|
-
* Creates
|
|
3231
|
-
* @description Requires
|
|
3232
|
-
*
|
|
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.
|
|
3233
4531
|
*/
|
|
3234
4532
|
post: {
|
|
3235
4533
|
parameters: {
|
|
@@ -3237,16 +4535,14 @@ export interface paths {
|
|
|
3237
4535
|
header?: never;
|
|
3238
4536
|
path: {
|
|
3239
4537
|
org: string;
|
|
3240
|
-
project: string;
|
|
3241
|
-
env: string;
|
|
3242
4538
|
};
|
|
3243
4539
|
cookie?: never;
|
|
3244
4540
|
};
|
|
3245
4541
|
requestBody?: {
|
|
3246
4542
|
content: {
|
|
3247
|
-
"application/json": components["schemas"]["
|
|
3248
|
-
"text/json": components["schemas"]["
|
|
3249
|
-
"application/*+json": components["schemas"]["
|
|
4543
|
+
"application/json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
4544
|
+
"text/json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
4545
|
+
"application/*+json": components["schemas"]["PublicCreateWebhookSubscriptionRequest"];
|
|
3250
4546
|
};
|
|
3251
4547
|
};
|
|
3252
4548
|
responses: {
|
|
@@ -3259,7 +4555,7 @@ export interface paths {
|
|
|
3259
4555
|
[name: string]: unknown;
|
|
3260
4556
|
};
|
|
3261
4557
|
content: {
|
|
3262
|
-
"application/json": components["schemas"]["
|
|
4558
|
+
"application/json": components["schemas"]["PublicCreateWebhookSubscriptionResponse"];
|
|
3263
4559
|
};
|
|
3264
4560
|
};
|
|
3265
4561
|
/** @description Bad Request */
|
|
@@ -3332,23 +4628,23 @@ export interface paths {
|
|
|
3332
4628
|
patch?: never;
|
|
3333
4629
|
trace?: never;
|
|
3334
4630
|
};
|
|
3335
|
-
"/api/v1/orgs/{org}/
|
|
4631
|
+
"/api/v1/orgs/{org}/webhooks/event-types": {
|
|
3336
4632
|
parameters: {
|
|
3337
4633
|
query?: never;
|
|
3338
4634
|
header?: never;
|
|
3339
4635
|
path?: never;
|
|
3340
4636
|
cookie?: never;
|
|
3341
4637
|
};
|
|
3342
|
-
/**
|
|
4638
|
+
/**
|
|
4639
|
+
* Lists the event types a subscription can filter on.
|
|
4640
|
+
* @description Requires Admin.
|
|
4641
|
+
*/
|
|
3343
4642
|
get: {
|
|
3344
4643
|
parameters: {
|
|
3345
4644
|
query?: never;
|
|
3346
4645
|
header?: never;
|
|
3347
4646
|
path: {
|
|
3348
4647
|
org: string;
|
|
3349
|
-
project: string;
|
|
3350
|
-
env: string;
|
|
3351
|
-
sdkKey: string;
|
|
3352
4648
|
};
|
|
3353
4649
|
cookie?: never;
|
|
3354
4650
|
};
|
|
@@ -3363,7 +4659,7 @@ export interface paths {
|
|
|
3363
4659
|
[name: string]: unknown;
|
|
3364
4660
|
};
|
|
3365
4661
|
content: {
|
|
3366
|
-
"application/json":
|
|
4662
|
+
"application/json": string[];
|
|
3367
4663
|
};
|
|
3368
4664
|
};
|
|
3369
4665
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3378,6 +4674,18 @@ export interface paths {
|
|
|
3378
4674
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3379
4675
|
};
|
|
3380
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
|
+
};
|
|
3381
4689
|
/** @description Not Found */
|
|
3382
4690
|
404: {
|
|
3383
4691
|
headers: {
|
|
@@ -3406,9 +4714,105 @@ export interface paths {
|
|
|
3406
4714
|
};
|
|
3407
4715
|
};
|
|
3408
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
|
+
};
|
|
3409
4732
|
/**
|
|
3410
|
-
*
|
|
3411
|
-
* @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".
|
|
3412
4816
|
*/
|
|
3413
4817
|
put: {
|
|
3414
4818
|
parameters: {
|
|
@@ -3416,17 +4820,15 @@ export interface paths {
|
|
|
3416
4820
|
header?: never;
|
|
3417
4821
|
path: {
|
|
3418
4822
|
org: string;
|
|
3419
|
-
|
|
3420
|
-
env: string;
|
|
3421
|
-
sdkKey: string;
|
|
4823
|
+
id: string;
|
|
3422
4824
|
};
|
|
3423
4825
|
cookie?: never;
|
|
3424
4826
|
};
|
|
3425
4827
|
requestBody?: {
|
|
3426
4828
|
content: {
|
|
3427
|
-
"application/json": components["schemas"]["
|
|
3428
|
-
"text/json": components["schemas"]["
|
|
3429
|
-
"application/*+json": components["schemas"]["
|
|
4829
|
+
"application/json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
4830
|
+
"text/json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
4831
|
+
"application/*+json": components["schemas"]["PublicUpdateWebhookSubscriptionRequest"];
|
|
3430
4832
|
};
|
|
3431
4833
|
};
|
|
3432
4834
|
responses: {
|
|
@@ -3440,6 +4842,18 @@ export interface paths {
|
|
|
3440
4842
|
};
|
|
3441
4843
|
content?: never;
|
|
3442
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
|
+
};
|
|
3443
4857
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3444
4858
|
401: {
|
|
3445
4859
|
headers: {
|
|
@@ -3493,34 +4907,17 @@ export interface paths {
|
|
|
3493
4907
|
};
|
|
3494
4908
|
};
|
|
3495
4909
|
post?: never;
|
|
3496
|
-
delete?: never;
|
|
3497
|
-
options?: never;
|
|
3498
|
-
head?: never;
|
|
3499
|
-
patch?: never;
|
|
3500
|
-
trace?: never;
|
|
3501
|
-
};
|
|
3502
|
-
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys/{sdkKey}/revoke": {
|
|
3503
|
-
parameters: {
|
|
3504
|
-
query?: never;
|
|
3505
|
-
header?: never;
|
|
3506
|
-
path?: never;
|
|
3507
|
-
cookie?: never;
|
|
3508
|
-
};
|
|
3509
|
-
get?: never;
|
|
3510
|
-
put?: never;
|
|
3511
4910
|
/**
|
|
3512
|
-
*
|
|
3513
|
-
* @description Requires
|
|
4911
|
+
* Deletes a webhook subscription with its secrets and delivery log.
|
|
4912
|
+
* @description Requires Admin.
|
|
3514
4913
|
*/
|
|
3515
|
-
|
|
4914
|
+
delete: {
|
|
3516
4915
|
parameters: {
|
|
3517
4916
|
query?: never;
|
|
3518
4917
|
header?: never;
|
|
3519
4918
|
path: {
|
|
3520
4919
|
org: string;
|
|
3521
|
-
|
|
3522
|
-
env: string;
|
|
3523
|
-
sdkKey: string;
|
|
4920
|
+
id: string;
|
|
3524
4921
|
};
|
|
3525
4922
|
cookie?: never;
|
|
3526
4923
|
};
|
|
@@ -3588,43 +4985,41 @@ export interface paths {
|
|
|
3588
4985
|
};
|
|
3589
4986
|
};
|
|
3590
4987
|
};
|
|
3591
|
-
delete?: never;
|
|
3592
4988
|
options?: never;
|
|
3593
4989
|
head?: never;
|
|
3594
4990
|
patch?: never;
|
|
3595
4991
|
trace?: never;
|
|
3596
4992
|
};
|
|
3597
|
-
"/api/v1/orgs/{org}/
|
|
4993
|
+
"/api/v1/orgs/{org}/webhooks/{id}/secrets": {
|
|
3598
4994
|
parameters: {
|
|
3599
4995
|
query?: never;
|
|
3600
4996
|
header?: never;
|
|
3601
4997
|
path?: never;
|
|
3602
4998
|
cookie?: never;
|
|
3603
4999
|
};
|
|
5000
|
+
get?: never;
|
|
5001
|
+
put?: never;
|
|
3604
5002
|
/**
|
|
3605
|
-
*
|
|
3606
|
-
* @description
|
|
3607
|
-
*
|
|
3608
|
-
*
|
|
3609
|
-
*
|
|
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.
|
|
3610
5008
|
*/
|
|
3611
|
-
|
|
5009
|
+
post: {
|
|
3612
5010
|
parameters: {
|
|
3613
|
-
query?:
|
|
3614
|
-
limit?: number;
|
|
3615
|
-
cursor?: string;
|
|
3616
|
-
};
|
|
5011
|
+
query?: never;
|
|
3617
5012
|
header?: never;
|
|
3618
5013
|
path: {
|
|
3619
5014
|
org: string;
|
|
3620
|
-
|
|
5015
|
+
id: string;
|
|
3621
5016
|
};
|
|
3622
5017
|
cookie?: never;
|
|
3623
5018
|
};
|
|
3624
5019
|
requestBody?: never;
|
|
3625
5020
|
responses: {
|
|
3626
|
-
/** @description
|
|
3627
|
-
|
|
5021
|
+
/** @description Created */
|
|
5022
|
+
201: {
|
|
3628
5023
|
headers: {
|
|
3629
5024
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3630
5025
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3632,7 +5027,7 @@ export interface paths {
|
|
|
3632
5027
|
[name: string]: unknown;
|
|
3633
5028
|
};
|
|
3634
5029
|
content: {
|
|
3635
|
-
"application/json": components["schemas"]["
|
|
5030
|
+
"application/json": components["schemas"]["PublicRotateWebhookSecretResponse"];
|
|
3636
5031
|
};
|
|
3637
5032
|
};
|
|
3638
5033
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3647,6 +5042,18 @@ export interface paths {
|
|
|
3647
5042
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3648
5043
|
};
|
|
3649
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
|
+
};
|
|
3650
5057
|
/** @description Not Found */
|
|
3651
5058
|
404: {
|
|
3652
5059
|
headers: {
|
|
@@ -3675,44 +5082,49 @@ export interface paths {
|
|
|
3675
5082
|
};
|
|
3676
5083
|
};
|
|
3677
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;
|
|
3678
5099
|
put?: never;
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
*
|
|
3682
|
-
*
|
|
3683
|
-
*
|
|
3684
|
-
* reflects exactly what was persisted (e.g. server-assigned condition ids, folded into the
|
|
3685
|
-
* 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.
|
|
3686
5105
|
*/
|
|
3687
|
-
|
|
5106
|
+
delete: {
|
|
3688
5107
|
parameters: {
|
|
3689
5108
|
query?: never;
|
|
3690
5109
|
header?: never;
|
|
3691
5110
|
path: {
|
|
3692
5111
|
org: string;
|
|
3693
|
-
|
|
5112
|
+
id: string;
|
|
5113
|
+
secretId: string;
|
|
3694
5114
|
};
|
|
3695
5115
|
cookie?: never;
|
|
3696
5116
|
};
|
|
3697
|
-
requestBody?:
|
|
3698
|
-
content: {
|
|
3699
|
-
"application/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3700
|
-
"text/json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3701
|
-
"application/*+json": components["schemas"]["PublicCreateSegmentRequest"];
|
|
3702
|
-
};
|
|
3703
|
-
};
|
|
5117
|
+
requestBody?: never;
|
|
3704
5118
|
responses: {
|
|
3705
|
-
/** @description
|
|
3706
|
-
|
|
5119
|
+
/** @description No Content */
|
|
5120
|
+
204: {
|
|
3707
5121
|
headers: {
|
|
3708
5122
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3709
5123
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3710
5124
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3711
5125
|
[name: string]: unknown;
|
|
3712
5126
|
};
|
|
3713
|
-
content
|
|
3714
|
-
"application/json": components["schemas"]["PublicSegmentResponse"];
|
|
3715
|
-
};
|
|
5127
|
+
content?: never;
|
|
3716
5128
|
};
|
|
3717
5129
|
/** @description Bad Request */
|
|
3718
5130
|
400: {
|
|
@@ -3778,41 +5190,40 @@ export interface paths {
|
|
|
3778
5190
|
};
|
|
3779
5191
|
};
|
|
3780
5192
|
};
|
|
3781
|
-
delete?: never;
|
|
3782
5193
|
options?: never;
|
|
3783
5194
|
head?: never;
|
|
3784
5195
|
patch?: never;
|
|
3785
5196
|
trace?: never;
|
|
3786
5197
|
};
|
|
3787
|
-
"/api/v1/orgs/{org}/
|
|
5198
|
+
"/api/v1/orgs/{org}/webhooks/{id}/test": {
|
|
3788
5199
|
parameters: {
|
|
3789
5200
|
query?: never;
|
|
3790
5201
|
header?: never;
|
|
3791
5202
|
path?: never;
|
|
3792
5203
|
cookie?: never;
|
|
3793
5204
|
};
|
|
5205
|
+
get?: never;
|
|
5206
|
+
put?: never;
|
|
3794
5207
|
/**
|
|
3795
|
-
*
|
|
3796
|
-
* @description
|
|
3797
|
-
*
|
|
3798
|
-
*
|
|
3799
|
-
* 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.
|
|
3800
5212
|
*/
|
|
3801
|
-
|
|
5213
|
+
post: {
|
|
3802
5214
|
parameters: {
|
|
3803
5215
|
query?: never;
|
|
3804
5216
|
header?: never;
|
|
3805
5217
|
path: {
|
|
3806
5218
|
org: string;
|
|
3807
|
-
|
|
3808
|
-
segment: string;
|
|
5219
|
+
id: string;
|
|
3809
5220
|
};
|
|
3810
5221
|
cookie?: never;
|
|
3811
5222
|
};
|
|
3812
5223
|
requestBody?: never;
|
|
3813
5224
|
responses: {
|
|
3814
|
-
/** @description
|
|
3815
|
-
|
|
5225
|
+
/** @description Accepted */
|
|
5226
|
+
202: {
|
|
3816
5227
|
headers: {
|
|
3817
5228
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3818
5229
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3820,7 +5231,19 @@ export interface paths {
|
|
|
3820
5231
|
[name: string]: unknown;
|
|
3821
5232
|
};
|
|
3822
5233
|
content: {
|
|
3823
|
-
"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"];
|
|
3824
5247
|
};
|
|
3825
5248
|
};
|
|
3826
5249
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3835,6 +5258,18 @@ export interface paths {
|
|
|
3835
5258
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
3836
5259
|
};
|
|
3837
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
|
+
};
|
|
3838
5273
|
/** @description Not Found */
|
|
3839
5274
|
404: {
|
|
3840
5275
|
headers: {
|
|
@@ -3863,41 +5298,40 @@ export interface paths {
|
|
|
3863
5298
|
};
|
|
3864
5299
|
};
|
|
3865
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
|
+
};
|
|
3866
5314
|
/**
|
|
3867
|
-
*
|
|
3868
|
-
* @description Requires
|
|
5315
|
+
* Lists a subscription's delivery attempts, most recent first.
|
|
5316
|
+
* @description Requires Admin.
|
|
3869
5317
|
*/
|
|
3870
|
-
|
|
5318
|
+
get: {
|
|
3871
5319
|
parameters: {
|
|
3872
|
-
query?:
|
|
5320
|
+
query?: {
|
|
5321
|
+
limit?: number;
|
|
5322
|
+
cursor?: string;
|
|
5323
|
+
};
|
|
3873
5324
|
header?: never;
|
|
3874
5325
|
path: {
|
|
3875
5326
|
org: string;
|
|
3876
|
-
|
|
3877
|
-
segment: string;
|
|
5327
|
+
id: string;
|
|
3878
5328
|
};
|
|
3879
5329
|
cookie?: never;
|
|
3880
5330
|
};
|
|
3881
|
-
requestBody?:
|
|
3882
|
-
content: {
|
|
3883
|
-
"application/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3884
|
-
"text/json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3885
|
-
"application/*+json": components["schemas"]["PublicUpdateSegmentRequest"];
|
|
3886
|
-
};
|
|
3887
|
-
};
|
|
5331
|
+
requestBody?: never;
|
|
3888
5332
|
responses: {
|
|
3889
|
-
/** @description
|
|
3890
|
-
|
|
3891
|
-
headers: {
|
|
3892
|
-
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3893
|
-
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
3894
|
-
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
3895
|
-
[name: string]: unknown;
|
|
3896
|
-
};
|
|
3897
|
-
content?: never;
|
|
3898
|
-
};
|
|
3899
|
-
/** @description Bad Request */
|
|
3900
|
-
400: {
|
|
5333
|
+
/** @description OK */
|
|
5334
|
+
200: {
|
|
3901
5335
|
headers: {
|
|
3902
5336
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
3903
5337
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
@@ -3905,7 +5339,7 @@ export interface paths {
|
|
|
3905
5339
|
[name: string]: unknown;
|
|
3906
5340
|
};
|
|
3907
5341
|
content: {
|
|
3908
|
-
"application/json": components["schemas"]["
|
|
5342
|
+
"application/json": components["schemas"]["PublicWebhookDeliveryResponsePagedResult"];
|
|
3909
5343
|
};
|
|
3910
5344
|
};
|
|
3911
5345
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
@@ -3960,19 +5394,37 @@ export interface paths {
|
|
|
3960
5394
|
};
|
|
3961
5395
|
};
|
|
3962
5396
|
};
|
|
5397
|
+
put?: never;
|
|
3963
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;
|
|
3964
5414
|
/**
|
|
3965
|
-
*
|
|
3966
|
-
* @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.
|
|
3967
5419
|
*/
|
|
3968
|
-
|
|
5420
|
+
post: {
|
|
3969
5421
|
parameters: {
|
|
3970
5422
|
query?: never;
|
|
3971
5423
|
header?: never;
|
|
3972
5424
|
path: {
|
|
3973
5425
|
org: string;
|
|
3974
|
-
|
|
3975
|
-
|
|
5426
|
+
id: string;
|
|
5427
|
+
deliveryId: string;
|
|
3976
5428
|
};
|
|
3977
5429
|
cookie?: never;
|
|
3978
5430
|
};
|
|
@@ -3988,6 +5440,18 @@ export interface paths {
|
|
|
3988
5440
|
};
|
|
3989
5441
|
content?: never;
|
|
3990
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
|
+
};
|
|
3991
5455
|
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
3992
5456
|
401: {
|
|
3993
5457
|
headers: {
|
|
@@ -4040,6 +5504,7 @@ export interface paths {
|
|
|
4040
5504
|
};
|
|
4041
5505
|
};
|
|
4042
5506
|
};
|
|
5507
|
+
delete?: never;
|
|
4043
5508
|
options?: never;
|
|
4044
5509
|
head?: never;
|
|
4045
5510
|
patch?: never;
|
|
@@ -4290,7 +5755,12 @@ export interface components {
|
|
|
4290
5755
|
* schemaId-collision rationale (both controllers share one Swagger document). Type
|
|
4291
5756
|
* is passed through verbatim to Type, which itself takes a
|
|
4292
5757
|
* bare string (Boolean/String/Number/Json) rather than the domain enum — invalid values surface
|
|
4293
|
-
* as the handler's own validation failure, not a controller-level 400.
|
|
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.
|
|
4294
5764
|
* @example {
|
|
4295
5765
|
* "key": "new-checkout-flow",
|
|
4296
5766
|
* "name": "New Checkout Flow",
|
|
@@ -4329,6 +5799,9 @@ export interface components {
|
|
|
4329
5799
|
tags?: string[] | null;
|
|
4330
5800
|
initialVariations?: components["schemas"]["PublicCreateVariationDto"][] | null;
|
|
4331
5801
|
clientSideVisible?: boolean;
|
|
5802
|
+
/** Format: date-time */
|
|
5803
|
+
expiresAtUtc?: string | null;
|
|
5804
|
+
ownerEmail?: string | null;
|
|
4332
5805
|
};
|
|
4333
5806
|
/**
|
|
4334
5807
|
* @description Request body for `POST /api/v1/orgs/{org}/projects`. Named distinctly from the
|
|
@@ -4479,6 +5952,53 @@ export interface components {
|
|
|
4479
5952
|
value?: string | null;
|
|
4480
5953
|
description?: string | null;
|
|
4481
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
|
+
};
|
|
4482
6002
|
/**
|
|
4483
6003
|
* @description Public representation of an environment, returned by
|
|
4484
6004
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments` (list),
|
|
@@ -4588,6 +6108,9 @@ export interface components {
|
|
|
4588
6108
|
createdAt?: string;
|
|
4589
6109
|
/** Format: date-time */
|
|
4590
6110
|
updatedAt?: string;
|
|
6111
|
+
/** Format: date-time */
|
|
6112
|
+
expiresAtUtc?: string | null;
|
|
6113
|
+
owner?: components["schemas"]["PublicFlagOwner"];
|
|
4591
6114
|
};
|
|
4592
6115
|
/**
|
|
4593
6116
|
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
@@ -4621,6 +6144,13 @@ export interface components {
|
|
|
4621
6144
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4622
6145
|
};
|
|
4623
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
|
+
};
|
|
4624
6154
|
/**
|
|
4625
6155
|
* @description One dead flag the Featureflip Flag Cleanup Action should remove, returned by
|
|
4626
6156
|
* `GET .../flags/removal-candidates`. `Treatment` is the kill decision: true → keep the
|
|
@@ -4701,6 +6231,9 @@ export interface components {
|
|
|
4701
6231
|
createdAt?: string;
|
|
4702
6232
|
/** Format: date-time */
|
|
4703
6233
|
updatedAt?: string;
|
|
6234
|
+
/** Format: date-time */
|
|
6235
|
+
expiresAtUtc?: string | null;
|
|
6236
|
+
owner?: components["schemas"]["PublicFlagOwner"];
|
|
4704
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. */
|
|
4705
6238
|
_actions?: {
|
|
4706
6239
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -4738,6 +6271,13 @@ export interface components {
|
|
|
4738
6271
|
PublicReorderRulesRequest: {
|
|
4739
6272
|
ruleIds?: string[] | null;
|
|
4740
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
|
+
};
|
|
4741
6281
|
/**
|
|
4742
6282
|
* @description Public representation of an SDK key, returned by
|
|
4743
6283
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys` (list) and
|
|
@@ -4862,6 +6402,25 @@ export interface components {
|
|
|
4862
6402
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4863
6403
|
};
|
|
4864
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
|
+
};
|
|
4865
6424
|
/**
|
|
4866
6425
|
* @description The full targeting configuration for a flag in a single environment, returned by
|
|
4867
6426
|
* `GET .../targeting`. Maps 1:1 onto TargetingConfigurationDto — including
|
|
@@ -4925,6 +6484,13 @@ export interface components {
|
|
|
4925
6484
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
4926
6485
|
};
|
|
4927
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
|
+
};
|
|
4928
6494
|
/**
|
|
4929
6495
|
* @description Request body for `POST .../flags/{flag}/environments/{env}/toggle`. Named distinctly from
|
|
4930
6496
|
* the dashboard's own `ToggleFlagInEnvironmentRequest`
|
|
@@ -5049,6 +6615,18 @@ export interface components {
|
|
|
5049
6615
|
value?: string | null;
|
|
5050
6616
|
description?: string | null;
|
|
5051
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
|
+
};
|
|
5052
6630
|
/**
|
|
5053
6631
|
* @description A single variation on a flag, as returned in Variations.
|
|
5054
6632
|
* @example {
|
|
@@ -5071,6 +6649,121 @@ export interface components {
|
|
|
5071
6649
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
5072
6650
|
};
|
|
5073
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
|
+
};
|
|
5074
6767
|
};
|
|
5075
6768
|
responses: never;
|
|
5076
6769
|
parameters: never;
|