@featureflip/mcp 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/generated/api-types.d.ts +386 -7
- package/dist/generated/api-types.d.ts.map +1 -1
- package/dist/generated/output-schemas.json.d.ts +2964 -0
- package/dist/index.mjs +1 -2
- package/dist/org-D-y_4-WG.js +1357 -0
- package/dist/tools/environments.d.ts.map +1 -1
- package/dist/tools/flag-environments.d.ts.map +1 -1
- package/dist/tools/flags.d.ts.map +1 -1
- package/dist/tools/outputs.d.ts +18 -0
- package/dist/tools/outputs.d.ts.map +1 -0
- package/dist/tools/params.d.ts +9 -0
- package/dist/tools/params.d.ts.map +1 -0
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/segments.d.ts.map +1 -1
- package/dist/tools/targeting.d.ts.map +1 -1
- package/dist/tools/variations.d.ts.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/workflows/stale-flags.d.ts.map +1 -1
- package/dist/tools/workflows/wrap-feature.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/org-c4iWMSzU.js +0 -1033
package/dist/cli.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, s as i, t as a } from "./org-
|
|
1
|
+
import { a as e, i as t, n, o as r, s as i, t as a } from "./org-D-y_4-WG.js";
|
|
2
2
|
import { serveStdio as o } from "@modelcontextprotocol/server/stdio";
|
|
3
3
|
//#region src/unconfigured.ts
|
|
4
4
|
var s = class extends i {
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAOhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAqBpD;AAED,wBAAsB,GAAG,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAM5E"}
|
|
@@ -195,6 +195,8 @@ export interface paths {
|
|
|
195
195
|
/** @description OK */
|
|
196
196
|
200: {
|
|
197
197
|
headers: {
|
|
198
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
199
|
+
ETag?: string;
|
|
198
200
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
199
201
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
200
202
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -251,7 +253,10 @@ export interface paths {
|
|
|
251
253
|
put: {
|
|
252
254
|
parameters: {
|
|
253
255
|
query?: never;
|
|
254
|
-
header?:
|
|
256
|
+
header?: {
|
|
257
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
258
|
+
"If-Match"?: string;
|
|
259
|
+
};
|
|
255
260
|
path: {
|
|
256
261
|
org: string;
|
|
257
262
|
project: string;
|
|
@@ -270,6 +275,8 @@ export interface paths {
|
|
|
270
275
|
/** @description No Content */
|
|
271
276
|
204: {
|
|
272
277
|
headers: {
|
|
278
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
279
|
+
ETag?: string;
|
|
273
280
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
274
281
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
275
282
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -313,6 +320,18 @@ export interface paths {
|
|
|
313
320
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
314
321
|
};
|
|
315
322
|
};
|
|
323
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
324
|
+
412: {
|
|
325
|
+
headers: {
|
|
326
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
327
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
328
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
329
|
+
[name: string]: unknown;
|
|
330
|
+
};
|
|
331
|
+
content: {
|
|
332
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
333
|
+
};
|
|
334
|
+
};
|
|
316
335
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
317
336
|
429: {
|
|
318
337
|
headers: {
|
|
@@ -752,6 +771,8 @@ export interface paths {
|
|
|
752
771
|
/** @description OK */
|
|
753
772
|
200: {
|
|
754
773
|
headers: {
|
|
774
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
775
|
+
ETag?: string;
|
|
755
776
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
756
777
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
757
778
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -810,7 +831,10 @@ export interface paths {
|
|
|
810
831
|
put: {
|
|
811
832
|
parameters: {
|
|
812
833
|
query?: never;
|
|
813
|
-
header?:
|
|
834
|
+
header?: {
|
|
835
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
836
|
+
"If-Match"?: string;
|
|
837
|
+
};
|
|
814
838
|
path: {
|
|
815
839
|
org: string;
|
|
816
840
|
project: string;
|
|
@@ -829,6 +853,8 @@ export interface paths {
|
|
|
829
853
|
/** @description No Content */
|
|
830
854
|
204: {
|
|
831
855
|
headers: {
|
|
856
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
857
|
+
ETag?: string;
|
|
832
858
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
833
859
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
834
860
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -872,6 +898,18 @@ export interface paths {
|
|
|
872
898
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
873
899
|
};
|
|
874
900
|
};
|
|
901
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
902
|
+
412: {
|
|
903
|
+
headers: {
|
|
904
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
905
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
906
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
907
|
+
[name: string]: unknown;
|
|
908
|
+
};
|
|
909
|
+
content: {
|
|
910
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
911
|
+
};
|
|
912
|
+
};
|
|
875
913
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
876
914
|
429: {
|
|
877
915
|
headers: {
|
|
@@ -2075,6 +2113,8 @@ export interface paths {
|
|
|
2075
2113
|
/** @description OK */
|
|
2076
2114
|
200: {
|
|
2077
2115
|
headers: {
|
|
2116
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
2117
|
+
ETag?: string;
|
|
2078
2118
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2079
2119
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2080
2120
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -2133,7 +2173,10 @@ export interface paths {
|
|
|
2133
2173
|
put: {
|
|
2134
2174
|
parameters: {
|
|
2135
2175
|
query?: never;
|
|
2136
|
-
header?:
|
|
2176
|
+
header?: {
|
|
2177
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
2178
|
+
"If-Match"?: string;
|
|
2179
|
+
};
|
|
2137
2180
|
path: {
|
|
2138
2181
|
org: string;
|
|
2139
2182
|
project: string;
|
|
@@ -2153,6 +2196,8 @@ export interface paths {
|
|
|
2153
2196
|
/** @description No Content */
|
|
2154
2197
|
204: {
|
|
2155
2198
|
headers: {
|
|
2199
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
2200
|
+
ETag?: string;
|
|
2156
2201
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2157
2202
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2158
2203
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -2208,6 +2253,18 @@ export interface paths {
|
|
|
2208
2253
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2209
2254
|
};
|
|
2210
2255
|
};
|
|
2256
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
2257
|
+
412: {
|
|
2258
|
+
headers: {
|
|
2259
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2260
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2261
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2262
|
+
[name: string]: unknown;
|
|
2263
|
+
};
|
|
2264
|
+
content: {
|
|
2265
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2266
|
+
};
|
|
2267
|
+
};
|
|
2211
2268
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2212
2269
|
429: {
|
|
2213
2270
|
headers: {
|
|
@@ -2375,6 +2432,8 @@ export interface paths {
|
|
|
2375
2432
|
/** @description OK */
|
|
2376
2433
|
200: {
|
|
2377
2434
|
headers: {
|
|
2435
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
2436
|
+
ETag?: string;
|
|
2378
2437
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2379
2438
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2380
2439
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -2433,7 +2492,10 @@ export interface paths {
|
|
|
2433
2492
|
put: {
|
|
2434
2493
|
parameters: {
|
|
2435
2494
|
query?: never;
|
|
2436
|
-
header?:
|
|
2495
|
+
header?: {
|
|
2496
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
2497
|
+
"If-Match"?: string;
|
|
2498
|
+
};
|
|
2437
2499
|
path: {
|
|
2438
2500
|
org: string;
|
|
2439
2501
|
project: string;
|
|
@@ -2453,6 +2515,8 @@ export interface paths {
|
|
|
2453
2515
|
/** @description No Content */
|
|
2454
2516
|
204: {
|
|
2455
2517
|
headers: {
|
|
2518
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
2519
|
+
ETag?: string;
|
|
2456
2520
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2457
2521
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2458
2522
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -2508,6 +2572,18 @@ export interface paths {
|
|
|
2508
2572
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2509
2573
|
};
|
|
2510
2574
|
};
|
|
2575
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
2576
|
+
412: {
|
|
2577
|
+
headers: {
|
|
2578
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2579
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2580
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2581
|
+
[name: string]: unknown;
|
|
2582
|
+
};
|
|
2583
|
+
content: {
|
|
2584
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2585
|
+
};
|
|
2586
|
+
};
|
|
2511
2587
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2512
2588
|
429: {
|
|
2513
2589
|
headers: {
|
|
@@ -2675,6 +2751,8 @@ export interface paths {
|
|
|
2675
2751
|
/** @description OK */
|
|
2676
2752
|
200: {
|
|
2677
2753
|
headers: {
|
|
2754
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
2755
|
+
ETag?: string;
|
|
2678
2756
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2679
2757
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2680
2758
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -2731,7 +2809,10 @@ export interface paths {
|
|
|
2731
2809
|
put: {
|
|
2732
2810
|
parameters: {
|
|
2733
2811
|
query?: never;
|
|
2734
|
-
header?:
|
|
2812
|
+
header?: {
|
|
2813
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
2814
|
+
"If-Match"?: string;
|
|
2815
|
+
};
|
|
2735
2816
|
path: {
|
|
2736
2817
|
org: string;
|
|
2737
2818
|
project: string;
|
|
@@ -2752,6 +2833,8 @@ export interface paths {
|
|
|
2752
2833
|
/** @description No Content */
|
|
2753
2834
|
204: {
|
|
2754
2835
|
headers: {
|
|
2836
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
2837
|
+
ETag?: string;
|
|
2755
2838
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2756
2839
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2757
2840
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -2807,6 +2890,18 @@ export interface paths {
|
|
|
2807
2890
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2808
2891
|
};
|
|
2809
2892
|
};
|
|
2893
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
2894
|
+
412: {
|
|
2895
|
+
headers: {
|
|
2896
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
2897
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
2898
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
2899
|
+
[name: string]: unknown;
|
|
2900
|
+
};
|
|
2901
|
+
content: {
|
|
2902
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
2903
|
+
};
|
|
2904
|
+
};
|
|
2810
2905
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
2811
2906
|
429: {
|
|
2812
2907
|
headers: {
|
|
@@ -3919,6 +4014,219 @@ export interface paths {
|
|
|
3919
4014
|
patch?: never;
|
|
3920
4015
|
trace?: never;
|
|
3921
4016
|
};
|
|
4017
|
+
"/api/v1/orgs/{org}/projects/{project}/default-flag-lifetime": {
|
|
4018
|
+
parameters: {
|
|
4019
|
+
query?: never;
|
|
4020
|
+
header?: never;
|
|
4021
|
+
path?: never;
|
|
4022
|
+
cookie?: never;
|
|
4023
|
+
};
|
|
4024
|
+
get?: never;
|
|
4025
|
+
/**
|
|
4026
|
+
* Sets or removes the project's default flag lifetime, in days (1–3650; null removes it).
|
|
4027
|
+
* @description Temporary
|
|
4028
|
+
* flags with no expiry date of their own then expire that many days after they were created, reported
|
|
4029
|
+
* as `expirySource: "project-default"`. Takes effect at the next hourly staleness run. Requires at
|
|
4030
|
+
* least Member, and the default-flag-lifetime feature to set one (400 `FEATURE_NOT_ENABLED`);
|
|
4031
|
+
* removing one is always allowed.
|
|
4032
|
+
*/
|
|
4033
|
+
put: {
|
|
4034
|
+
parameters: {
|
|
4035
|
+
query?: never;
|
|
4036
|
+
header?: never;
|
|
4037
|
+
path: {
|
|
4038
|
+
org: string;
|
|
4039
|
+
project: string;
|
|
4040
|
+
};
|
|
4041
|
+
cookie?: never;
|
|
4042
|
+
};
|
|
4043
|
+
requestBody?: {
|
|
4044
|
+
content: {
|
|
4045
|
+
"application/json": components["schemas"]["PublicSetDefaultFlagLifetimeRequest"];
|
|
4046
|
+
"text/json": components["schemas"]["PublicSetDefaultFlagLifetimeRequest"];
|
|
4047
|
+
"application/*+json": components["schemas"]["PublicSetDefaultFlagLifetimeRequest"];
|
|
4048
|
+
};
|
|
4049
|
+
};
|
|
4050
|
+
responses: {
|
|
4051
|
+
/** @description No Content */
|
|
4052
|
+
204: {
|
|
4053
|
+
headers: {
|
|
4054
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4055
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4056
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4057
|
+
[name: string]: unknown;
|
|
4058
|
+
};
|
|
4059
|
+
content?: never;
|
|
4060
|
+
};
|
|
4061
|
+
/** @description Bad Request */
|
|
4062
|
+
400: {
|
|
4063
|
+
headers: {
|
|
4064
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4065
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4066
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4067
|
+
[name: string]: unknown;
|
|
4068
|
+
};
|
|
4069
|
+
content: {
|
|
4070
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4071
|
+
};
|
|
4072
|
+
};
|
|
4073
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
4074
|
+
401: {
|
|
4075
|
+
headers: {
|
|
4076
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4077
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4078
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4079
|
+
[name: string]: unknown;
|
|
4080
|
+
};
|
|
4081
|
+
content: {
|
|
4082
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4083
|
+
};
|
|
4084
|
+
};
|
|
4085
|
+
/** @description Forbidden */
|
|
4086
|
+
403: {
|
|
4087
|
+
headers: {
|
|
4088
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4089
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4090
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4091
|
+
[name: string]: unknown;
|
|
4092
|
+
};
|
|
4093
|
+
content: {
|
|
4094
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4095
|
+
};
|
|
4096
|
+
};
|
|
4097
|
+
/** @description Not Found */
|
|
4098
|
+
404: {
|
|
4099
|
+
headers: {
|
|
4100
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4101
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4102
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4103
|
+
[name: string]: unknown;
|
|
4104
|
+
};
|
|
4105
|
+
content: {
|
|
4106
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4107
|
+
};
|
|
4108
|
+
};
|
|
4109
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4110
|
+
429: {
|
|
4111
|
+
headers: {
|
|
4112
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
4113
|
+
"Retry-After"?: number;
|
|
4114
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4115
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4116
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4117
|
+
[name: string]: unknown;
|
|
4118
|
+
};
|
|
4119
|
+
content: {
|
|
4120
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4121
|
+
};
|
|
4122
|
+
};
|
|
4123
|
+
};
|
|
4124
|
+
};
|
|
4125
|
+
post?: never;
|
|
4126
|
+
delete?: never;
|
|
4127
|
+
options?: never;
|
|
4128
|
+
head?: never;
|
|
4129
|
+
patch?: never;
|
|
4130
|
+
trace?: never;
|
|
4131
|
+
};
|
|
4132
|
+
"/api/v1/orgs/{org}/projects/{project}/default-flag-lifetime/impact": {
|
|
4133
|
+
parameters: {
|
|
4134
|
+
query?: never;
|
|
4135
|
+
header?: never;
|
|
4136
|
+
path?: never;
|
|
4137
|
+
cookie?: never;
|
|
4138
|
+
};
|
|
4139
|
+
/**
|
|
4140
|
+
* Previews a default flag lifetime: how many temporary flags with no expiry date of their own would newly be past expiry, and how many would stop being past the current one.
|
|
4141
|
+
* @description Omit `days` to
|
|
4142
|
+
* preview removing it.
|
|
4143
|
+
*/
|
|
4144
|
+
get: {
|
|
4145
|
+
parameters: {
|
|
4146
|
+
query?: {
|
|
4147
|
+
days?: number;
|
|
4148
|
+
};
|
|
4149
|
+
header?: never;
|
|
4150
|
+
path: {
|
|
4151
|
+
org: string;
|
|
4152
|
+
project: string;
|
|
4153
|
+
};
|
|
4154
|
+
cookie?: never;
|
|
4155
|
+
};
|
|
4156
|
+
requestBody?: never;
|
|
4157
|
+
responses: {
|
|
4158
|
+
/** @description OK */
|
|
4159
|
+
200: {
|
|
4160
|
+
headers: {
|
|
4161
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4162
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4163
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4164
|
+
[name: string]: unknown;
|
|
4165
|
+
};
|
|
4166
|
+
content: {
|
|
4167
|
+
"application/json": components["schemas"]["PublicDefaultFlagLifetimeImpact"];
|
|
4168
|
+
};
|
|
4169
|
+
};
|
|
4170
|
+
/** @description Bad Request */
|
|
4171
|
+
400: {
|
|
4172
|
+
headers: {
|
|
4173
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4174
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4175
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4176
|
+
[name: string]: unknown;
|
|
4177
|
+
};
|
|
4178
|
+
content: {
|
|
4179
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4180
|
+
};
|
|
4181
|
+
};
|
|
4182
|
+
/** @description Authentication is required, or the supplied API token is invalid or expired. */
|
|
4183
|
+
401: {
|
|
4184
|
+
headers: {
|
|
4185
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4186
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4187
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4188
|
+
[name: string]: unknown;
|
|
4189
|
+
};
|
|
4190
|
+
content: {
|
|
4191
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4192
|
+
};
|
|
4193
|
+
};
|
|
4194
|
+
/** @description Not Found */
|
|
4195
|
+
404: {
|
|
4196
|
+
headers: {
|
|
4197
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4198
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4199
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4200
|
+
[name: string]: unknown;
|
|
4201
|
+
};
|
|
4202
|
+
content: {
|
|
4203
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4204
|
+
};
|
|
4205
|
+
};
|
|
4206
|
+
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4207
|
+
429: {
|
|
4208
|
+
headers: {
|
|
4209
|
+
/** @description Number of seconds to wait before retrying the request. */
|
|
4210
|
+
"Retry-After"?: number;
|
|
4211
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4212
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4213
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4214
|
+
[name: string]: unknown;
|
|
4215
|
+
};
|
|
4216
|
+
content: {
|
|
4217
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4218
|
+
};
|
|
4219
|
+
};
|
|
4220
|
+
};
|
|
4221
|
+
};
|
|
4222
|
+
put?: never;
|
|
4223
|
+
post?: never;
|
|
4224
|
+
delete?: never;
|
|
4225
|
+
options?: never;
|
|
4226
|
+
head?: never;
|
|
4227
|
+
patch?: never;
|
|
4228
|
+
trace?: never;
|
|
4229
|
+
};
|
|
3922
4230
|
"/api/v1/orgs/{org}/projects/{project}/environments/{env}/sdk-keys": {
|
|
3923
4231
|
parameters: {
|
|
3924
4232
|
query?: never;
|
|
@@ -4590,6 +4898,8 @@ export interface paths {
|
|
|
4590
4898
|
/** @description OK */
|
|
4591
4899
|
200: {
|
|
4592
4900
|
headers: {
|
|
4901
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
4902
|
+
ETag?: string;
|
|
4593
4903
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4594
4904
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4595
4905
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -4646,7 +4956,10 @@ export interface paths {
|
|
|
4646
4956
|
put: {
|
|
4647
4957
|
parameters: {
|
|
4648
4958
|
query?: never;
|
|
4649
|
-
header?:
|
|
4959
|
+
header?: {
|
|
4960
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
4961
|
+
"If-Match"?: string;
|
|
4962
|
+
};
|
|
4650
4963
|
path: {
|
|
4651
4964
|
org: string;
|
|
4652
4965
|
project: string;
|
|
@@ -4665,6 +4978,8 @@ export interface paths {
|
|
|
4665
4978
|
/** @description No Content */
|
|
4666
4979
|
204: {
|
|
4667
4980
|
headers: {
|
|
4981
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
4982
|
+
ETag?: string;
|
|
4668
4983
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4669
4984
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4670
4985
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -4720,6 +5035,18 @@ export interface paths {
|
|
|
4720
5035
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
4721
5036
|
};
|
|
4722
5037
|
};
|
|
5038
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
5039
|
+
412: {
|
|
5040
|
+
headers: {
|
|
5041
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5042
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5043
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5044
|
+
[name: string]: unknown;
|
|
5045
|
+
};
|
|
5046
|
+
content: {
|
|
5047
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5048
|
+
};
|
|
5049
|
+
};
|
|
4723
5050
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
4724
5051
|
429: {
|
|
4725
5052
|
headers: {
|
|
@@ -5135,6 +5462,8 @@ export interface paths {
|
|
|
5135
5462
|
/** @description OK */
|
|
5136
5463
|
200: {
|
|
5137
5464
|
headers: {
|
|
5465
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
5466
|
+
ETag?: string;
|
|
5138
5467
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5139
5468
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5140
5469
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -5204,7 +5533,10 @@ export interface paths {
|
|
|
5204
5533
|
put: {
|
|
5205
5534
|
parameters: {
|
|
5206
5535
|
query?: never;
|
|
5207
|
-
header?:
|
|
5536
|
+
header?: {
|
|
5537
|
+
/** @description Optional. The ETag from a GET of this resource. The write applies only if the resource still has that ETag; otherwise 412 `precondition_failed`. `*` or no header applies the write unconditionally. */
|
|
5538
|
+
"If-Match"?: string;
|
|
5539
|
+
};
|
|
5208
5540
|
path: {
|
|
5209
5541
|
org: string;
|
|
5210
5542
|
id: string;
|
|
@@ -5222,6 +5554,8 @@ export interface paths {
|
|
|
5222
5554
|
/** @description No Content */
|
|
5223
5555
|
204: {
|
|
5224
5556
|
headers: {
|
|
5557
|
+
/** @description Strong ETag of the resource. Send it back as If-Match on a PUT. */
|
|
5558
|
+
ETag?: string;
|
|
5225
5559
|
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5226
5560
|
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5227
5561
|
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
@@ -5277,6 +5611,18 @@ export interface paths {
|
|
|
5277
5611
|
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5278
5612
|
};
|
|
5279
5613
|
};
|
|
5614
|
+
/** @description The resource changed since the If-Match ETag. */
|
|
5615
|
+
412: {
|
|
5616
|
+
headers: {
|
|
5617
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5618
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5619
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5620
|
+
[name: string]: unknown;
|
|
5621
|
+
};
|
|
5622
|
+
content: {
|
|
5623
|
+
"application/json": components["schemas"]["PublicApiErrorEnvelope"];
|
|
5624
|
+
};
|
|
5625
|
+
};
|
|
5280
5626
|
/** @description Rate limit exceeded. Retry after the interval indicated by the Retry-After header. */
|
|
5281
5627
|
429: {
|
|
5282
5628
|
headers: {
|
|
@@ -5972,6 +6318,7 @@ export interface components {
|
|
|
5972
6318
|
* public API surfaces environments via their own endpoint (Task 6), not embedded here.
|
|
5973
6319
|
* UpdatedAt is only populated from ProjectDto (the detail/create
|
|
5974
6320
|
* shape); ProjectListItemDto doesn't carry it, so list rows leave it `null`.
|
|
6321
|
+
* DefaultFlagLifetimeDays is the project's default flag lifetime in days, or null (#3194).
|
|
5975
6322
|
* @example {
|
|
5976
6323
|
* "id": "0197b69f-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
|
|
5977
6324
|
* "key": "checkout",
|
|
@@ -5991,6 +6338,8 @@ export interface components {
|
|
|
5991
6338
|
createdAt?: string;
|
|
5992
6339
|
/** Format: date-time */
|
|
5993
6340
|
updatedAt?: string | null;
|
|
6341
|
+
/** Format: int32 */
|
|
6342
|
+
defaultFlagLifetimeDays?: number | null;
|
|
5994
6343
|
/** @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. */
|
|
5995
6344
|
_actions?: {
|
|
5996
6345
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -6397,6 +6746,16 @@ export interface components {
|
|
|
6397
6746
|
secret?: string | null;
|
|
6398
6747
|
warning?: string | null;
|
|
6399
6748
|
};
|
|
6749
|
+
/**
|
|
6750
|
+
* @description Response of `GET .../default-flag-lifetime/impact`: how many temporary flags with no expiry
|
|
6751
|
+
* date of their own would newly be past expiry, and how many would stop being past it.
|
|
6752
|
+
*/
|
|
6753
|
+
PublicDefaultFlagLifetimeImpact: {
|
|
6754
|
+
/** Format: int32 */
|
|
6755
|
+
newlyPastExpiry?: number;
|
|
6756
|
+
/** Format: int32 */
|
|
6757
|
+
noLongerPastExpiry?: number;
|
|
6758
|
+
};
|
|
6400
6759
|
/**
|
|
6401
6760
|
* @description Public representation of an environment, returned by
|
|
6402
6761
|
* `GET /api/v1/orgs/{org}/projects/{project}/environments` (list),
|
|
@@ -6488,6 +6847,9 @@ export interface components {
|
|
|
6488
6847
|
* Variations (a summary-only shape upstream) and
|
|
6489
6848
|
* Staleness, matching the "list is narrower than detail"
|
|
6490
6849
|
* split already present on the Application-layer DTOs.
|
|
6850
|
+
* EffectiveExpiresAtUtc is when the flag counts as past expiry, from its own ExpiresAtUtc
|
|
6851
|
+
* or its project's default lifetime; ExpirySource says which (`explicit` / `project-default`),
|
|
6852
|
+
* both null when neither applies.
|
|
6491
6853
|
*/
|
|
6492
6854
|
PublicFlagListItem: {
|
|
6493
6855
|
/** Format: uuid */
|
|
@@ -6511,6 +6873,9 @@ export interface components {
|
|
|
6511
6873
|
owner?: components["schemas"]["PublicFlagOwner"];
|
|
6512
6874
|
removalPrUrl?: string | null;
|
|
6513
6875
|
isPermanent?: boolean;
|
|
6876
|
+
/** Format: date-time */
|
|
6877
|
+
effectiveExpiresAtUtc?: string | null;
|
|
6878
|
+
expirySource?: string | null;
|
|
6514
6879
|
};
|
|
6515
6880
|
/**
|
|
6516
6881
|
* @description A page of results plus an opaque cursor for the next page, or null when this is the last
|
|
@@ -6583,6 +6948,9 @@ export interface components {
|
|
|
6583
6948
|
* `GET .../flags/{flag}` and the body of a successful create. Drops internal/dashboard-only
|
|
6584
6949
|
* fields present on FeatureFlagDto — notably `ProjectId` (implicit in the
|
|
6585
6950
|
* route) and `Staleness` (an internal analytics signal, not part of the public contract).
|
|
6951
|
+
* EffectiveExpiresAtUtc is when the flag counts as past expiry, from its own ExpiresAtUtc
|
|
6952
|
+
* or its project's default lifetime; ExpirySource says which (`explicit` / `project-default`),
|
|
6953
|
+
* both null when neither applies.
|
|
6586
6954
|
* @example {
|
|
6587
6955
|
* "id": "0197b6a0-5f2a-7c3e-9b4d-1e2f3a4b5c6d",
|
|
6588
6956
|
* "key": "new-checkout-flow",
|
|
@@ -6639,6 +7007,9 @@ export interface components {
|
|
|
6639
7007
|
owner?: components["schemas"]["PublicFlagOwner"];
|
|
6640
7008
|
removalPrUrl?: string | null;
|
|
6641
7009
|
isPermanent?: boolean;
|
|
7010
|
+
/** Format: date-time */
|
|
7011
|
+
effectiveExpiresAtUtc?: string | null;
|
|
7012
|
+
expirySource?: string | null;
|
|
6642
7013
|
/** @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. */
|
|
6643
7014
|
_actions?: {
|
|
6644
7015
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
@@ -6807,6 +7178,14 @@ export interface components {
|
|
|
6807
7178
|
[key: string]: components["schemas"]["ActionCapability"];
|
|
6808
7179
|
};
|
|
6809
7180
|
};
|
|
7181
|
+
/**
|
|
7182
|
+
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/default-flag-lifetime`. `days`
|
|
7183
|
+
* is 1–3650; null (or an empty body) removes the default.
|
|
7184
|
+
*/
|
|
7185
|
+
PublicSetDefaultFlagLifetimeRequest: {
|
|
7186
|
+
/** Format: int32 */
|
|
7187
|
+
days?: number | null;
|
|
7188
|
+
};
|
|
6810
7189
|
/**
|
|
6811
7190
|
* @description Request body for `PUT /api/v1/orgs/{org}/projects/{project}/flags/{flag}/expiry`. Expiry is a
|
|
6812
7191
|
* dedicated sub-resource, deliberately NOT a field on PublicUpdateFeatureFlagRequest: that
|