@shipeasy/openapi 3.2.0 → 3.4.0
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 +1 -1
- package/dist/{chunk-RTN572TI.js → chunk-JJA7XEPU.js} +91 -1
- package/dist/chunk-JJA7XEPU.js.map +1 -0
- package/dist/{chunk-DW33MG4B.js → chunk-Z3CY5Y44.js} +514 -126
- package/dist/chunk-Z3CY5Y44.js.map +1 -0
- package/dist/{client-BPVn4hMC.d.ts → client-CkRbr8I2.d.ts} +1544 -212
- package/dist/client.d.ts +1 -1
- package/dist/client.js +23 -1
- package/dist/custom.d.ts +5 -5
- package/dist/custom.js +128 -84
- package/dist/custom.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts +1935 -963
- package/dist/schemas.js +141 -1
- package/openapi-sdk.json +31 -9
- package/openapi.json +10449 -8118
- package/openapi.yaml +2274 -634
- package/package.json +1 -1
- package/spec/components/schemas/alert-rules.yaml +434 -10
- package/spec/components/schemas/alerts.yaml +9 -7
- package/spec/components/schemas/common.yaml +2 -2
- package/spec/components/schemas/connectors.yaml +69 -6
- package/spec/components/schemas/events.yaml +20 -9
- package/spec/components/schemas/keys.yaml +39 -0
- package/spec/components/schemas/metrics.yaml +131 -251
- package/spec/components/schemas/ops.yaml +471 -29
- package/spec/components/schemas/projects.yaml +18 -0
- package/spec/components/schemas/search.yaml +1 -0
- package/spec/components/schemas/tags.yaml +91 -0
- package/spec/openapi.yaml +56 -0
- package/spec/paths/alerts.yaml +5 -3
- package/spec/paths/i18n.yaml +2 -1
- package/spec/paths/keys.yaml +79 -0
- package/spec/paths/metrics.yaml +26 -17
- package/spec/paths/ops.yaml +514 -11
- package/spec/paths/tags.yaml +270 -0
- package/dist/chunk-DW33MG4B.js.map +0 -1
- package/dist/chunk-RTN572TI.js.map +0 -1
|
@@ -1245,9 +1245,9 @@ type ExperimentInlineMetric = {
|
|
|
1245
1245
|
*/
|
|
1246
1246
|
event?: string;
|
|
1247
1247
|
/**
|
|
1248
|
-
* Reducer for the `event` form. Defaults to `count_users
|
|
1248
|
+
* Reducer for the `event` form. Defaults to `count_events`. `count_users` was removed: Analytics Engine samples rows and weights the survivors, and a distinct count cannot be reweighted, so it under-reports by the sample interval. `retention_7d` / `retention_30d` were removed on 2026-08-10: the day count reached no query and no reducer, so both produced the same number as a distinct user count and reported it as a returning-user rate.
|
|
1249
1249
|
*/
|
|
1250
|
-
aggregation?: '
|
|
1250
|
+
aggregation?: 'count_events' | 'sum' | 'avg';
|
|
1251
1251
|
/**
|
|
1252
1252
|
* Numeric event property for `sum`/`avg` (with `event`).
|
|
1253
1253
|
*/
|
|
@@ -2909,139 +2909,63 @@ type UpdateAttributeResponse = {
|
|
|
2909
2909
|
id: string;
|
|
2910
2910
|
};
|
|
2911
2911
|
/**
|
|
2912
|
-
*
|
|
2912
|
+
* How the metric's series is DRAWN, as opposed to what it measures. Both parts used to be DSL functions (`expected(q, seasonal)`, `forecast(q, …)`), which meant turning a band on minted a different metric; they are properties now, so every chart of the metric picks them up and nothing that JUDGES the metric — an alert rule, the experiment analyzer — reads them at all.
|
|
2913
2913
|
*/
|
|
2914
|
-
type
|
|
2914
|
+
type MetricDisplayConfig = {
|
|
2915
2915
|
/**
|
|
2916
|
-
*
|
|
2916
|
+
* Shade the seasonal baseline around the series. The fit is the median of this hour of the week over the four weeks before the window, and it is the SAME fit an `anomaly` alert rule fires on — so the shaded region is exactly where such a rule would stay quiet, whether or not one exists.
|
|
2917
2917
|
*/
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
} | {
|
|
2921
|
-
kind: 'count_events';
|
|
2922
|
-
} | {
|
|
2923
|
-
kind: 'sum';
|
|
2924
|
-
} | {
|
|
2925
|
-
kind: 'avg';
|
|
2926
|
-
} | {
|
|
2927
|
-
kind: 'min';
|
|
2928
|
-
} | {
|
|
2929
|
-
kind: 'max';
|
|
2930
|
-
} | {
|
|
2931
|
-
kind: 'unique';
|
|
2932
|
-
} | {
|
|
2933
|
-
kind: 'quantile';
|
|
2918
|
+
band?: {
|
|
2919
|
+
method: 'seasonal';
|
|
2934
2920
|
/**
|
|
2935
|
-
*
|
|
2921
|
+
* Half-width of the band in sigma-equivalents. Omit for 3, the sigma an alert rule also defaults to.
|
|
2936
2922
|
*/
|
|
2937
|
-
|
|
2938
|
-
}
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
n: number;
|
|
2944
|
-
} | {
|
|
2945
|
-
kind: 'ratio';
|
|
2923
|
+
sigma?: number;
|
|
2924
|
+
};
|
|
2925
|
+
/**
|
|
2926
|
+
* Project the series past the end of the window. Projected buckets are marked, so a chart can draw an estimate differently from a measurement.
|
|
2927
|
+
*/
|
|
2928
|
+
forecast?: {
|
|
2946
2929
|
/**
|
|
2947
|
-
*
|
|
2930
|
+
* `linear` continues a least-squares slope over the window it is already reading. `seasonal` de-seasonalises against the four weeks before the window, fits the trend on the remainder and adds the hour-of-week term back — ask for it when the metric has a shape.
|
|
2948
2931
|
*/
|
|
2949
|
-
|
|
2950
|
-
/**
|
|
2951
|
-
* Counting mode for this ratio arm.
|
|
2952
|
-
*/
|
|
2953
|
-
agg: 'count_users' | 'count_events';
|
|
2954
|
-
/**
|
|
2955
|
-
* Source event name for this ratio arm.
|
|
2956
|
-
*/
|
|
2957
|
-
metric: string;
|
|
2958
|
-
/**
|
|
2959
|
-
* Optional label filters.
|
|
2960
|
-
*/
|
|
2961
|
-
filters?: Array<{
|
|
2962
|
-
/**
|
|
2963
|
-
* Event property / label identifier.
|
|
2964
|
-
*/
|
|
2965
|
-
label: string;
|
|
2966
|
-
/**
|
|
2967
|
-
* Match operator (`=~`/`!~` are regex).
|
|
2968
|
-
*/
|
|
2969
|
-
op: '=' | '!=' | '=~' | '!~';
|
|
2970
|
-
/**
|
|
2971
|
-
* Quoted filter value (coerced for numeric labels).
|
|
2972
|
-
*/
|
|
2973
|
-
value: string;
|
|
2974
|
-
}>;
|
|
2975
|
-
};
|
|
2932
|
+
method: 'linear' | 'seasonal';
|
|
2976
2933
|
/**
|
|
2977
|
-
*
|
|
2934
|
+
* Buckets to project. Omit for a quarter of the window, which is the same claim at every bucket width.
|
|
2978
2935
|
*/
|
|
2979
|
-
|
|
2980
|
-
/**
|
|
2981
|
-
* Counting mode for this ratio arm.
|
|
2982
|
-
*/
|
|
2983
|
-
agg: 'count_users' | 'count_events';
|
|
2984
|
-
/**
|
|
2985
|
-
* Source event name for this ratio arm.
|
|
2986
|
-
*/
|
|
2987
|
-
metric: string;
|
|
2988
|
-
/**
|
|
2989
|
-
* Optional label filters.
|
|
2990
|
-
*/
|
|
2991
|
-
filters?: Array<{
|
|
2992
|
-
/**
|
|
2993
|
-
* Event property / label identifier.
|
|
2994
|
-
*/
|
|
2995
|
-
label: string;
|
|
2996
|
-
/**
|
|
2997
|
-
* Match operator (`=~`/`!~` are regex).
|
|
2998
|
-
*/
|
|
2999
|
-
op: '=' | '!=' | '=~' | '!~';
|
|
3000
|
-
/**
|
|
3001
|
-
* Quoted filter value (coerced for numeric labels).
|
|
3002
|
-
*/
|
|
3003
|
-
value: string;
|
|
3004
|
-
}>;
|
|
3005
|
-
};
|
|
2936
|
+
horizon?: number;
|
|
3006
2937
|
};
|
|
2938
|
+
};
|
|
2939
|
+
/**
|
|
2940
|
+
* A metric definition as a typed expression tree — the structured alternative to the `query` DSL string, and what the API stores. Exactly one of `query` / `query_ir` is supplied per metric body; `query` is the same definition written as text, and is the spelling to prefer.
|
|
2941
|
+
* Until 2026-08-10 this documented a single aggregation (`{agg, metric, filters}`, with `ratio` as a special case). That shape no longer exists — stored metrics were migrated and the code that read it was deleted — so a body sending it is rejected. Send the `query` string instead, or the tree below.
|
|
2942
|
+
*/
|
|
2943
|
+
type QueryIr = {
|
|
3007
2944
|
/**
|
|
3008
|
-
*
|
|
3009
|
-
*/
|
|
3010
|
-
metric: string;
|
|
3011
|
-
/**
|
|
3012
|
-
* Numeric property summed/averaged for `sum`/`avg`/quantile aggregations.
|
|
2945
|
+
* Storage version of the definition. `2` is the only one.
|
|
3013
2946
|
*/
|
|
3014
|
-
|
|
2947
|
+
v: 2;
|
|
3015
2948
|
/**
|
|
3016
|
-
*
|
|
2949
|
+
* The expression tree: aggregate leaves (`{node: "agg", event, agg, filters, valueLabel?}`), arithmetic over them (`{node: "binary", op, left, right}`), scalars, and function calls (`{node: "call", fn, arg, params?}`). A ratio is ordinary division of two leaves.
|
|
2950
|
+
* Deliberately opaque here rather than mirrored node by node: the grammar belongs to the query language, a second copy of it in this spec would drift from the one the server enforces, and the server validates every tree by planning it before the metric saves. `GET /api/admin/metrics` returns the grammar itself; the `query` string is the same tree in the form humans and the CLI write.
|
|
3017
2951
|
*/
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
*/
|
|
3022
|
-
label: string;
|
|
3023
|
-
/**
|
|
3024
|
-
* Match operator (`=~`/`!~` are regex).
|
|
3025
|
-
*/
|
|
3026
|
-
op: '=' | '!=' | '=~' | '!~';
|
|
3027
|
-
/**
|
|
3028
|
-
* Quoted filter value (coerced for numeric labels).
|
|
3029
|
-
*/
|
|
3030
|
-
value: string;
|
|
3031
|
-
}>;
|
|
2952
|
+
expr: {
|
|
2953
|
+
[key: string]: unknown;
|
|
2954
|
+
};
|
|
3032
2955
|
/**
|
|
3033
|
-
*
|
|
2956
|
+
* How the series is split. On the envelope rather than in `expr` because every leaf of one expression shares it.
|
|
3034
2957
|
*/
|
|
3035
2958
|
groupBy?: {
|
|
3036
2959
|
/**
|
|
3037
|
-
* `by`
|
|
2960
|
+
* `by` names the output dimensions; `without` names the ones to drop.
|
|
3038
2961
|
*/
|
|
3039
2962
|
op: 'by' | 'without';
|
|
3040
2963
|
/**
|
|
3041
|
-
* Labels
|
|
2964
|
+
* Labels the grouping names.
|
|
3042
2965
|
*/
|
|
3043
2966
|
labels: Array<string>;
|
|
3044
2967
|
};
|
|
2968
|
+
display?: MetricDisplayConfig;
|
|
3045
2969
|
};
|
|
3046
2970
|
/**
|
|
3047
2971
|
* Every metric in the project (the list endpoint is not paginated).
|
|
@@ -3121,6 +3045,10 @@ type ListMetricsResponse = Array<{
|
|
|
3121
3045
|
updatedAt?: string;
|
|
3122
3046
|
[key: string]: unknown;
|
|
3123
3047
|
}>;
|
|
3048
|
+
/**
|
|
3049
|
+
* What a human calls the metric — "Checkout revenue" beside the `checkout.revenue` that identifies it. Unlike `name` it is free text, it is editable, and nothing addresses the metric by it: the dashboard leads with it and falls back to `name` when it is absent, so a metric nobody named simply reads as its key. Send `null` to clear it.
|
|
3050
|
+
*/
|
|
3051
|
+
type MetricDisplayName = string | null;
|
|
3124
3052
|
/**
|
|
3125
3053
|
* Source event the query reads from.
|
|
3126
3054
|
*/
|
|
@@ -3150,6 +3078,7 @@ type MetricDisplayUnit = string | null;
|
|
|
3150
3078
|
*/
|
|
3151
3079
|
type CreateMetricWithQuery = {
|
|
3152
3080
|
name: MetricName;
|
|
3081
|
+
display_name?: MetricDisplayName;
|
|
3153
3082
|
folder?: Folder;
|
|
3154
3083
|
event_name: MetricEventName;
|
|
3155
3084
|
query: MetricQueryDsl;
|
|
@@ -3157,12 +3086,14 @@ type CreateMetricWithQuery = {
|
|
|
3157
3086
|
default_min_effect_of_interest?: MetricDefaultMinEffectOfInterest;
|
|
3158
3087
|
direction?: MetricDirection;
|
|
3159
3088
|
unit?: MetricDisplayUnit;
|
|
3089
|
+
display?: MetricDisplayConfig;
|
|
3160
3090
|
};
|
|
3161
3091
|
/**
|
|
3162
3092
|
* Create a metric, supplying the query as a typed `query_ir`.
|
|
3163
3093
|
*/
|
|
3164
3094
|
type CreateMetricWithQueryIr = {
|
|
3165
3095
|
name: MetricName;
|
|
3096
|
+
display_name?: MetricDisplayName;
|
|
3166
3097
|
folder?: Folder;
|
|
3167
3098
|
event_name: MetricEventName;
|
|
3168
3099
|
query_ir: QueryIr;
|
|
@@ -3170,6 +3101,7 @@ type CreateMetricWithQueryIr = {
|
|
|
3170
3101
|
default_min_effect_of_interest?: MetricDefaultMinEffectOfInterest;
|
|
3171
3102
|
direction?: MetricDirection;
|
|
3172
3103
|
unit?: MetricDisplayUnit;
|
|
3104
|
+
display?: MetricDisplayConfig;
|
|
3173
3105
|
};
|
|
3174
3106
|
/**
|
|
3175
3107
|
* Body for `POST /api/admin/metrics`. Requires `name`, `event_name`, and exactly one of `query` / `query_ir` — modelled as a `oneOf` of two strict variants, so supplying both (or neither) is rejected.
|
|
@@ -3268,6 +3200,7 @@ type DeleteMetricResponse = {
|
|
|
3268
3200
|
* Update-metric variant that replaces the query with a `query` DSL string.
|
|
3269
3201
|
*/
|
|
3270
3202
|
type UpdateMetricWithQuery = {
|
|
3203
|
+
display_name?: MetricDisplayName;
|
|
3271
3204
|
folder?: Folder;
|
|
3272
3205
|
event_name?: MetricEventName;
|
|
3273
3206
|
query: MetricQueryDsl;
|
|
@@ -3275,11 +3208,13 @@ type UpdateMetricWithQuery = {
|
|
|
3275
3208
|
default_min_effect_of_interest?: MetricDefaultMinEffectOfInterest;
|
|
3276
3209
|
direction?: MetricDirection;
|
|
3277
3210
|
unit?: MetricDisplayUnit;
|
|
3211
|
+
display?: MetricDisplayConfig;
|
|
3278
3212
|
};
|
|
3279
3213
|
/**
|
|
3280
3214
|
* Update-metric variant that replaces the query with a typed `query_ir`.
|
|
3281
3215
|
*/
|
|
3282
3216
|
type UpdateMetricWithQueryIr = {
|
|
3217
|
+
display_name?: MetricDisplayName;
|
|
3283
3218
|
folder?: Folder;
|
|
3284
3219
|
event_name?: MetricEventName;
|
|
3285
3220
|
query_ir: QueryIr;
|
|
@@ -3287,17 +3222,20 @@ type UpdateMetricWithQueryIr = {
|
|
|
3287
3222
|
default_min_effect_of_interest?: MetricDefaultMinEffectOfInterest;
|
|
3288
3223
|
direction?: MetricDirection;
|
|
3289
3224
|
unit?: MetricDisplayUnit;
|
|
3225
|
+
display?: MetricDisplayConfig;
|
|
3290
3226
|
};
|
|
3291
3227
|
/**
|
|
3292
|
-
* Update-metric variant that leaves the query untouched (metadata-only edit — folder, event, winsorisation, default minimum effect of interest, direction, display unit).
|
|
3228
|
+
* Update-metric variant that leaves the query untouched (metadata-only edit — folder, event, winsorisation, default minimum effect of interest, direction, display unit, band and projection).
|
|
3293
3229
|
*/
|
|
3294
3230
|
type UpdateMetricFields = {
|
|
3231
|
+
display_name?: MetricDisplayName;
|
|
3295
3232
|
folder?: Folder;
|
|
3296
3233
|
event_name?: MetricEventName;
|
|
3297
3234
|
winsorize_pct?: MetricWinsorizePct;
|
|
3298
3235
|
default_min_effect_of_interest?: MetricDefaultMinEffectOfInterest;
|
|
3299
3236
|
direction?: MetricDirection;
|
|
3300
3237
|
unit?: MetricDisplayUnit;
|
|
3238
|
+
display?: MetricDisplayConfig;
|
|
3301
3239
|
};
|
|
3302
3240
|
/**
|
|
3303
3241
|
* Body for `PATCH /api/admin/metrics/{id}`. Every field is optional (`name` is immutable); provide at most one of `query` / `query_ir` — modelled as a `oneOf` of three disjoint strict variants (query-only, query_ir-only, or neither), so supplying both is rejected.
|
|
@@ -3372,6 +3310,16 @@ type GetMetricSeriesResponse = {
|
|
|
3372
3310
|
* Aggregated metric value in the bucket (sample-interval weighted).
|
|
3373
3311
|
*/
|
|
3374
3312
|
v: number;
|
|
3313
|
+
/**
|
|
3314
|
+
* Lower edge of the seasonal band — what this hour of the week normally holds, `sigma` below the median of the four weeks before the window. Present only for a metric whose `display.band` is on, and always alongside `hi`.
|
|
3315
|
+
*
|
|
3316
|
+
*/
|
|
3317
|
+
lo?: number;
|
|
3318
|
+
/**
|
|
3319
|
+
* Upper edge of the seasonal band. Present only for a metric whose `display.band` is on, and always alongside `lo`. A point outside `[lo, hi]` is exactly a bucket an `anomaly` alert rule at the same sigma would breach on — the band a chart draws and the condition a rule fires on come from one fit.
|
|
3320
|
+
*
|
|
3321
|
+
*/
|
|
3322
|
+
hi?: number;
|
|
3375
3323
|
[key: string]: unknown;
|
|
3376
3324
|
}>;
|
|
3377
3325
|
};
|
|
@@ -3400,7 +3348,7 @@ type ListEventsResponse = Array<{
|
|
|
3400
3348
|
*/
|
|
3401
3349
|
properties: Array<{
|
|
3402
3350
|
/**
|
|
3403
|
-
* Property key, e.g. `amount` or `plan`.
|
|
3351
|
+
* Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
3404
3352
|
*/
|
|
3405
3353
|
name: string;
|
|
3406
3354
|
/**
|
|
@@ -3415,6 +3363,10 @@ type ListEventsResponse = Array<{
|
|
|
3415
3363
|
* Human-readable description of the property.
|
|
3416
3364
|
*/
|
|
3417
3365
|
description?: string;
|
|
3366
|
+
/**
|
|
3367
|
+
* `true` when this property was DISCOVERED in live traffic rather than declared. Nothing is recorded for it yet — a property is written to Analytics Engine only once it owns a column, and a column is allocated when an admin declares the property (include it in a `PATCH .../events/{id}` body). Approval is a gate rather than a formality: columns are finite and permanently reserved, so auto-allocating them from customer payload keys would exhaust an event's schema irreversibly.
|
|
3368
|
+
*/
|
|
3369
|
+
pending?: boolean;
|
|
3418
3370
|
}>;
|
|
3419
3371
|
/**
|
|
3420
3372
|
* `1` if this is an auto-discovered name awaiting approval (metrics on it fail until approved), `0` if approved/usable.
|
|
@@ -3430,7 +3382,7 @@ type ListEventsResponse = Array<{
|
|
|
3430
3382
|
*/
|
|
3431
3383
|
type CreateEventRequest = {
|
|
3432
3384
|
/**
|
|
3433
|
-
* Event name. Starts with a letter, digit, or `_`; letters, digits, `_`, `-`, `.`; max 128
|
|
3385
|
+
* Event name. Starts with a letter, digit, or `_`; letters, digits, `_`, `-`, `.`; max 50 characters. The cap is the Analytics Engine index budget — 96 bytes total, less a 36-byte project UUID and a separator — and the API has always enforced 50 while this spec advertised 128. The charset is ASCII, so characters and bytes are the same count. Immutable after create — this is the handle metric queries reference.
|
|
3434
3386
|
*/
|
|
3435
3387
|
name: string;
|
|
3436
3388
|
folder?: Folder;
|
|
@@ -3443,7 +3395,7 @@ type CreateEventRequest = {
|
|
|
3443
3395
|
*/
|
|
3444
3396
|
properties?: Array<{
|
|
3445
3397
|
/**
|
|
3446
|
-
* Property key, e.g. `amount` or `plan`.
|
|
3398
|
+
* Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
3447
3399
|
*/
|
|
3448
3400
|
name: string;
|
|
3449
3401
|
/**
|
|
@@ -3498,7 +3450,7 @@ type GetEventResponse = {
|
|
|
3498
3450
|
*/
|
|
3499
3451
|
properties: Array<{
|
|
3500
3452
|
/**
|
|
3501
|
-
* Property key, e.g. `amount` or `plan`.
|
|
3453
|
+
* Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
3502
3454
|
*/
|
|
3503
3455
|
name: string;
|
|
3504
3456
|
/**
|
|
@@ -3513,6 +3465,10 @@ type GetEventResponse = {
|
|
|
3513
3465
|
* Human-readable description of the property.
|
|
3514
3466
|
*/
|
|
3515
3467
|
description?: string;
|
|
3468
|
+
/**
|
|
3469
|
+
* `true` when this property was DISCOVERED in live traffic rather than declared. Nothing is recorded for it yet — a property is written to Analytics Engine only once it owns a column, and a column is allocated when an admin declares the property (include it in a `PATCH .../events/{id}` body). Approval is a gate rather than a formality: columns are finite and permanently reserved, so auto-allocating them from customer payload keys would exhaust an event's schema irreversibly.
|
|
3470
|
+
*/
|
|
3471
|
+
pending?: boolean;
|
|
3516
3472
|
}>;
|
|
3517
3473
|
/**
|
|
3518
3474
|
* `1` if this is an auto-discovered name awaiting approval (metrics on it fail until approved), `0` if approved/usable.
|
|
@@ -3543,7 +3499,7 @@ type UpdateEventRequest = {
|
|
|
3543
3499
|
*/
|
|
3544
3500
|
properties?: Array<{
|
|
3545
3501
|
/**
|
|
3546
|
-
* Property key, e.g. `amount` or `plan`.
|
|
3502
|
+
* Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
3547
3503
|
*/
|
|
3548
3504
|
name: string;
|
|
3549
3505
|
/**
|
|
@@ -3583,7 +3539,7 @@ type ApproveEventRequest = {
|
|
|
3583
3539
|
*/
|
|
3584
3540
|
properties?: Array<{
|
|
3585
3541
|
/**
|
|
3586
|
-
* Property key, e.g. `amount` or `plan`.
|
|
3542
|
+
* Property key, e.g. `amount` or `plan`. Must be a bare identifier — it is emitted as a SQL alias when the property is used as a `by()` dimension, and there is no way to quote one in the Analytics Engine dialect.
|
|
3587
3543
|
*/
|
|
3588
3544
|
name: string;
|
|
3589
3545
|
/**
|
|
@@ -3618,9 +3574,9 @@ type OpsItemStatus = 'open' | 'pending_approval' | 'investigating_by_ai' | 'in_p
|
|
|
3618
3574
|
*/
|
|
3619
3575
|
type OpsItemPriority = 'nice_to_have' | 'medium' | 'high' | 'critical';
|
|
3620
3576
|
/**
|
|
3621
|
-
* Where automation has taken an item in the investigation lifecycle — the signal the ops cockpit renders as "what AI did" plus the one action expected of the user. It is **written as a side-effect of the actions that already happen**, never authored on its own: linking a PR sets `pr_ready`, moving to `in_progress` sets `working`, `ready_for_qa` sets `ready_for_qa`, a system/assistant reply sets `question`, resolving clears it, and creation seeds `backlog`
|
|
3577
|
+
* Where automation has taken an item in the investigation lifecycle — the signal the ops cockpit renders as "what AI did" plus the one action expected of the user. It is **written as a side-effect of the actions that already happen**, never authored on its own: linking a PR sets `pr_ready`, moving to `in_progress` sets `working`, `ready_for_qa` sets `ready_for_qa`, a system/assistant reply sets `question`, resolving clears it, and creation seeds `backlog` for every untouched item (bugs, features, and auto-filed error/alert tickets alike — type is not a signal). `backlog` is the single "nothing has happened yet" state — how urgent that is reads off `priority`, not off a separate state, and its one action is to hand the item to an agent. `investigated`/`detected` are set when a completed agent run leaves findings to review, not at filing time. `pr_merged` and `pr_closed` are written by the GitHub `pull_request` webhook when the linked PR reaches a terminal outcome — merged (the fix shipped, resolve the item) or closed without merging (the fix was rejected, decide what happens next). Absent on rows filed before the field existed — consumers should treat a missing value as "derive from the other fields".
|
|
3622
3578
|
*/
|
|
3623
|
-
type OpsInvestigationState = 'pr_ready' | 'pr_merged' | 'investigated' | 'detected' | 'question' | 'ready_for_qa' | 'pending_approval' | 'working' | 'backlog';
|
|
3579
|
+
type OpsInvestigationState = 'pr_ready' | 'pr_merged' | 'pr_closed' | 'investigated' | 'detected' | 'question' | 'ready_for_qa' | 'pending_approval' | 'working' | 'backlog';
|
|
3624
3580
|
/**
|
|
3625
3581
|
* Auto-collected browser environment for a `bug`/`feature_request`, captured at file time.
|
|
3626
3582
|
*/
|
|
@@ -3754,21 +3710,29 @@ type OpsAlertMetricSummary = {
|
|
|
3754
3710
|
[key: string]: unknown;
|
|
3755
3711
|
};
|
|
3756
3712
|
/**
|
|
3757
|
-
*
|
|
3713
|
+
* Detail for an `alert` ticket — the fired-alert INSTANCE this ticket is. List rows carry the stored capture subset (`source`, `dedupeKey`, `ruleId`, `detail`, `href`, `observedValue`); the single-item read hydrates the rest, resolving `severity`/`status` off the ticket itself and the rule → metric → event chain at request time.
|
|
3758
3714
|
*/
|
|
3759
3715
|
type OpsAlertContext = {
|
|
3760
3716
|
/**
|
|
3761
|
-
* What kind of
|
|
3717
|
+
* What kind of condition opened this alert instance.
|
|
3762
3718
|
*/
|
|
3763
|
-
source: 'metric_rule' | 'experiment_srm' | 'experiment_peek' | 'guardrail';
|
|
3719
|
+
source: 'metric_rule' | 'killswitch_armed' | 'experiment_srm' | 'experiment_peek' | 'guardrail';
|
|
3764
3720
|
/**
|
|
3765
3721
|
* Stable per-condition key; with `source` forms the ticket's `sourceRef`.
|
|
3766
3722
|
*/
|
|
3767
3723
|
dedupeKey: string;
|
|
3768
3724
|
/**
|
|
3769
|
-
*
|
|
3725
|
+
* The instance's one-line reading — the observed condition in words.
|
|
3770
3726
|
*/
|
|
3771
|
-
|
|
3727
|
+
detail?: string | null;
|
|
3728
|
+
/**
|
|
3729
|
+
* Id of the alert rule that opened this instance, or `null` for a built-in condition.
|
|
3730
|
+
*/
|
|
3731
|
+
ruleId?: string | null;
|
|
3732
|
+
/**
|
|
3733
|
+
* How loud the alert is. Severity belongs to the RULE and is carried by this ticket as `priority`; it is DERIVED from that on the hydrated single-item read, and absent from the raw stored context list rows return.
|
|
3734
|
+
*/
|
|
3735
|
+
severity?: 'danger' | 'warn' | 'info';
|
|
3772
3736
|
/**
|
|
3773
3737
|
* The metric value that tripped the rule, or `null`.
|
|
3774
3738
|
*/
|
|
@@ -3778,7 +3742,7 @@ type OpsAlertContext = {
|
|
|
3778
3742
|
*/
|
|
3779
3743
|
href?: string | null;
|
|
3780
3744
|
/**
|
|
3781
|
-
*
|
|
3745
|
+
* Firing state of this instance, projected from the ticket's own status (`active` while it is open, i.e. while the condition holds). Absent from the raw stored context list rows return.
|
|
3782
3746
|
*/
|
|
3783
3747
|
status?: 'active' | 'resolved' | 'dismissed' | null;
|
|
3784
3748
|
/**
|
|
@@ -3874,15 +3838,15 @@ type OpsItemContext = {
|
|
|
3874
3838
|
alert?: OpsAlertContext;
|
|
3875
3839
|
measurePlan?: OpsMeasurePlanContext;
|
|
3876
3840
|
/**
|
|
3877
|
-
* Occurrence timeline for an `error` ticket —
|
|
3841
|
+
* Occurrence timeline for an `error` ticket — buckets over the project's error auto-close window (Settings → Errors: `errorAutocloseDays`, 7 days when auto-close is off, capped at 30) from the sampled occurrences, hydrated at read time by the single-item read only. Plotting exactly the quiet window that auto-resolves the error is what makes an empty right-hand edge meaningful. ABSENT (not `null`) on non-error tickets, on list rows (raw context), and when no occurrence landed in the window.
|
|
3878
3842
|
*/
|
|
3879
3843
|
errorChart?: {
|
|
3880
3844
|
/**
|
|
3881
|
-
*
|
|
3845
|
+
* Occurrence buckets, oldest first. Buckets with no occurrences are omitted.
|
|
3882
3846
|
*/
|
|
3883
3847
|
series: Array<{
|
|
3884
3848
|
/**
|
|
3885
|
-
* Bucket start — unix epoch **milliseconds
|
|
3849
|
+
* Bucket start — unix epoch **milliseconds**. Bucket width scales with the window (hourly up to ~5 days, coarser beyond).
|
|
3886
3850
|
*/
|
|
3887
3851
|
t: number;
|
|
3888
3852
|
/**
|
|
@@ -3892,7 +3856,7 @@ type OpsItemContext = {
|
|
|
3892
3856
|
[key: string]: unknown;
|
|
3893
3857
|
}>;
|
|
3894
3858
|
/**
|
|
3895
|
-
* Chart domain start — unix epoch milliseconds (
|
|
3859
|
+
* Chart domain start — unix epoch milliseconds (the window's start).
|
|
3896
3860
|
*/
|
|
3897
3861
|
domainFrom: number;
|
|
3898
3862
|
/**
|
|
@@ -3927,6 +3891,26 @@ type GithubPrLink = {
|
|
|
3927
3891
|
* How the PR was connected to the issue.
|
|
3928
3892
|
*/
|
|
3929
3893
|
method?: 'closes' | 'comment';
|
|
3894
|
+
/**
|
|
3895
|
+
* Repository owner (org or user) the pull request lives in. Absent on links recorded before the field existed — `url` still carries it.
|
|
3896
|
+
*/
|
|
3897
|
+
owner?: string;
|
|
3898
|
+
/**
|
|
3899
|
+
* Repository name the pull request lives in. Absent on links recorded before the field existed — `url` still carries it.
|
|
3900
|
+
*/
|
|
3901
|
+
repo?: string;
|
|
3902
|
+
/**
|
|
3903
|
+
* Outcome of the pull request on GitHub, kept current by the `pull_request` webhook. `merged` and `closed` (closed WITHOUT merging, i.e. rejected) are terminal. Absent means the outcome has never been observed — treat it as `open`.
|
|
3904
|
+
*/
|
|
3905
|
+
state?: 'open' | 'merged' | 'closed';
|
|
3906
|
+
/**
|
|
3907
|
+
* ISO-8601 timestamp the pull request merged, when `state` is `merged`.
|
|
3908
|
+
*/
|
|
3909
|
+
mergedAt?: string;
|
|
3910
|
+
/**
|
|
3911
|
+
* ISO-8601 timestamp the pull request closed unmerged, when `state` is `closed`.
|
|
3912
|
+
*/
|
|
3913
|
+
closedAt?: string;
|
|
3930
3914
|
[key: string]: unknown;
|
|
3931
3915
|
};
|
|
3932
3916
|
/**
|
|
@@ -4205,6 +4189,10 @@ type ListOpsItemsResponse = Array<{
|
|
|
4205
4189
|
updatedAt: string;
|
|
4206
4190
|
[key: string]: unknown;
|
|
4207
4191
|
}>;
|
|
4192
|
+
/**
|
|
4193
|
+
* A tag name. Trimmed; matched case-insensitively against the project's existing tags.
|
|
4194
|
+
*/
|
|
4195
|
+
type TagName = string;
|
|
4208
4196
|
/**
|
|
4209
4197
|
* Bug-kind fields for `POST /api/admin/ops` (sent with `type: bug`).
|
|
4210
4198
|
*/
|
|
@@ -4246,9 +4234,9 @@ type CreateBugRequest = {
|
|
|
4246
4234
|
*/
|
|
4247
4235
|
subscribers?: Array<string>;
|
|
4248
4236
|
/**
|
|
4249
|
-
* Tag names to
|
|
4237
|
+
* Tag names to label the item with, e.g. `["ios", "checkout"]`. Each name is matched case-insensitively against the project's existing tags and reuses that tag (keeping its stored casing) when one matches; a name with no match creates a new project tag.
|
|
4250
4238
|
*/
|
|
4251
|
-
tags?: Array<
|
|
4239
|
+
tags?: Array<TagName>;
|
|
4252
4240
|
/**
|
|
4253
4241
|
* Email of the reporter, or `null`.
|
|
4254
4242
|
*/
|
|
@@ -4313,9 +4301,9 @@ type CreateFeatureRequestRequest = {
|
|
|
4313
4301
|
*/
|
|
4314
4302
|
subscribers?: Array<string>;
|
|
4315
4303
|
/**
|
|
4316
|
-
* Tag names to
|
|
4304
|
+
* Tag names to label the item with, e.g. `["ios", "checkout"]`. Each name is matched case-insensitively against the project's existing tags and reuses that tag (keeping its stored casing) when one matches; a name with no match creates a new project tag.
|
|
4317
4305
|
*/
|
|
4318
|
-
tags?: Array<
|
|
4306
|
+
tags?: Array<TagName>;
|
|
4319
4307
|
/**
|
|
4320
4308
|
* Email of the reporter, or `null`.
|
|
4321
4309
|
*/
|
|
@@ -4361,7 +4349,7 @@ type CreateOpsItemResponse = {
|
|
|
4361
4349
|
number?: number | null;
|
|
4362
4350
|
};
|
|
4363
4351
|
/**
|
|
4364
|
-
* Body for `POST /ops/bug`. The same bug fields as `CreateBugRequest`, minus the `type` discriminator — the path already says what is being filed
|
|
4352
|
+
* Body for `POST /ops/bug`. The same bug fields as `CreateBugRequest`, minus the `type` discriminator — the path already says what is being filed, plus the public intake's own `dedupKey`.
|
|
4365
4353
|
*/
|
|
4366
4354
|
type CreatePublicBugRequest = {
|
|
4367
4355
|
/**
|
|
@@ -4397,9 +4385,9 @@ type CreatePublicBugRequest = {
|
|
|
4397
4385
|
*/
|
|
4398
4386
|
subscribers?: Array<string>;
|
|
4399
4387
|
/**
|
|
4400
|
-
* Tag names to
|
|
4388
|
+
* Tag names to label the item with, e.g. `["ios", "checkout"]`. Each name is matched case-insensitively against the project's existing tags and reuses that tag (keeping its stored casing) when one matches; a name with no match creates a new project tag. Here the tags only label the ticket: the project's tag rules (owner/status/agent routing) are not applied to a public report while it awaits approval.
|
|
4401
4389
|
*/
|
|
4402
|
-
tags?: Array<
|
|
4390
|
+
tags?: Array<TagName>;
|
|
4403
4391
|
/**
|
|
4404
4392
|
* Email of the reporter, or `null`.
|
|
4405
4393
|
*/
|
|
@@ -4422,13 +4410,17 @@ type CreatePublicBugRequest = {
|
|
|
4422
4410
|
context?: {
|
|
4423
4411
|
[key: string]: unknown;
|
|
4424
4412
|
} | null;
|
|
4413
|
+
/**
|
|
4414
|
+
* Caller-chosen dedupe identity for this report, stored on the ticket. A repeat submission carrying the same key does NOT file a second ticket: the open ticket already holding that key is refreshed from this payload (title and the report fields overwritten, a "re-triggered" comment appended) and returned with `deduped: true` and `updated: true`. Triage state a human owns — status, priority, assignee, tags — is left untouched, and a `resolved`/`wont_fix` ticket no longer holds the key, so a failure that comes back after being closed files a fresh ticket. Omit it to fall back to the derived (title + `context.step`) dedupe, whose repeats return the existing ticket unchanged.
|
|
4415
|
+
*/
|
|
4416
|
+
dedupKey?: string;
|
|
4425
4417
|
/**
|
|
4426
4418
|
* Where this bug's completion notification lands.
|
|
4427
4419
|
*/
|
|
4428
4420
|
notify?: NotificationTarget | null;
|
|
4429
4421
|
};
|
|
4430
4422
|
/**
|
|
4431
|
-
* Response for the public ticket intake. A fresh file returns `201` with `id` + `number`; a repeat of a report already tracked by an open ticket returns `200` with that ticket's `number` and `deduped: true
|
|
4423
|
+
* Response for the public ticket intake. A fresh file returns `201` with `id` + `number`; a repeat of a report already tracked by an open ticket returns `200` with that ticket's `number` and `deduped: true` — plus `updated: true` when a `dedupKey` re-triggered it and its fields were refreshed.
|
|
4432
4424
|
*/
|
|
4433
4425
|
type CreatePublicTicketResponse = {
|
|
4434
4426
|
/**
|
|
@@ -4443,9 +4435,13 @@ type CreatePublicTicketResponse = {
|
|
|
4443
4435
|
* `true` when an open ticket already tracked this report and nothing was filed (HTTP 200). Absent on a fresh file (HTTP 201).
|
|
4444
4436
|
*/
|
|
4445
4437
|
deduped?: boolean;
|
|
4438
|
+
/**
|
|
4439
|
+
* `true` when the deduped ticket was REFRESHED from this payload and got a "re-triggered" comment — only ever set alongside `deduped` on a submission that carried a `dedupKey`. Absent when the existing ticket was returned untouched.
|
|
4440
|
+
*/
|
|
4441
|
+
updated?: boolean;
|
|
4446
4442
|
};
|
|
4447
4443
|
/**
|
|
4448
|
-
* Body for `POST /ops/feature-request`. The same feature-request fields as `CreateFeatureRequestRequest`, minus the `type` discriminator — the path already says what is being filed
|
|
4444
|
+
* Body for `POST /ops/feature-request`. The same feature-request fields as `CreateFeatureRequestRequest`, minus the `type` discriminator — the path already says what is being filed, plus the public intake's own `dedupKey`.
|
|
4449
4445
|
*/
|
|
4450
4446
|
type CreatePublicFeatureRequestRequest = {
|
|
4451
4447
|
/**
|
|
@@ -4477,9 +4473,9 @@ type CreatePublicFeatureRequestRequest = {
|
|
|
4477
4473
|
*/
|
|
4478
4474
|
subscribers?: Array<string>;
|
|
4479
4475
|
/**
|
|
4480
|
-
* Tag names to
|
|
4476
|
+
* Tag names to label the item with, e.g. `["ios", "checkout"]`. Each name is matched case-insensitively against the project's existing tags and reuses that tag (keeping its stored casing) when one matches; a name with no match creates a new project tag. Here the tags only label the ticket: the project's tag rules (owner/status/agent routing) are not applied to a public report while it awaits approval.
|
|
4481
4477
|
*/
|
|
4482
|
-
tags?: Array<
|
|
4478
|
+
tags?: Array<TagName>;
|
|
4483
4479
|
/**
|
|
4484
4480
|
* Email of the reporter, or `null`.
|
|
4485
4481
|
*/
|
|
@@ -4498,6 +4494,10 @@ type CreatePublicFeatureRequestRequest = {
|
|
|
4498
4494
|
context?: {
|
|
4499
4495
|
[key: string]: unknown;
|
|
4500
4496
|
} | null;
|
|
4497
|
+
/**
|
|
4498
|
+
* Caller-chosen dedupe identity for this request, stored on the ticket. Behaves exactly as on `POST /ops/bug`: a repeat carrying the same key refreshes the open ticket already holding it (fields overwritten, a "re-triggered" comment appended) and returns `deduped: true` with `updated: true`, instead of filing a second one.
|
|
4499
|
+
*/
|
|
4500
|
+
dedupKey?: string;
|
|
4501
4501
|
/**
|
|
4502
4502
|
* Where this request's completion notification lands.
|
|
4503
4503
|
*/
|
|
@@ -4792,6 +4792,10 @@ type AckOpsItemRequest = {
|
|
|
4792
4792
|
* The agent-run session id (e.g. Claude's `session_01…`), so the dashboard can deep-link to the exact run page. Omit when the harness has no session id.
|
|
4793
4793
|
*/
|
|
4794
4794
|
sessionId?: string;
|
|
4795
|
+
/**
|
|
4796
|
+
* Whether an AI ack may FIRE the agent's connected trigger. Default `true`: an ack naming a connected agent, with no `sessionId`, starts a new provider run of that agent. Pass `false` to only record the ack — claim the item and open the run record — without starting anything, e.g. when you ARE that agent working the item yourself and have no session id to pass. Ignored on a human ack.
|
|
4797
|
+
*/
|
|
4798
|
+
launch?: boolean;
|
|
4795
4799
|
};
|
|
4796
4800
|
/**
|
|
4797
4801
|
* Response for `POST /api/admin/ops/{handle}/ack` — the opened run.
|
|
@@ -5117,6 +5121,241 @@ type UpdateOpsInvestigationRequest = {
|
|
|
5117
5121
|
*/
|
|
5118
5122
|
sessionId?: string;
|
|
5119
5123
|
};
|
|
5124
|
+
/**
|
|
5125
|
+
* Where a question stands — `open` (waiting on a person), `completed` (answered), or `cancelled` (withdrawn by the asker).
|
|
5126
|
+
*/
|
|
5127
|
+
type OpsQuestionStatus = 'open' | 'completed' | 'cancelled';
|
|
5128
|
+
/**
|
|
5129
|
+
* A person's answer to a question.
|
|
5130
|
+
*/
|
|
5131
|
+
type OpsQuestionAnswer = {
|
|
5132
|
+
/**
|
|
5133
|
+
* The option labels the person picked (empty when they only answered "Other").
|
|
5134
|
+
*/
|
|
5135
|
+
selected: Array<string>;
|
|
5136
|
+
/**
|
|
5137
|
+
* The free-text "Other" answer, or `null`.
|
|
5138
|
+
*/
|
|
5139
|
+
other: string | null;
|
|
5140
|
+
};
|
|
5141
|
+
/**
|
|
5142
|
+
* How the answer gets back to the asker — `resume` re-fires the asking run's trigger connector on the item once every question that run asked is answered; `poll` fires nothing and the asker reads `GET .../questions`.
|
|
5143
|
+
*/
|
|
5144
|
+
type OpsQuestionDelivery = 'resume' | 'poll';
|
|
5145
|
+
/**
|
|
5146
|
+
* One structured question on a queue item and, once answered, its answer.
|
|
5147
|
+
*/
|
|
5148
|
+
type OpsQuestion = {
|
|
5149
|
+
/**
|
|
5150
|
+
* Question id.
|
|
5151
|
+
*/
|
|
5152
|
+
id: string;
|
|
5153
|
+
/**
|
|
5154
|
+
* The queue item the question hangs off.
|
|
5155
|
+
*/
|
|
5156
|
+
feedbackId: string;
|
|
5157
|
+
/**
|
|
5158
|
+
* Short chip label for the question.
|
|
5159
|
+
*/
|
|
5160
|
+
header: string;
|
|
5161
|
+
/**
|
|
5162
|
+
* The full question (markdown).
|
|
5163
|
+
*/
|
|
5164
|
+
question: string;
|
|
5165
|
+
/**
|
|
5166
|
+
* The offered choices, in order.
|
|
5167
|
+
*/
|
|
5168
|
+
options: Array<{
|
|
5169
|
+
/**
|
|
5170
|
+
* The option's display text.
|
|
5171
|
+
*/
|
|
5172
|
+
label: string;
|
|
5173
|
+
/**
|
|
5174
|
+
* What picking the option means, or `null`.
|
|
5175
|
+
*/
|
|
5176
|
+
description: string | null;
|
|
5177
|
+
}>;
|
|
5178
|
+
/**
|
|
5179
|
+
* Whether several options may be picked.
|
|
5180
|
+
*/
|
|
5181
|
+
multiSelect: boolean;
|
|
5182
|
+
status: OpsQuestionStatus;
|
|
5183
|
+
/**
|
|
5184
|
+
* The person's answer, or `null` while the question is open (or was withdrawn).
|
|
5185
|
+
*/
|
|
5186
|
+
answer: OpsQuestionAnswer | null;
|
|
5187
|
+
/**
|
|
5188
|
+
* Email of the person who answered, or `null`.
|
|
5189
|
+
*/
|
|
5190
|
+
answeredBy: string | null;
|
|
5191
|
+
/**
|
|
5192
|
+
* ISO-8601 timestamp of the answer, or `null`.
|
|
5193
|
+
*/
|
|
5194
|
+
answeredAt: string | null;
|
|
5195
|
+
/**
|
|
5196
|
+
* The agent that asked, or `null` (asked by a person or an unattributed key).
|
|
5197
|
+
*/
|
|
5198
|
+
agent: 'jarvis' | 'claude' | 'cursor' | 'copilot' | 'jules' | null;
|
|
5199
|
+
/**
|
|
5200
|
+
* Email of the person who asked, when a human asked, or `null`.
|
|
5201
|
+
*/
|
|
5202
|
+
askedBy: string | null;
|
|
5203
|
+
/**
|
|
5204
|
+
* The run (investigation record id) the question was asked under, or `null`.
|
|
5205
|
+
*/
|
|
5206
|
+
runId: string | null;
|
|
5207
|
+
delivery: OpsQuestionDelivery;
|
|
5208
|
+
/**
|
|
5209
|
+
* ISO-8601 timestamp the answer was re-delivered to the asking run (`resume` only), or `null`.
|
|
5210
|
+
*/
|
|
5211
|
+
deliveredAt: string | null;
|
|
5212
|
+
/**
|
|
5213
|
+
* Why a `resume` re-delivery failed, or `null`.
|
|
5214
|
+
*/
|
|
5215
|
+
deliveryError: string | null;
|
|
5216
|
+
/**
|
|
5217
|
+
* ISO-8601 creation timestamp.
|
|
5218
|
+
*/
|
|
5219
|
+
createdAt: string;
|
|
5220
|
+
/**
|
|
5221
|
+
* ISO-8601 last-update timestamp.
|
|
5222
|
+
*/
|
|
5223
|
+
updatedAt: string;
|
|
5224
|
+
};
|
|
5225
|
+
/**
|
|
5226
|
+
* Response for `GET /api/admin/ops/{handle}/questions` — the item's questions, newest first (max 100).
|
|
5227
|
+
*/
|
|
5228
|
+
type ListOpsQuestionsResponse = Array<OpsQuestion>;
|
|
5229
|
+
/**
|
|
5230
|
+
* One choice offered by a question — rendered as a radio, or a checkbox when the question is `multiSelect`.
|
|
5231
|
+
*/
|
|
5232
|
+
type OpsQuestionOption = {
|
|
5233
|
+
/**
|
|
5234
|
+
* The option's display text — short (1–5 words). Answers name options by this label.
|
|
5235
|
+
*/
|
|
5236
|
+
label: string;
|
|
5237
|
+
/**
|
|
5238
|
+
* What picking this option means — its trade-off or consequence.
|
|
5239
|
+
*/
|
|
5240
|
+
description?: string;
|
|
5241
|
+
};
|
|
5242
|
+
/**
|
|
5243
|
+
* One question to ask — the `AskUserQuestion` shape.
|
|
5244
|
+
*/
|
|
5245
|
+
type AskOpsQuestionInput = {
|
|
5246
|
+
/**
|
|
5247
|
+
* Very short chip label for the question (max 24 chars), e.g. `Auth method`.
|
|
5248
|
+
*/
|
|
5249
|
+
header: string;
|
|
5250
|
+
/**
|
|
5251
|
+
* The complete question, ending with a question mark (markdown).
|
|
5252
|
+
*/
|
|
5253
|
+
question: string;
|
|
5254
|
+
/**
|
|
5255
|
+
* 2–4 distinct choices. Do not add an "Other" option — a free-text answer is always offered.
|
|
5256
|
+
*/
|
|
5257
|
+
options: Array<OpsQuestionOption>;
|
|
5258
|
+
/**
|
|
5259
|
+
* `true` lets the person pick several options (checkboxes); `false` (the default) exactly one (radios).
|
|
5260
|
+
*/
|
|
5261
|
+
multiSelect?: boolean;
|
|
5262
|
+
};
|
|
5263
|
+
/**
|
|
5264
|
+
* Body for `POST /api/admin/ops/{handle}/questions`.
|
|
5265
|
+
*/
|
|
5266
|
+
type AskOpsQuestionsRequest = {
|
|
5267
|
+
/**
|
|
5268
|
+
* 1–4 questions to ask at once.
|
|
5269
|
+
*/
|
|
5270
|
+
questions: Array<AskOpsQuestionInput>;
|
|
5271
|
+
/**
|
|
5272
|
+
* The run (investigation record id) you are working the item under — the `runId` an ack or a launch handed you. Ties the questions to that run so a `resume` delivery continues it.
|
|
5273
|
+
*/
|
|
5274
|
+
runId?: string;
|
|
5275
|
+
/**
|
|
5276
|
+
* The agent type asking — pass your own type when you are a coding agent. Defaults to the run's agent.
|
|
5277
|
+
*/
|
|
5278
|
+
agent?: 'jarvis' | 'claude' | 'cursor' | 'copilot' | 'jules';
|
|
5279
|
+
delivery?: OpsQuestionDelivery;
|
|
5280
|
+
};
|
|
5281
|
+
/**
|
|
5282
|
+
* Response for `POST /api/admin/ops/{handle}/questions` — the created questions, in the order asked.
|
|
5283
|
+
*/
|
|
5284
|
+
type AskOpsQuestionsResponse = Array<OpsQuestion>;
|
|
5285
|
+
/**
|
|
5286
|
+
* Body for `POST /api/admin/ops/{handle}/questions/{questionId}/answer` — pick option labels, write a free-text answer, or both (multi-select only).
|
|
5287
|
+
*/
|
|
5288
|
+
type AnswerOpsQuestionRequest = {
|
|
5289
|
+
/**
|
|
5290
|
+
* The option labels picked — exactly one for a single-select question (unless answering only with `other`), one or more for `multiSelect`.
|
|
5291
|
+
*/
|
|
5292
|
+
selected?: Array<string>;
|
|
5293
|
+
/**
|
|
5294
|
+
* A free-text "Other" answer.
|
|
5295
|
+
*/
|
|
5296
|
+
other?: string;
|
|
5297
|
+
};
|
|
5298
|
+
/**
|
|
5299
|
+
* What a QA note is — `narrowing` (only part of the bug still fails), `clarification` (changes what "fixed" means), `verification` (a pass/fail verdict on a fix) or `correction` (withdraws an earlier framing).
|
|
5300
|
+
*/
|
|
5301
|
+
type OpsQaNoteKind = 'narrowing' | 'clarification' | 'verification' | 'correction';
|
|
5302
|
+
/**
|
|
5303
|
+
* The outcome a `verification` note records.
|
|
5304
|
+
*/
|
|
5305
|
+
type OpsQaNoteVerdict = 'pass' | 'fail';
|
|
5306
|
+
/**
|
|
5307
|
+
* One typed, append-only QA note on a queue item.
|
|
5308
|
+
*/
|
|
5309
|
+
type OpsQaNote = {
|
|
5310
|
+
/**
|
|
5311
|
+
* Note id.
|
|
5312
|
+
*/
|
|
5313
|
+
id: string;
|
|
5314
|
+
/**
|
|
5315
|
+
* The queue item the note hangs off.
|
|
5316
|
+
*/
|
|
5317
|
+
feedbackId: string;
|
|
5318
|
+
kind: OpsQaNoteKind;
|
|
5319
|
+
/**
|
|
5320
|
+
* The pass/fail verdict of a `verification` note; `null` for every other kind.
|
|
5321
|
+
*/
|
|
5322
|
+
verdict: OpsQaNoteVerdict | null;
|
|
5323
|
+
/**
|
|
5324
|
+
* The note (markdown) — for a `verification`, what was checked.
|
|
5325
|
+
*/
|
|
5326
|
+
body: string;
|
|
5327
|
+
/**
|
|
5328
|
+
* Email of the person (or the key's actor) who wrote the note, or `null` when an agent wrote it.
|
|
5329
|
+
*/
|
|
5330
|
+
authorEmail: string | null;
|
|
5331
|
+
/**
|
|
5332
|
+
* The agent type that wrote the note (QA automation), or `null` for a person.
|
|
5333
|
+
*/
|
|
5334
|
+
authorAgent: 'jarvis' | 'claude' | 'cursor' | 'copilot' | 'jules' | null;
|
|
5335
|
+
/**
|
|
5336
|
+
* ISO-8601 creation timestamp.
|
|
5337
|
+
*/
|
|
5338
|
+
createdAt: string;
|
|
5339
|
+
};
|
|
5340
|
+
/**
|
|
5341
|
+
* Response for `GET /api/admin/ops/{handle}/qa-notes` — the item's QA notes, newest first (max 200).
|
|
5342
|
+
*/
|
|
5343
|
+
type ListOpsQaNotesResponse = Array<OpsQaNote>;
|
|
5344
|
+
/**
|
|
5345
|
+
* Body for `POST /api/admin/ops/{handle}/qa-notes`. A `verification` note requires `verdict`; every other kind rejects it.
|
|
5346
|
+
*/
|
|
5347
|
+
type CreateOpsQaNoteRequest = {
|
|
5348
|
+
kind: OpsQaNoteKind;
|
|
5349
|
+
/**
|
|
5350
|
+
* The note (markdown).
|
|
5351
|
+
*/
|
|
5352
|
+
body: string;
|
|
5353
|
+
verdict?: OpsQaNoteVerdict;
|
|
5354
|
+
/**
|
|
5355
|
+
* The agent type writing the note — pass your own type when you are QA automation. Omitted, the note is attributed to the caller's identity.
|
|
5356
|
+
*/
|
|
5357
|
+
agent?: 'jarvis' | 'claude' | 'cursor' | 'copilot' | 'jules';
|
|
5358
|
+
};
|
|
5120
5359
|
/**
|
|
5121
5360
|
* One connected, assignable AI agent (an authenticated trigger connector).
|
|
5122
5361
|
*/
|
|
@@ -5272,6 +5511,33 @@ type ListSlackChannelsResponse = {
|
|
|
5272
5511
|
isPrivate?: boolean;
|
|
5273
5512
|
}>;
|
|
5274
5513
|
};
|
|
5514
|
+
/**
|
|
5515
|
+
* What a `composite` rule is a boolean over. `rules` are sibling alert-rule ids in the same project and `op` is how their states combine. A child's state is what the current pass concluded about it, falling back to whether it has an open instance — so a composite still means something on a tick where a child could not be evaluated, which is exactly the tick a "two of these are broken at once" rule is for. One level deep: a child may not itself be composite.
|
|
5516
|
+
*/
|
|
5517
|
+
type AlertCompositeSpec = {
|
|
5518
|
+
/**
|
|
5519
|
+
* How the children's states combine.
|
|
5520
|
+
*/
|
|
5521
|
+
op: 'and' | 'or';
|
|
5522
|
+
/**
|
|
5523
|
+
* Ids of the alert rules to combine. Stored sorted and de-duplicated.
|
|
5524
|
+
*/
|
|
5525
|
+
rules: Array<string>;
|
|
5526
|
+
};
|
|
5527
|
+
/**
|
|
5528
|
+
* Delivery target for a rule's alert; `null` = use the project default. The `NotificationTarget` shape plus the in-app switch.
|
|
5529
|
+
*/
|
|
5530
|
+
type AlertRuleNotify = {
|
|
5531
|
+
slackChannel?: {
|
|
5532
|
+
id: string;
|
|
5533
|
+
name: string;
|
|
5534
|
+
} | null;
|
|
5535
|
+
email?: string | null;
|
|
5536
|
+
/**
|
|
5537
|
+
* Whether the in-app notification (the dashboard bell and Home) is recorded when the rule fires. Absent or `null` means on; `false` skips it for this rule.
|
|
5538
|
+
*/
|
|
5539
|
+
inApp?: boolean | null;
|
|
5540
|
+
} | null;
|
|
5275
5541
|
type ListAlertRulesResponse = Array<{
|
|
5276
5542
|
/**
|
|
5277
5543
|
* Stable opaque alert-rule id.
|
|
@@ -5290,17 +5556,81 @@ type ListAlertRulesResponse = Array<{
|
|
|
5290
5556
|
*/
|
|
5291
5557
|
metricName: string | null;
|
|
5292
5558
|
/**
|
|
5293
|
-
*
|
|
5559
|
+
* What the rule watches for. `normal` compares the metric's own value — against `threshold` via `comparator`, or against the [`rangeMin`, `rangeMax`] corridor it must stay inside. `anomaly` compares it against ITS OWN seasonal baseline in sigmas, which is the same fit a chart draws as the band. `outliers` compares each `by()` group against its peers in the same bucket, so it needs a grouped metric. `no_data` fires when the metric records nothing at all for `noDataMinutes` — a count of zero is not silence, and the two are distinguished by the reader's presence columns. `composite` is a boolean over OTHER rules' current state and watches no metric of its own.
|
|
5560
|
+
*/
|
|
5561
|
+
kind: 'normal' | 'anomaly' | 'outliers' | 'no_data' | 'composite';
|
|
5562
|
+
/**
|
|
5563
|
+
* How the metric value is compared to the threshold (gt/gte/lt/lte). Read only by a `normal` rule with no range set.
|
|
5294
5564
|
*/
|
|
5295
5565
|
comparator: 'gt' | 'gte' | 'lt' | 'lte';
|
|
5296
5566
|
/**
|
|
5297
|
-
* Threshold the metric value is compared against.
|
|
5567
|
+
* Threshold the metric value is compared against. Read only by a `normal` rule with no range set.
|
|
5298
5568
|
*/
|
|
5299
5569
|
threshold: number;
|
|
5570
|
+
/**
|
|
5571
|
+
* Lower edge of the corridor a `normal` rule must stay inside; `null` if the rule is judged by comparator and threshold.
|
|
5572
|
+
*/
|
|
5573
|
+
rangeMin: number | null;
|
|
5574
|
+
/**
|
|
5575
|
+
* Upper edge of the corridor a `normal` rule must stay inside; `null` if the rule is judged by comparator and threshold.
|
|
5576
|
+
*/
|
|
5577
|
+
rangeMax: number | null;
|
|
5578
|
+
/**
|
|
5579
|
+
* How far from normal is too far, for `anomaly` and `outliers`, in sigma-equivalents. `null` takes the default of 3, which is also the width of the band a chart draws.
|
|
5580
|
+
*/
|
|
5581
|
+
sigma: number | null;
|
|
5582
|
+
/**
|
|
5583
|
+
* Which side of the baseline an `anomaly` or `outliers` rule watches. `null` means either.
|
|
5584
|
+
*/
|
|
5585
|
+
direction: 'above' | 'below' | 'either' | null;
|
|
5586
|
+
/**
|
|
5587
|
+
* Whether the rule is judged by ACCUMULATED departure rather than bucket by bucket. `anomaly` and `outliers` only.
|
|
5588
|
+
*/
|
|
5589
|
+
sustained: boolean;
|
|
5590
|
+
/**
|
|
5591
|
+
* The milder bound, in the same unit the kind judges in. `null` means the rule has one level.
|
|
5592
|
+
*/
|
|
5593
|
+
warnThreshold: number | null;
|
|
5594
|
+
/**
|
|
5595
|
+
* What the metric must get back to before a live alert closes. `null` means no hysteresis — the firing bound clears it.
|
|
5596
|
+
*/
|
|
5597
|
+
recoveryThreshold: number | null;
|
|
5598
|
+
/**
|
|
5599
|
+
* Whether the rule fires one alert per `by()` group rather than one for the whole metric.
|
|
5600
|
+
*/
|
|
5601
|
+
groupAlerts: boolean;
|
|
5602
|
+
/**
|
|
5603
|
+
* How many groups this rule may alert on at once. `null` takes the shipped cap of 10.
|
|
5604
|
+
*/
|
|
5605
|
+
maxGroups: number | null;
|
|
5606
|
+
/**
|
|
5607
|
+
* How long the silence must last for a `no_data` rule. `null` on every other kind.
|
|
5608
|
+
*/
|
|
5609
|
+
noDataMinutes: number | null;
|
|
5610
|
+
/**
|
|
5611
|
+
* How far behind live the evaluated window is held, on top of the reader's settle grace. `null` means no extra delay.
|
|
5612
|
+
*/
|
|
5613
|
+
delayMinutes: number | null;
|
|
5614
|
+
/**
|
|
5615
|
+
* Close a live instance that has gone this long without a fresh verdict. `null` never auto-resolves.
|
|
5616
|
+
*/
|
|
5617
|
+
autoResolveMinutes: number | null;
|
|
5618
|
+
/**
|
|
5619
|
+
* For a `composite` rule, the child rules and how their states combine. `null` on every other kind.
|
|
5620
|
+
*/
|
|
5621
|
+
composite: AlertCompositeSpec | null;
|
|
5300
5622
|
/**
|
|
5301
5623
|
* Lookback window (hours) the metric is aggregated over.
|
|
5302
5624
|
*/
|
|
5303
5625
|
windowHours: number;
|
|
5626
|
+
/**
|
|
5627
|
+
* Width of the buckets the window is split into, in minutes. `null` divides the window into 12 equal buckets.
|
|
5628
|
+
*/
|
|
5629
|
+
bucketMinutes: number | null;
|
|
5630
|
+
/**
|
|
5631
|
+
* How many buckets must breach before the rule fires. `null` means every bucket that had data.
|
|
5632
|
+
*/
|
|
5633
|
+
requiredBuckets: number | null;
|
|
5304
5634
|
/**
|
|
5305
5635
|
* Severity of the raised alert.
|
|
5306
5636
|
*/
|
|
@@ -5309,7 +5639,7 @@ type ListAlertRulesResponse = Array<{
|
|
|
5309
5639
|
* Whether the rule is evaluated by the cron.
|
|
5310
5640
|
*/
|
|
5311
5641
|
enabled: boolean;
|
|
5312
|
-
notify:
|
|
5642
|
+
notify: AlertRuleNotify;
|
|
5313
5643
|
/**
|
|
5314
5644
|
* ISO-8601 timestamp of creation.
|
|
5315
5645
|
*/
|
|
@@ -5329,26 +5659,87 @@ type CreateAlertRuleRequest = {
|
|
|
5329
5659
|
*/
|
|
5330
5660
|
metricId: string;
|
|
5331
5661
|
/**
|
|
5332
|
-
*
|
|
5662
|
+
* What the rule watches for. `normal` compares the metric's own value — against `threshold` via `comparator`, or against the [`rangeMin`, `rangeMax`] corridor it must stay inside. `anomaly` compares it against its own seasonal baseline in sigmas: the same fit a chart draws as the band, so a point outside the drawn band is exactly a breaching bucket, and one metric can back rules at several sigmas. `outliers` compares each `by()` group against its peers in the same bucket and is refused on a metric with no grouping.
|
|
5333
5663
|
*/
|
|
5334
|
-
|
|
5664
|
+
kind?: 'normal' | 'anomaly' | 'outliers' | 'no_data' | 'composite';
|
|
5335
5665
|
/**
|
|
5336
|
-
*
|
|
5666
|
+
* How the metric value is compared to the threshold. Read only by a `normal` rule with no range set.
|
|
5337
5667
|
*/
|
|
5338
|
-
|
|
5668
|
+
comparator?: 'gt' | 'gte' | 'lt' | 'lte';
|
|
5669
|
+
/**
|
|
5670
|
+
* Threshold the metric value is compared against. Required for a `normal` rule unless a range is given; ignored by every other kind.
|
|
5671
|
+
*/
|
|
5672
|
+
threshold?: number;
|
|
5673
|
+
/**
|
|
5674
|
+
* Lower edge of the corridor the metric must stay inside. Setting either bound switches a `normal` rule off `comparator`/`threshold` and onto the range, which breaches on LEAVING it in either direction. One bound alone is a one-sided range.
|
|
5675
|
+
*/
|
|
5676
|
+
rangeMin?: number | null;
|
|
5677
|
+
/**
|
|
5678
|
+
* Upper edge of the corridor the metric must stay inside.
|
|
5679
|
+
*/
|
|
5680
|
+
rangeMax?: number | null;
|
|
5681
|
+
/**
|
|
5682
|
+
* How far from normal is too far, for `anomaly` and `outliers`, in sigma-equivalents. Omit (or `null`) for 3, which is also the half-width of the band a chart draws — so an unconfigured rule fires exactly where the picture says it would.
|
|
5683
|
+
*/
|
|
5684
|
+
sigma?: number | null;
|
|
5685
|
+
/**
|
|
5686
|
+
* Which side of the baseline an `anomaly` or `outliers` rule watches. Omit (or `null`) for either, which is what "is this unusual" means; name a side for a metric that is only bad in one direction.
|
|
5687
|
+
*/
|
|
5688
|
+
direction?: 'above' | 'below' | 'either' | null;
|
|
5689
|
+
/**
|
|
5690
|
+
* Judge the window by ACCUMULATED departure instead of bucket by bucket. The ordinary check asks every bucket to be past `sigma`, which a slow regression never manages: a metric running 1.5σ worse than normal since Tuesday puts no single bucket past 3σ and pages nobody. A sustained rule adds up each bucket's excess over half a sigma and fires once the total passes twice `sigma` — four buckets at 2σ do it, a lone 3σ spike does not. `anomaly` and `outliers` only, and refused alongside `requiredBuckets`: the accumulated bar IS the evidence bar, and a second one counted in buckets would silently override it.
|
|
5691
|
+
*/
|
|
5692
|
+
sustained?: boolean;
|
|
5339
5693
|
/**
|
|
5340
5694
|
* Lookback window (hours) the metric is aggregated over. 1–720.
|
|
5341
5695
|
*/
|
|
5342
5696
|
windowHours?: number;
|
|
5343
5697
|
/**
|
|
5344
|
-
*
|
|
5698
|
+
* Width of the buckets the window is split into, in minutes. Omit (or `null`) to divide the window into 12 equal buckets. The rule is judged per bucket, so this is the resolution at which "sustained" is measured — a short bucket asks the condition to hold through finer detail.
|
|
5699
|
+
*/
|
|
5700
|
+
bucketMinutes?: number | null;
|
|
5701
|
+
/**
|
|
5702
|
+
* How many buckets must breach before the rule fires. Omit (or `null`) to require every bucket that had data. Buckets with nothing in them are excluded before this is counted, so on a sparse metric `null` can mean a single bucket — set this to 2 or more where one lone sample must never page.
|
|
5703
|
+
*/
|
|
5704
|
+
requiredBuckets?: number | null;
|
|
5705
|
+
/**
|
|
5706
|
+
* The milder bound — a second level, in the same unit the kind judges in, that raises a quieter alert before the firing level is reached. Must be strictly milder than the level the rule fires at, or it could never fire on its own. Refused on a range rule and on a `sustained` one: neither condition is a single number, so there is nothing to substitute.
|
|
5707
|
+
*/
|
|
5708
|
+
warnThreshold?: number | null;
|
|
5709
|
+
/**
|
|
5710
|
+
* What the metric must get back to before a live alert closes. Without it a metric sitting on its threshold pages and clears once per tick. Must be on the safe side of the firing level, or equal to it. Omit (or `null`) for no hysteresis.
|
|
5711
|
+
*/
|
|
5712
|
+
recoveryThreshold?: number | null;
|
|
5713
|
+
/**
|
|
5714
|
+
* Fire one alert per `by()` group instead of one for the whole metric. The firing key becomes (rule, group), so each group raises, dedupes and recovers on its own. Refused on a metric with no `by()`, and on `no_data` — a group that went silent has no rows left to be missing from.
|
|
5715
|
+
*/
|
|
5716
|
+
groupAlerts?: boolean;
|
|
5717
|
+
/**
|
|
5718
|
+
* How many groups this rule may alert on at once. Omit (or `null`) for 10. Past the cap the worst groups fire and the count of the rest is stated on each ticket — a group set is customer data, and an uncapped rule on `by(user_id)` would file a ticket per user.
|
|
5719
|
+
*/
|
|
5720
|
+
maxGroups?: number | null;
|
|
5721
|
+
/**
|
|
5722
|
+
* For a `no_data` rule: how long the silence must last. Omit (or `null`) for 15 minutes. Five is the floor — below it, ordinary ingest lag empties the trailing bucket and reads as an outage.
|
|
5723
|
+
*/
|
|
5724
|
+
noDataMinutes?: number | null;
|
|
5725
|
+
/**
|
|
5726
|
+
* Hold the evaluated window back this far behind live, on top of the reader's own settle grace. For a metric assembled from a source that lands in batches, whose trailing buckets are legitimately incomplete for longer than the grace covers.
|
|
5727
|
+
*/
|
|
5728
|
+
delayMinutes?: number | null;
|
|
5729
|
+
/**
|
|
5730
|
+
* Close a live instance that has gone this long without a fresh verdict. A rule that cannot reach a verdict deliberately leaves its alert alone, which is right for a tick and wrong for a week. Never closes an instance that is currently breaching. Omit (or `null`) to never auto-resolve.
|
|
5731
|
+
*/
|
|
5732
|
+
autoResolveMinutes?: number | null;
|
|
5733
|
+
composite?: AlertCompositeSpec;
|
|
5734
|
+
/**
|
|
5735
|
+
* Severity of the raised alert. A `warnThreshold` breach opens one step quieter than this.
|
|
5345
5736
|
*/
|
|
5346
5737
|
severity?: 'danger' | 'warn' | 'info';
|
|
5347
5738
|
/**
|
|
5348
5739
|
* Whether the rule is evaluated by the cron.
|
|
5349
5740
|
*/
|
|
5350
5741
|
enabled?: boolean;
|
|
5351
|
-
notify?:
|
|
5742
|
+
notify?: AlertRuleNotify;
|
|
5352
5743
|
};
|
|
5353
5744
|
type CreateAlertRuleResponse = {
|
|
5354
5745
|
/**
|
|
@@ -5361,12 +5752,70 @@ type DeleteAlertRuleResponse = {
|
|
|
5361
5752
|
};
|
|
5362
5753
|
type UpdateAlertRuleRequest = {
|
|
5363
5754
|
name?: string;
|
|
5755
|
+
kind?: 'normal' | 'anomaly' | 'outliers' | 'no_data' | 'composite';
|
|
5364
5756
|
comparator?: 'gt' | 'gte' | 'lt' | 'lte';
|
|
5365
5757
|
threshold?: number;
|
|
5758
|
+
/**
|
|
5759
|
+
* Lower edge of the corridor; `null` drops it, returning the rule to comparator and threshold when both bounds are gone.
|
|
5760
|
+
*/
|
|
5761
|
+
rangeMin?: number | null;
|
|
5762
|
+
/**
|
|
5763
|
+
* Upper edge of the corridor; `null` drops it.
|
|
5764
|
+
*/
|
|
5765
|
+
rangeMax?: number | null;
|
|
5766
|
+
/**
|
|
5767
|
+
* Sigmas an `anomaly` or `outliers` rule fires at; `null` restores the default of 3.
|
|
5768
|
+
*/
|
|
5769
|
+
sigma?: number | null;
|
|
5770
|
+
/**
|
|
5771
|
+
* Which side an `anomaly` or `outliers` rule watches; `null` restores either.
|
|
5772
|
+
*/
|
|
5773
|
+
direction?: 'above' | 'below' | 'either' | null;
|
|
5774
|
+
/**
|
|
5775
|
+
* Judge the window by accumulated departure rather than bucket by bucket. `anomaly` and `outliers` only; refused alongside `requiredBuckets`.
|
|
5776
|
+
*/
|
|
5777
|
+
sustained?: boolean;
|
|
5778
|
+
/**
|
|
5779
|
+
* The milder bound; `null` drops the warning level, leaving the rule with one.
|
|
5780
|
+
*/
|
|
5781
|
+
warnThreshold?: number | null;
|
|
5782
|
+
/**
|
|
5783
|
+
* What the metric must get back to before a live alert closes; `null` drops the hysteresis.
|
|
5784
|
+
*/
|
|
5785
|
+
recoveryThreshold?: number | null;
|
|
5786
|
+
/**
|
|
5787
|
+
* Fire one alert per `by()` group. Refused on a metric with no grouping.
|
|
5788
|
+
*/
|
|
5789
|
+
groupAlerts?: boolean;
|
|
5790
|
+
/**
|
|
5791
|
+
* How many groups may alert at once; `null` restores the default of 10.
|
|
5792
|
+
*/
|
|
5793
|
+
maxGroups?: number | null;
|
|
5794
|
+
/**
|
|
5795
|
+
* How long a `no_data` rule's silence must last; `null` restores 15 minutes.
|
|
5796
|
+
*/
|
|
5797
|
+
noDataMinutes?: number | null;
|
|
5798
|
+
/**
|
|
5799
|
+
* How far behind live the window is held; `null` drops the delay.
|
|
5800
|
+
*/
|
|
5801
|
+
delayMinutes?: number | null;
|
|
5802
|
+
/**
|
|
5803
|
+
* Close a stale live instance after this long; `null` never auto-resolves.
|
|
5804
|
+
*/
|
|
5805
|
+
autoResolveMinutes?: number | null;
|
|
5806
|
+
composite?: AlertCompositeSpec;
|
|
5366
5807
|
windowHours?: number;
|
|
5808
|
+
/**
|
|
5809
|
+
* Bucket width in minutes; `null` restores the default 12 buckets per window.
|
|
5810
|
+
*/
|
|
5811
|
+
bucketMinutes?: number | null;
|
|
5812
|
+
/**
|
|
5813
|
+
* Buckets that must breach to fire; `null` restores "every bucket that had data".
|
|
5814
|
+
*/
|
|
5815
|
+
requiredBuckets?: number | null;
|
|
5367
5816
|
severity?: 'danger' | 'warn' | 'info';
|
|
5368
5817
|
enabled?: boolean;
|
|
5369
|
-
notify?:
|
|
5818
|
+
notify?: AlertRuleNotify;
|
|
5370
5819
|
};
|
|
5371
5820
|
type UpdateAlertRuleResponse = {
|
|
5372
5821
|
/**
|
|
@@ -5375,13 +5824,15 @@ type UpdateAlertRuleResponse = {
|
|
|
5375
5824
|
id: string;
|
|
5376
5825
|
};
|
|
5377
5826
|
/**
|
|
5378
|
-
* One FIRED alert — a condition the platform observed
|
|
5827
|
+
* One FIRED alert — an INSTANCE of a condition the platform observed, not the rule that defines it (alert *rules* are the `/api/admin/alert-rules` resource). Instances are never filed by hand: the UI (killswitch flips) and the worker (analysis consumer + alerts cron) open them, keyed by `(source, dedupeKey)`, and at most one instance per condition is open at a time — re-raising refreshes the open one, and the condition clearing closes it.
|
|
5828
|
+
*
|
|
5829
|
+
* An instance IS an ops queue item (`/api/admin/ops` with `type: "alert"`) seen through the alert lens: same `id`, `severity` is that item's `priority`, and `status` is its work status projected onto three states. Resolving the queue item and clearing the alert are therefore the same act.
|
|
5379
5830
|
*
|
|
5380
5831
|
* Every field is always present on the wire; nullable fields are `null`, never absent.
|
|
5381
5832
|
*/
|
|
5382
5833
|
type AlertApiRow = {
|
|
5383
5834
|
/**
|
|
5384
|
-
* Stable opaque
|
|
5835
|
+
* Stable opaque instance id — also the id of the ops queue item this instance is.
|
|
5385
5836
|
*/
|
|
5386
5837
|
id: string;
|
|
5387
5838
|
/**
|
|
@@ -5393,11 +5844,11 @@ type AlertApiRow = {
|
|
|
5393
5844
|
*/
|
|
5394
5845
|
ruleId: string | null;
|
|
5395
5846
|
/**
|
|
5396
|
-
* How loud the alert is — `danger` pages, `warn` is the default, `info` is FYI-only.
|
|
5847
|
+
* How loud the alert is — `danger` pages, `warn` is the default, `info` is FYI-only. Severity belongs to the RULE and seeds the instance's queue `priority` (`danger`→`critical`, `warn`→`high`, `info`→`medium`); it is read back from there, so re-prioritising the queue item changes what this reports.
|
|
5397
5848
|
*/
|
|
5398
5849
|
severity: 'danger' | 'warn' | 'info';
|
|
5399
5850
|
/**
|
|
5400
|
-
* Idempotency + reconcile key within `(project, source)` — re-raising the same condition refreshes the
|
|
5851
|
+
* Idempotency + reconcile key within `(project, source)` — re-raising the same condition refreshes the open instance instead of stacking duplicates, and the condition clearing closes it. A later firing of the same condition opens a NEW instance with its own `id`.
|
|
5401
5852
|
*/
|
|
5402
5853
|
dedupeKey: string;
|
|
5403
5854
|
/**
|
|
@@ -5417,11 +5868,11 @@ type AlertApiRow = {
|
|
|
5417
5868
|
*/
|
|
5418
5869
|
observedValue: number | null;
|
|
5419
5870
|
/**
|
|
5420
|
-
* Lifecycle state. `active` means the condition
|
|
5871
|
+
* Lifecycle state, projected from the queue item's work status. `active` means the item is still open, i.e. the condition holds (shown as "Firing" in the UI); `resolved` means it cleared (auto, when the raiser reconciles, or by hand); `dismissed` means a human waved it off (the item is closed `wont_fix`).
|
|
5421
5872
|
*/
|
|
5422
5873
|
status: 'active' | 'resolved' | 'dismissed';
|
|
5423
5874
|
/**
|
|
5424
|
-
* ISO-8601 timestamp the
|
|
5875
|
+
* ISO-8601 timestamp this instance opened — when the condition started firing.
|
|
5425
5876
|
*/
|
|
5426
5877
|
createdAt: string;
|
|
5427
5878
|
/**
|
|
@@ -5456,7 +5907,7 @@ type ListAlertsResponse = Array<AlertApiRow>;
|
|
|
5456
5907
|
*/
|
|
5457
5908
|
type UpdateAlertRequest = {
|
|
5458
5909
|
/**
|
|
5459
|
-
* New lifecycle state. `resolved` / `dismissed` stamp their timestamp; `active` re-opens and clears both.
|
|
5910
|
+
* New lifecycle state, written through to the queue item (`resolved` / `wont_fix` / `open`). `resolved` / `dismissed` stamp their timestamp; `active` re-opens and clears both.
|
|
5460
5911
|
*/
|
|
5461
5912
|
status?: 'active' | 'resolved' | 'dismissed';
|
|
5462
5913
|
/**
|
|
@@ -5636,6 +6087,14 @@ type GetCurrentProjectResponse = {
|
|
|
5636
6087
|
* Whether key-authenticated public ticket creation (`POST /cli/report`) is allowed into this project. Off by default.
|
|
5637
6088
|
*/
|
|
5638
6089
|
allowPublicTickets: boolean | number;
|
|
6090
|
+
/**
|
|
6091
|
+
* Days an `open` tracked error may go unseen before the nightly sweep auto-resolves it. `0` disables auto-close for this project. Ingest reopens a resolved error the moment it recurs, so this never hides a live issue.
|
|
6092
|
+
*/
|
|
6093
|
+
errorAutocloseDays: number;
|
|
6094
|
+
/**
|
|
6095
|
+
* Occurrence count a tracked error must cross before an `error` ticket is auto-filed into the ops queue. Customising it requires a paid plan; unentitled projects always run at the platform default of 10.
|
|
6096
|
+
*/
|
|
6097
|
+
errorTicketMinOccurrences: number;
|
|
5639
6098
|
/**
|
|
5640
6099
|
* Stripe subscription id backing the project's billing, or `null` when unsubscribed.
|
|
5641
6100
|
*/
|
|
@@ -5849,6 +6308,14 @@ type UpdateProjectRequest = {
|
|
|
5849
6308
|
* SRM chi-square p-value below which the run is called invalid.
|
|
5850
6309
|
*/
|
|
5851
6310
|
srmThreshold?: number;
|
|
6311
|
+
/**
|
|
6312
|
+
* Days an `open` tracked error may go unseen before the nightly sweep auto-resolves it. `0` disables auto-close for this project.
|
|
6313
|
+
*/
|
|
6314
|
+
errorAutocloseDays?: number;
|
|
6315
|
+
/**
|
|
6316
|
+
* Occurrence count a tracked error must cross before an `error` ticket is auto-filed into the ops queue. Requires a paid plan — the request is rejected with 403 on a plan without the `ops_auto_error_issues` entitlement.
|
|
6317
|
+
*/
|
|
6318
|
+
errorTicketMinOccurrences?: number;
|
|
5852
6319
|
};
|
|
5853
6320
|
type ListI18nProfilesResponse = Array<{
|
|
5854
6321
|
/**
|
|
@@ -6686,22 +7153,47 @@ type CreateClaudeTriggerRequest = {
|
|
|
6686
7153
|
*/
|
|
6687
7154
|
enabled?: boolean;
|
|
6688
7155
|
};
|
|
7156
|
+
/**
|
|
7157
|
+
* One repo a trigger runs against, with the branch its runs start from.
|
|
7158
|
+
*/
|
|
7159
|
+
type CursorTriggerRepo = {
|
|
7160
|
+
/**
|
|
7161
|
+
* Repo the cloud agent runs against, e.g. `https://github.com/owner/repo`.
|
|
7162
|
+
*/
|
|
7163
|
+
url: string;
|
|
7164
|
+
/**
|
|
7165
|
+
* Optional branch this repo's runs start from. Omit for the repo's default branch.
|
|
7166
|
+
*/
|
|
7167
|
+
startingRef?: string;
|
|
7168
|
+
};
|
|
6689
7169
|
/**
|
|
6690
7170
|
* Non-secret config for a Cursor trigger.
|
|
6691
7171
|
*/
|
|
6692
7172
|
type CursorTriggerConfig = {
|
|
6693
7173
|
/**
|
|
6694
|
-
*
|
|
7174
|
+
* **First** repo the cloud agent runs against, e.g. `https://github.com/owner/repo`. Idempotency key for the connector, and always a mirror of `repos[0].url` when `repos` is supplied.
|
|
6695
7175
|
*/
|
|
6696
7176
|
repoUrl: string;
|
|
6697
7177
|
/**
|
|
6698
|
-
* Optional git ref the run starts from.
|
|
7178
|
+
* Optional git ref the run starts from. Mirrors `repos[0].startingRef`. Pinned onto the Cursor agent at creation, so changing it provisions a replacement agent.
|
|
6699
7179
|
*/
|
|
6700
7180
|
startingRef?: string;
|
|
7181
|
+
/**
|
|
7182
|
+
* Every repo this trigger runs against, each with its own starting branch — Cursor launches ONE agent across the whole set. Omit for a single-repo trigger, which is then described by `repoUrl`/`startingRef` alone; when supplied, the first entry must match them. Changing the set re-provisions the agent (its repos are pinned at creation).
|
|
7183
|
+
*/
|
|
7184
|
+
repos?: Array<CursorTriggerRepo>;
|
|
6701
7185
|
/**
|
|
6702
7186
|
* Shipeasy project id the run targets.
|
|
6703
7187
|
*/
|
|
6704
7188
|
projectId: string;
|
|
7189
|
+
/**
|
|
7190
|
+
* Server-managed. The reusable Cursor cloud agent (`bc-…`) Shipeasy provisions once at connect and then starts every run on. A supplied value is ignored on create; if Cursor stops recognising the id (404), the next fire provisions a replacement and stores it here.
|
|
7191
|
+
*/
|
|
7192
|
+
agentId?: string;
|
|
7193
|
+
/**
|
|
7194
|
+
* Optional standing instruction prepended to every run's prompt — the trigger's base prompt. Lets two triggers on different repos steer their runs differently without changing the `/shipeasy-ops-work` task block.
|
|
7195
|
+
*/
|
|
7196
|
+
fireText?: string;
|
|
6705
7197
|
};
|
|
6706
7198
|
/**
|
|
6707
7199
|
* Create a Cursor cloud-agent trigger. Both keys are required up front (never tokenless). Idempotent by `config.repoUrl`.
|
|
@@ -6725,7 +7217,7 @@ type CreateCursorTriggerRequest = {
|
|
|
6725
7217
|
*/
|
|
6726
7218
|
apiKey: string;
|
|
6727
7219
|
/**
|
|
6728
|
-
* Restricted Shipeasy ops key
|
|
7220
|
+
* Restricted Shipeasy ops key (secret). Sent as the Bearer for the Shipeasy MCP server handed to each run inline — never in the prompt text or the run env. Encrypted; never returned.
|
|
6729
7221
|
*/
|
|
6730
7222
|
opsKey: string;
|
|
6731
7223
|
/**
|
|
@@ -6733,12 +7225,29 @@ type CreateCursorTriggerRequest = {
|
|
|
6733
7225
|
*/
|
|
6734
7226
|
enabled?: boolean;
|
|
6735
7227
|
};
|
|
7228
|
+
/**
|
|
7229
|
+
* One repo a Copilot trigger runs against, with the base branch its tasks branch from.
|
|
7230
|
+
*/
|
|
7231
|
+
type CopilotTriggerRepo = {
|
|
7232
|
+
/**
|
|
7233
|
+
* GitHub repo owner.
|
|
7234
|
+
*/
|
|
7235
|
+
owner: string;
|
|
7236
|
+
/**
|
|
7237
|
+
* GitHub repo name.
|
|
7238
|
+
*/
|
|
7239
|
+
repo: string;
|
|
7240
|
+
/**
|
|
7241
|
+
* Optional base ref this repo's agent task branches from. Omit for the repo's default branch.
|
|
7242
|
+
*/
|
|
7243
|
+
baseRef?: string;
|
|
7244
|
+
};
|
|
6736
7245
|
/**
|
|
6737
7246
|
* Non-secret config for a Copilot trigger.
|
|
6738
7247
|
*/
|
|
6739
7248
|
type CopilotTriggerConfig = {
|
|
6740
7249
|
/**
|
|
6741
|
-
* GitHub repo owner. Together with `repo` forms the connector's idempotency key (`owner/repo`).
|
|
7250
|
+
* **First** GitHub repo owner. Together with `repo` forms the connector's idempotency key (`owner/repo`), and both mirror `repos[0]` when `repos` is supplied.
|
|
6742
7251
|
*/
|
|
6743
7252
|
owner: string;
|
|
6744
7253
|
/**
|
|
@@ -6746,13 +7255,21 @@ type CopilotTriggerConfig = {
|
|
|
6746
7255
|
*/
|
|
6747
7256
|
repo: string;
|
|
6748
7257
|
/**
|
|
6749
|
-
* Optional base ref the agent branches from.
|
|
7258
|
+
* Optional base ref the agent branches from. Mirrors `repos[0].baseRef`.
|
|
6750
7259
|
*/
|
|
6751
7260
|
baseRef?: string;
|
|
7261
|
+
/**
|
|
7262
|
+
* Every repo this trigger runs against, each with its own base branch. GitHub's agent-tasks API is per-repo, so ONE fire starts one task per entry. Omit for a single-repo trigger, which is then described by `owner`/`repo`/`baseRef` alone; when supplied, the first entry must match them.
|
|
7263
|
+
*/
|
|
7264
|
+
repos?: Array<CopilotTriggerRepo>;
|
|
6752
7265
|
/**
|
|
6753
7266
|
* Shipeasy project id the run targets.
|
|
6754
7267
|
*/
|
|
6755
7268
|
projectId: string;
|
|
7269
|
+
/**
|
|
7270
|
+
* Optional standing instruction prepended to every run's prompt — the trigger's base prompt. Lets two triggers on different repos steer their runs differently without changing the `/shipeasy-ops-work` task block.
|
|
7271
|
+
*/
|
|
7272
|
+
fireText?: string;
|
|
6756
7273
|
};
|
|
6757
7274
|
/**
|
|
6758
7275
|
* Create a GitHub Copilot coding-agent trigger. Idempotent by `config.owner/config.repo`.
|
|
@@ -6796,6 +7313,10 @@ type JulesTriggerConfig = {
|
|
|
6796
7313
|
* Shipeasy project id the run targets.
|
|
6797
7314
|
*/
|
|
6798
7315
|
projectId: string;
|
|
7316
|
+
/**
|
|
7317
|
+
* Optional standing instruction prepended to every run's prompt — the trigger's base prompt. Lets two triggers on different repos steer their runs differently without changing the `/shipeasy-ops-work` task block.
|
|
7318
|
+
*/
|
|
7319
|
+
fireText?: string;
|
|
6799
7320
|
};
|
|
6800
7321
|
/**
|
|
6801
7322
|
* Create a Google Jules trigger. Both keys are required up front. Idempotent by `config.source`.
|
|
@@ -6932,7 +7453,7 @@ type UpdateClaudeTriggerRequest = {
|
|
|
6932
7453
|
token?: string;
|
|
6933
7454
|
};
|
|
6934
7455
|
/**
|
|
6935
|
-
* Per-provider PATCH body for editing an existing `cursor_trigger` connector. `config` replaces the stored config wholesale
|
|
7456
|
+
* Per-provider PATCH body for editing an existing `cursor_trigger` connector. `config` replaces the stored config wholesale, except for the server-managed keys: the provisioned `agentId` is carried over (and dropped, so a replacement agent is provisioned, when `repoUrl`/`startingRef` change), as is the last-run pointer. `name` and either credential are optional (a supplied credential rotates just that key).
|
|
6936
7457
|
*/
|
|
6937
7458
|
type UpdateCursorTriggerRequest = {
|
|
6938
7459
|
/**
|
|
@@ -7053,6 +7574,10 @@ type KeyRecord = {
|
|
|
7053
7574
|
* Human label for the key. `null` for unnamed dashboard mints; programmatic mints auto-name themselves.
|
|
7054
7575
|
*/
|
|
7055
7576
|
name: string | null;
|
|
7577
|
+
/**
|
|
7578
|
+
* Free-text note recording what the key is for (the service that holds it, the rotation owner, the ticket it was minted under). Display only — `null` unless someone set it via `PATCH /api/admin/keys/{id}`.
|
|
7579
|
+
*/
|
|
7580
|
+
description: string | null;
|
|
7056
7581
|
/**
|
|
7057
7582
|
* Permission strings recorded on the key for audit/display, or `null` when none were set.
|
|
7058
7583
|
*/
|
|
@@ -7061,6 +7586,10 @@ type KeyRecord = {
|
|
|
7061
7586
|
* Last 4 characters of the raw token, so the dashboard mask is matchable against the held key. `null` for keys minted before this column.
|
|
7062
7587
|
*/
|
|
7063
7588
|
last4: string | null;
|
|
7589
|
+
/**
|
|
7590
|
+
* Where the key was minted. `cli` (a signed-in CLI session from device auth), `mobile` (a mobile app login), `dashboard` (the "New API key" dialog) or `api` (minted with another key — CLI, MCP, agents). Set at mint time; keys that predate the column were backfilled from their label, defaulting to `dashboard`.
|
|
7591
|
+
*/
|
|
7592
|
+
origin: 'cli' | 'mobile' | 'dashboard' | 'api';
|
|
7064
7593
|
};
|
|
7065
7594
|
/**
|
|
7066
7595
|
* One page of API keys plus a keyset `next_cursor` (ordered `created_at desc, id desc`).
|
|
@@ -7124,6 +7653,23 @@ type CreateKeyResponse = {
|
|
|
7124
7653
|
*/
|
|
7125
7654
|
expires_at: string | null;
|
|
7126
7655
|
};
|
|
7656
|
+
/**
|
|
7657
|
+
* Body for `PATCH /api/admin/keys/{id}`. Only the key's **label** is editable — `name` and `description`.
|
|
7658
|
+
*
|
|
7659
|
+
* Everything that gives a key its authority (`type`, `env`, `scopes`, `expires_at`) is fixed at mint: those are the isolation boundary the worker derives the read env and permissions from, so changing them would silently re-point a credential that is already deployed. Rotate instead — mint a replacement and revoke the old key.
|
|
7660
|
+
*
|
|
7661
|
+
* Omitted fields are left untouched; send `null` to clear one.
|
|
7662
|
+
*/
|
|
7663
|
+
type UpdateKeyRequest = {
|
|
7664
|
+
/**
|
|
7665
|
+
* New human label, or `null` to clear it. Same 160-char budget as create — provenance labels are composed, not typed.
|
|
7666
|
+
*/
|
|
7667
|
+
name?: string | null;
|
|
7668
|
+
/**
|
|
7669
|
+
* New free-text note, or `null` to clear it.
|
|
7670
|
+
*/
|
|
7671
|
+
description?: string | null;
|
|
7672
|
+
};
|
|
7127
7673
|
/**
|
|
7128
7674
|
* Confirms the key is revoked. Idempotent — revoking an already-revoked key returns the same shape.
|
|
7129
7675
|
*/
|
|
@@ -7141,7 +7687,7 @@ type SearchHit = {
|
|
|
7141
7687
|
/**
|
|
7142
7688
|
* Resource family — drives the result group + icon in the palette. (`member` hits are surfaced first.)
|
|
7143
7689
|
*/
|
|
7144
|
-
type: 'member' | 'gate' | 'experiment' | 'config' | 'killswitch' | 'metric';
|
|
7690
|
+
type: 'member' | 'gate' | 'experiment' | 'config' | 'killswitch' | 'metric' | 'ops';
|
|
7145
7691
|
/**
|
|
7146
7692
|
* Stable identifier used to deep-link into the row's detail pane. For `member` hits this is the teammate's email; for everything else it is the resource id.
|
|
7147
7693
|
*/
|
|
@@ -7165,6 +7711,54 @@ type SearchHit = {
|
|
|
7165
7711
|
type SearchResponse = {
|
|
7166
7712
|
hits: Array<SearchHit>;
|
|
7167
7713
|
};
|
|
7714
|
+
type Tag = {
|
|
7715
|
+
/**
|
|
7716
|
+
* Stable opaque tag id.
|
|
7717
|
+
*/
|
|
7718
|
+
id: string;
|
|
7719
|
+
/**
|
|
7720
|
+
* Display name — also the tag's identity, unique case-insensitively within the project.
|
|
7721
|
+
*/
|
|
7722
|
+
name: string;
|
|
7723
|
+
};
|
|
7724
|
+
/**
|
|
7725
|
+
* The project's tags, sorted by name.
|
|
7726
|
+
*/
|
|
7727
|
+
type ListTagsResponse = Array<Tag>;
|
|
7728
|
+
/**
|
|
7729
|
+
* The kind of item a tag set hangs off: `ops` (any queue item — bug, feature request, error/alert/measure-plan ticket), `flag` (feature gate), `config` (dynamic config), `killswitch`, `metric`, `error` (tracked error group), `alert_rule`, or `experiment`.
|
|
7730
|
+
*/
|
|
7731
|
+
type TaggableEntityType = 'ops' | 'flag' | 'config' | 'killswitch' | 'metric' | 'error' | 'alert_rule' | 'experiment';
|
|
7732
|
+
type EntityTagsResponse = {
|
|
7733
|
+
entityType: TaggableEntityType;
|
|
7734
|
+
/**
|
|
7735
|
+
* The item's canonical id (the handle you passed, resolved).
|
|
7736
|
+
*/
|
|
7737
|
+
entityId: string;
|
|
7738
|
+
/**
|
|
7739
|
+
* The tag names now attached to the item, sorted by name.
|
|
7740
|
+
*/
|
|
7741
|
+
tags: Array<string>;
|
|
7742
|
+
};
|
|
7743
|
+
type SetEntityTagsRequest = {
|
|
7744
|
+
/**
|
|
7745
|
+
* The complete tag set the item should carry — tags not listed are detached. Names are get-or-created (a new name mints a project tag), deduped case-insensitively; `[]` clears every tag.
|
|
7746
|
+
*/
|
|
7747
|
+
tags: Array<TagName>;
|
|
7748
|
+
};
|
|
7749
|
+
/**
|
|
7750
|
+
* Incremental tag edit — pass `add`, `remove`, or both. Every other tag on the item is left as is.
|
|
7751
|
+
*/
|
|
7752
|
+
type UpdateEntityTagsRequest = {
|
|
7753
|
+
/**
|
|
7754
|
+
* Tag names to attach (get-or-created by name, case-insensitive). Already-attached names are a no-op.
|
|
7755
|
+
*/
|
|
7756
|
+
add?: Array<TagName>;
|
|
7757
|
+
/**
|
|
7758
|
+
* Tag names to detach (case-insensitive). Names the item doesn't carry are a no-op. A name in both lists is removed.
|
|
7759
|
+
*/
|
|
7760
|
+
remove?: Array<TagName>;
|
|
7761
|
+
};
|
|
7168
7762
|
/**
|
|
7169
7763
|
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
7170
7764
|
*/
|
|
@@ -10873,19 +11467,31 @@ type ListOpsItemsData = {
|
|
|
10873
11467
|
path?: never;
|
|
10874
11468
|
query?: {
|
|
10875
11469
|
/**
|
|
10876
|
-
* Filter by item type
|
|
11470
|
+
* Filter by item type, or `all` (the default). Every type a returned item can carry is filterable, including the auto-filed ones.
|
|
11471
|
+
*/
|
|
11472
|
+
type?: 'bug' | 'feature_request' | 'error' | 'alert' | 'measure_plan' | 'all';
|
|
11473
|
+
/**
|
|
11474
|
+
* Filter by one lifecycle status, `unresolved` for every status that is not `resolved` or `wont_fix`, or `all` for every status. Defaults to `all` over HTTP; the CLI and MCP tool default to `unresolved`, so pass `all` there to include resolved and won't-fix items. The human-gated holding state (`pending_approval`) is excluded from `unresolved` and `all`, and returned only when requested as the exact status.
|
|
11475
|
+
*/
|
|
11476
|
+
status?: OpsItemStatus | 'unresolved' | 'all';
|
|
11477
|
+
/**
|
|
11478
|
+
* Filter by triage priority, or `all` (the default). Items with no priority set are returned only under `all`.
|
|
10877
11479
|
*/
|
|
10878
|
-
|
|
11480
|
+
priority?: OpsItemPriority | 'all';
|
|
10879
11481
|
/**
|
|
10880
|
-
*
|
|
11482
|
+
* `ready` narrows to the items ready to be picked up right now: status `open`, no open run (nobody has acked it and is still working), and either unowned (no person and no agent) or reopened (sent back to `open` after an earlier run finished). Leave `status` unset with it. `all` (the default) applies no such narrowing.
|
|
10881
11483
|
*/
|
|
10882
|
-
|
|
11484
|
+
scope?: 'all' | 'ready';
|
|
10883
11485
|
/**
|
|
10884
|
-
*
|
|
11486
|
+
* Page size — max items to return (1–500). A page shorter than `limit` is the last one.
|
|
10885
11487
|
*/
|
|
10886
11488
|
limit?: number;
|
|
10887
11489
|
/**
|
|
10888
|
-
*
|
|
11490
|
+
* Number of items to skip before the page starts. Defaults to 0. The order is stable, so `offset += limit` walks the queue page by page.
|
|
11491
|
+
*/
|
|
11492
|
+
offset?: number;
|
|
11493
|
+
/**
|
|
11494
|
+
* Narrow to items owned by one person OR one agent. Matches a person by `users.id`, email, or display name, and an agent by connector id, display name, or kebab-case handle — e.g. `owner=Claude` or `owner=alice@acme.dev`. Case-insensitive exact match.
|
|
10889
11495
|
*/
|
|
10890
11496
|
owner?: string;
|
|
10891
11497
|
};
|
|
@@ -11463,7 +12069,7 @@ type UpdateOpsInvestigationResponses = {
|
|
|
11463
12069
|
200: OpsInvestigation;
|
|
11464
12070
|
};
|
|
11465
12071
|
type UpdateOpsInvestigationResponse = UpdateOpsInvestigationResponses[keyof UpdateOpsInvestigationResponses];
|
|
11466
|
-
type
|
|
12072
|
+
type ListOpsQuestionsData = {
|
|
11467
12073
|
body?: never;
|
|
11468
12074
|
headers?: {
|
|
11469
12075
|
/**
|
|
@@ -11471,11 +12077,21 @@ type ListOpsAgentsData = {
|
|
|
11471
12077
|
*/
|
|
11472
12078
|
'X-Project-Id'?: string;
|
|
11473
12079
|
};
|
|
11474
|
-
path
|
|
11475
|
-
|
|
11476
|
-
|
|
12080
|
+
path: {
|
|
12081
|
+
/**
|
|
12082
|
+
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
12083
|
+
*/
|
|
12084
|
+
handle: ResourceId;
|
|
12085
|
+
};
|
|
12086
|
+
query?: {
|
|
12087
|
+
/**
|
|
12088
|
+
* Filter by question status, or `all` (the default).
|
|
12089
|
+
*/
|
|
12090
|
+
status?: OpsQuestionStatus | 'all';
|
|
12091
|
+
};
|
|
12092
|
+
url: '/api/admin/ops/{handle}/questions';
|
|
11477
12093
|
};
|
|
11478
|
-
type
|
|
12094
|
+
type ListOpsQuestionsErrors = {
|
|
11479
12095
|
/**
|
|
11480
12096
|
* The request was malformed (bad JSON or missing project scope).
|
|
11481
12097
|
*/
|
|
@@ -11488,17 +12104,25 @@ type ListOpsAgentsErrors = {
|
|
|
11488
12104
|
* The key is valid but not allowed to perform this action.
|
|
11489
12105
|
*/
|
|
11490
12106
|
403: Error;
|
|
12107
|
+
/**
|
|
12108
|
+
* The resource does not exist or is not visible to the caller.
|
|
12109
|
+
*/
|
|
12110
|
+
404: Error;
|
|
12111
|
+
/**
|
|
12112
|
+
* The request body failed validation.
|
|
12113
|
+
*/
|
|
12114
|
+
422: Error;
|
|
11491
12115
|
};
|
|
11492
|
-
type
|
|
11493
|
-
type
|
|
12116
|
+
type ListOpsQuestionsError = ListOpsQuestionsErrors[keyof ListOpsQuestionsErrors];
|
|
12117
|
+
type ListOpsQuestionsResponses = {
|
|
11494
12118
|
/**
|
|
11495
|
-
* List
|
|
12119
|
+
* List an item's questions
|
|
11496
12120
|
*/
|
|
11497
|
-
200:
|
|
12121
|
+
200: ListOpsQuestionsResponse;
|
|
11498
12122
|
};
|
|
11499
|
-
type
|
|
11500
|
-
type
|
|
11501
|
-
body
|
|
12123
|
+
type ListOpsQuestionsResponse2 = ListOpsQuestionsResponses[keyof ListOpsQuestionsResponses];
|
|
12124
|
+
type AskOpsQuestionsData = {
|
|
12125
|
+
body: AskOpsQuestionsRequest;
|
|
11502
12126
|
headers?: {
|
|
11503
12127
|
/**
|
|
11504
12128
|
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
@@ -11512,9 +12136,9 @@ type ListOpsCommentsData = {
|
|
|
11512
12136
|
handle: ResourceId;
|
|
11513
12137
|
};
|
|
11514
12138
|
query?: never;
|
|
11515
|
-
url: '/api/admin/ops/{handle}/
|
|
12139
|
+
url: '/api/admin/ops/{handle}/questions';
|
|
11516
12140
|
};
|
|
11517
|
-
type
|
|
12141
|
+
type AskOpsQuestionsErrors = {
|
|
11518
12142
|
/**
|
|
11519
12143
|
* The request was malformed (bad JSON or missing project scope).
|
|
11520
12144
|
*/
|
|
@@ -11531,17 +12155,21 @@ type ListOpsCommentsErrors = {
|
|
|
11531
12155
|
* The resource does not exist or is not visible to the caller.
|
|
11532
12156
|
*/
|
|
11533
12157
|
404: Error;
|
|
12158
|
+
/**
|
|
12159
|
+
* The request body failed validation.
|
|
12160
|
+
*/
|
|
12161
|
+
422: Error;
|
|
11534
12162
|
};
|
|
11535
|
-
type
|
|
11536
|
-
type
|
|
12163
|
+
type AskOpsQuestionsError = AskOpsQuestionsErrors[keyof AskOpsQuestionsErrors];
|
|
12164
|
+
type AskOpsQuestionsResponses = {
|
|
11537
12165
|
/**
|
|
11538
|
-
*
|
|
12166
|
+
* The created questions, in the order asked
|
|
11539
12167
|
*/
|
|
11540
|
-
200:
|
|
12168
|
+
200: AskOpsQuestionsResponse;
|
|
11541
12169
|
};
|
|
11542
|
-
type
|
|
11543
|
-
type
|
|
11544
|
-
body:
|
|
12170
|
+
type AskOpsQuestionsResponse2 = AskOpsQuestionsResponses[keyof AskOpsQuestionsResponses];
|
|
12171
|
+
type AnswerOpsQuestionData = {
|
|
12172
|
+
body: AnswerOpsQuestionRequest;
|
|
11545
12173
|
headers?: {
|
|
11546
12174
|
/**
|
|
11547
12175
|
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
@@ -11553,11 +12181,15 @@ type CreateOpsCommentData = {
|
|
|
11553
12181
|
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
11554
12182
|
*/
|
|
11555
12183
|
handle: ResourceId;
|
|
12184
|
+
/**
|
|
12185
|
+
* The question id (from `ask` or `list`).
|
|
12186
|
+
*/
|
|
12187
|
+
questionId: ResourceId;
|
|
11556
12188
|
};
|
|
11557
12189
|
query?: never;
|
|
11558
|
-
url: '/api/admin/ops/{handle}/
|
|
12190
|
+
url: '/api/admin/ops/{handle}/questions/{questionId}/answer';
|
|
11559
12191
|
};
|
|
11560
|
-
type
|
|
12192
|
+
type AnswerOpsQuestionErrors = {
|
|
11561
12193
|
/**
|
|
11562
12194
|
* The request was malformed (bad JSON or missing project scope).
|
|
11563
12195
|
*/
|
|
@@ -11574,30 +12206,308 @@ type CreateOpsCommentErrors = {
|
|
|
11574
12206
|
* The resource does not exist or is not visible to the caller.
|
|
11575
12207
|
*/
|
|
11576
12208
|
404: Error;
|
|
12209
|
+
/**
|
|
12210
|
+
* The mutation conflicts with current state.
|
|
12211
|
+
*/
|
|
12212
|
+
409: Error;
|
|
11577
12213
|
/**
|
|
11578
12214
|
* The request body failed validation.
|
|
11579
12215
|
*/
|
|
11580
12216
|
422: Error;
|
|
11581
12217
|
};
|
|
11582
|
-
type
|
|
11583
|
-
type
|
|
12218
|
+
type AnswerOpsQuestionError = AnswerOpsQuestionErrors[keyof AnswerOpsQuestionErrors];
|
|
12219
|
+
type AnswerOpsQuestionResponses = {
|
|
11584
12220
|
/**
|
|
11585
|
-
*
|
|
12221
|
+
* The answered question
|
|
11586
12222
|
*/
|
|
11587
|
-
|
|
12223
|
+
200: OpsQuestion;
|
|
11588
12224
|
};
|
|
11589
|
-
type
|
|
11590
|
-
type
|
|
11591
|
-
body
|
|
12225
|
+
type AnswerOpsQuestionResponse = AnswerOpsQuestionResponses[keyof AnswerOpsQuestionResponses];
|
|
12226
|
+
type CancelOpsQuestionData = {
|
|
12227
|
+
body?: never;
|
|
11592
12228
|
headers?: {
|
|
11593
12229
|
/**
|
|
11594
12230
|
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
11595
12231
|
*/
|
|
11596
12232
|
'X-Project-Id'?: string;
|
|
11597
12233
|
};
|
|
11598
|
-
path
|
|
12234
|
+
path: {
|
|
12235
|
+
/**
|
|
12236
|
+
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
12237
|
+
*/
|
|
12238
|
+
handle: ResourceId;
|
|
12239
|
+
/**
|
|
12240
|
+
* The question id (from `ask` or `list`).
|
|
12241
|
+
*/
|
|
12242
|
+
questionId: ResourceId;
|
|
12243
|
+
};
|
|
11599
12244
|
query?: never;
|
|
11600
|
-
url: '/api/admin/
|
|
12245
|
+
url: '/api/admin/ops/{handle}/questions/{questionId}/cancel';
|
|
12246
|
+
};
|
|
12247
|
+
type CancelOpsQuestionErrors = {
|
|
12248
|
+
/**
|
|
12249
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
12250
|
+
*/
|
|
12251
|
+
400: Error;
|
|
12252
|
+
/**
|
|
12253
|
+
* Missing or invalid admin SDK key.
|
|
12254
|
+
*/
|
|
12255
|
+
401: Error;
|
|
12256
|
+
/**
|
|
12257
|
+
* The key is valid but not allowed to perform this action.
|
|
12258
|
+
*/
|
|
12259
|
+
403: Error;
|
|
12260
|
+
/**
|
|
12261
|
+
* The resource does not exist or is not visible to the caller.
|
|
12262
|
+
*/
|
|
12263
|
+
404: Error;
|
|
12264
|
+
/**
|
|
12265
|
+
* The mutation conflicts with current state.
|
|
12266
|
+
*/
|
|
12267
|
+
409: Error;
|
|
12268
|
+
};
|
|
12269
|
+
type CancelOpsQuestionError = CancelOpsQuestionErrors[keyof CancelOpsQuestionErrors];
|
|
12270
|
+
type CancelOpsQuestionResponses = {
|
|
12271
|
+
/**
|
|
12272
|
+
* The withdrawn question
|
|
12273
|
+
*/
|
|
12274
|
+
200: OpsQuestion;
|
|
12275
|
+
};
|
|
12276
|
+
type CancelOpsQuestionResponse = CancelOpsQuestionResponses[keyof CancelOpsQuestionResponses];
|
|
12277
|
+
type ListOpsQaNotesData = {
|
|
12278
|
+
body?: never;
|
|
12279
|
+
headers?: {
|
|
12280
|
+
/**
|
|
12281
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
12282
|
+
*/
|
|
12283
|
+
'X-Project-Id'?: string;
|
|
12284
|
+
};
|
|
12285
|
+
path: {
|
|
12286
|
+
/**
|
|
12287
|
+
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
12288
|
+
*/
|
|
12289
|
+
handle: ResourceId;
|
|
12290
|
+
};
|
|
12291
|
+
query?: {
|
|
12292
|
+
/**
|
|
12293
|
+
* Only notes of this kind.
|
|
12294
|
+
*/
|
|
12295
|
+
kind?: OpsQaNoteKind;
|
|
12296
|
+
};
|
|
12297
|
+
url: '/api/admin/ops/{handle}/qa-notes';
|
|
12298
|
+
};
|
|
12299
|
+
type ListOpsQaNotesErrors = {
|
|
12300
|
+
/**
|
|
12301
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
12302
|
+
*/
|
|
12303
|
+
400: Error;
|
|
12304
|
+
/**
|
|
12305
|
+
* Missing or invalid admin SDK key.
|
|
12306
|
+
*/
|
|
12307
|
+
401: Error;
|
|
12308
|
+
/**
|
|
12309
|
+
* The key is valid but not allowed to perform this action.
|
|
12310
|
+
*/
|
|
12311
|
+
403: Error;
|
|
12312
|
+
/**
|
|
12313
|
+
* The resource does not exist or is not visible to the caller.
|
|
12314
|
+
*/
|
|
12315
|
+
404: Error;
|
|
12316
|
+
/**
|
|
12317
|
+
* The request body failed validation.
|
|
12318
|
+
*/
|
|
12319
|
+
422: Error;
|
|
12320
|
+
};
|
|
12321
|
+
type ListOpsQaNotesError = ListOpsQaNotesErrors[keyof ListOpsQaNotesErrors];
|
|
12322
|
+
type ListOpsQaNotesResponses = {
|
|
12323
|
+
/**
|
|
12324
|
+
* List an item's QA notes
|
|
12325
|
+
*/
|
|
12326
|
+
200: ListOpsQaNotesResponse;
|
|
12327
|
+
};
|
|
12328
|
+
type ListOpsQaNotesResponse2 = ListOpsQaNotesResponses[keyof ListOpsQaNotesResponses];
|
|
12329
|
+
type CreateOpsQaNoteData = {
|
|
12330
|
+
body: CreateOpsQaNoteRequest;
|
|
12331
|
+
headers?: {
|
|
12332
|
+
/**
|
|
12333
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
12334
|
+
*/
|
|
12335
|
+
'X-Project-Id'?: string;
|
|
12336
|
+
};
|
|
12337
|
+
path: {
|
|
12338
|
+
/**
|
|
12339
|
+
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
12340
|
+
*/
|
|
12341
|
+
handle: ResourceId;
|
|
12342
|
+
};
|
|
12343
|
+
query?: never;
|
|
12344
|
+
url: '/api/admin/ops/{handle}/qa-notes';
|
|
12345
|
+
};
|
|
12346
|
+
type CreateOpsQaNoteErrors = {
|
|
12347
|
+
/**
|
|
12348
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
12349
|
+
*/
|
|
12350
|
+
400: Error;
|
|
12351
|
+
/**
|
|
12352
|
+
* Missing or invalid admin SDK key.
|
|
12353
|
+
*/
|
|
12354
|
+
401: Error;
|
|
12355
|
+
/**
|
|
12356
|
+
* The key is valid but not allowed to perform this action.
|
|
12357
|
+
*/
|
|
12358
|
+
403: Error;
|
|
12359
|
+
/**
|
|
12360
|
+
* The resource does not exist or is not visible to the caller.
|
|
12361
|
+
*/
|
|
12362
|
+
404: Error;
|
|
12363
|
+
/**
|
|
12364
|
+
* The request body failed validation.
|
|
12365
|
+
*/
|
|
12366
|
+
422: Error;
|
|
12367
|
+
};
|
|
12368
|
+
type CreateOpsQaNoteError = CreateOpsQaNoteErrors[keyof CreateOpsQaNoteErrors];
|
|
12369
|
+
type CreateOpsQaNoteResponses = {
|
|
12370
|
+
/**
|
|
12371
|
+
* The created note
|
|
12372
|
+
*/
|
|
12373
|
+
200: OpsQaNote;
|
|
12374
|
+
};
|
|
12375
|
+
type CreateOpsQaNoteResponse = CreateOpsQaNoteResponses[keyof CreateOpsQaNoteResponses];
|
|
12376
|
+
type ListOpsAgentsData = {
|
|
12377
|
+
body?: never;
|
|
12378
|
+
headers?: {
|
|
12379
|
+
/**
|
|
12380
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
12381
|
+
*/
|
|
12382
|
+
'X-Project-Id'?: string;
|
|
12383
|
+
};
|
|
12384
|
+
path?: never;
|
|
12385
|
+
query?: never;
|
|
12386
|
+
url: '/api/admin/agent-profiles';
|
|
12387
|
+
};
|
|
12388
|
+
type ListOpsAgentsErrors = {
|
|
12389
|
+
/**
|
|
12390
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
12391
|
+
*/
|
|
12392
|
+
400: Error;
|
|
12393
|
+
/**
|
|
12394
|
+
* Missing or invalid admin SDK key.
|
|
12395
|
+
*/
|
|
12396
|
+
401: Error;
|
|
12397
|
+
/**
|
|
12398
|
+
* The key is valid but not allowed to perform this action.
|
|
12399
|
+
*/
|
|
12400
|
+
403: Error;
|
|
12401
|
+
};
|
|
12402
|
+
type ListOpsAgentsError = ListOpsAgentsErrors[keyof ListOpsAgentsErrors];
|
|
12403
|
+
type ListOpsAgentsResponses = {
|
|
12404
|
+
/**
|
|
12405
|
+
* List connected AI agents
|
|
12406
|
+
*/
|
|
12407
|
+
200: ListOpsAgentsResponse;
|
|
12408
|
+
};
|
|
12409
|
+
type ListOpsAgentsResponse2 = ListOpsAgentsResponses[keyof ListOpsAgentsResponses];
|
|
12410
|
+
type ListOpsCommentsData = {
|
|
12411
|
+
body?: never;
|
|
12412
|
+
headers?: {
|
|
12413
|
+
/**
|
|
12414
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
12415
|
+
*/
|
|
12416
|
+
'X-Project-Id'?: string;
|
|
12417
|
+
};
|
|
12418
|
+
path: {
|
|
12419
|
+
/**
|
|
12420
|
+
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
12421
|
+
*/
|
|
12422
|
+
handle: ResourceId;
|
|
12423
|
+
};
|
|
12424
|
+
query?: never;
|
|
12425
|
+
url: '/api/admin/ops/{handle}/comments';
|
|
12426
|
+
};
|
|
12427
|
+
type ListOpsCommentsErrors = {
|
|
12428
|
+
/**
|
|
12429
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
12430
|
+
*/
|
|
12431
|
+
400: Error;
|
|
12432
|
+
/**
|
|
12433
|
+
* Missing or invalid admin SDK key.
|
|
12434
|
+
*/
|
|
12435
|
+
401: Error;
|
|
12436
|
+
/**
|
|
12437
|
+
* The key is valid but not allowed to perform this action.
|
|
12438
|
+
*/
|
|
12439
|
+
403: Error;
|
|
12440
|
+
/**
|
|
12441
|
+
* The resource does not exist or is not visible to the caller.
|
|
12442
|
+
*/
|
|
12443
|
+
404: Error;
|
|
12444
|
+
};
|
|
12445
|
+
type ListOpsCommentsError = ListOpsCommentsErrors[keyof ListOpsCommentsErrors];
|
|
12446
|
+
type ListOpsCommentsResponses = {
|
|
12447
|
+
/**
|
|
12448
|
+
* List an item's comments
|
|
12449
|
+
*/
|
|
12450
|
+
200: ListOpsCommentsResponse;
|
|
12451
|
+
};
|
|
12452
|
+
type ListOpsCommentsResponse2 = ListOpsCommentsResponses[keyof ListOpsCommentsResponses];
|
|
12453
|
+
type CreateOpsCommentData = {
|
|
12454
|
+
body: CreateOpsCommentRequest;
|
|
12455
|
+
headers?: {
|
|
12456
|
+
/**
|
|
12457
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
12458
|
+
*/
|
|
12459
|
+
'X-Project-Id'?: string;
|
|
12460
|
+
};
|
|
12461
|
+
path: {
|
|
12462
|
+
/**
|
|
12463
|
+
* Per-project item number (e.g. `7`) or the full ops item id.
|
|
12464
|
+
*/
|
|
12465
|
+
handle: ResourceId;
|
|
12466
|
+
};
|
|
12467
|
+
query?: never;
|
|
12468
|
+
url: '/api/admin/ops/{handle}/comments';
|
|
12469
|
+
};
|
|
12470
|
+
type CreateOpsCommentErrors = {
|
|
12471
|
+
/**
|
|
12472
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
12473
|
+
*/
|
|
12474
|
+
400: Error;
|
|
12475
|
+
/**
|
|
12476
|
+
* Missing or invalid admin SDK key.
|
|
12477
|
+
*/
|
|
12478
|
+
401: Error;
|
|
12479
|
+
/**
|
|
12480
|
+
* The key is valid but not allowed to perform this action.
|
|
12481
|
+
*/
|
|
12482
|
+
403: Error;
|
|
12483
|
+
/**
|
|
12484
|
+
* The resource does not exist or is not visible to the caller.
|
|
12485
|
+
*/
|
|
12486
|
+
404: Error;
|
|
12487
|
+
/**
|
|
12488
|
+
* The request body failed validation.
|
|
12489
|
+
*/
|
|
12490
|
+
422: Error;
|
|
12491
|
+
};
|
|
12492
|
+
type CreateOpsCommentError = CreateOpsCommentErrors[keyof CreateOpsCommentErrors];
|
|
12493
|
+
type CreateOpsCommentResponses = {
|
|
12494
|
+
/**
|
|
12495
|
+
* Comment on an item
|
|
12496
|
+
*/
|
|
12497
|
+
201: CreateOpsCommentResponse;
|
|
12498
|
+
};
|
|
12499
|
+
type CreateOpsCommentResponse2 = CreateOpsCommentResponses[keyof CreateOpsCommentResponses];
|
|
12500
|
+
type NotifyOpsData = {
|
|
12501
|
+
body: NotifyOpsRequest;
|
|
12502
|
+
headers?: {
|
|
12503
|
+
/**
|
|
12504
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
12505
|
+
*/
|
|
12506
|
+
'X-Project-Id'?: string;
|
|
12507
|
+
};
|
|
12508
|
+
path?: never;
|
|
12509
|
+
query?: never;
|
|
12510
|
+
url: '/api/admin/notifications';
|
|
11601
12511
|
};
|
|
11602
12512
|
type NotifyOpsErrors = {
|
|
11603
12513
|
/**
|
|
@@ -11939,7 +12849,7 @@ type UpdateAlertData = {
|
|
|
11939
12849
|
};
|
|
11940
12850
|
path: {
|
|
11941
12851
|
/**
|
|
11942
|
-
* Stable opaque
|
|
12852
|
+
* Stable opaque instance id — the same id as the `alert` ops item this instance is.
|
|
11943
12853
|
*/
|
|
11944
12854
|
id: ResourceId;
|
|
11945
12855
|
};
|
|
@@ -12289,7 +13199,7 @@ type ListI18nKeysData = {
|
|
|
12289
13199
|
*/
|
|
12290
13200
|
q?: string;
|
|
12291
13201
|
/**
|
|
12292
|
-
* Max keys to return (1–500).
|
|
13202
|
+
* Max keys to return (1–500). Defaults to 200.
|
|
12293
13203
|
*/
|
|
12294
13204
|
limit?: number;
|
|
12295
13205
|
/**
|
|
@@ -13845,6 +14755,57 @@ type CreateKeyResponses = {
|
|
|
13845
14755
|
201: CreateKeyResponse;
|
|
13846
14756
|
};
|
|
13847
14757
|
type CreateKeyResponse2 = CreateKeyResponses[keyof CreateKeyResponses];
|
|
14758
|
+
type UpdateKeyData = {
|
|
14759
|
+
body: UpdateKeyRequest;
|
|
14760
|
+
headers?: {
|
|
14761
|
+
/**
|
|
14762
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
14763
|
+
*/
|
|
14764
|
+
'X-Project-Id'?: string;
|
|
14765
|
+
};
|
|
14766
|
+
path: {
|
|
14767
|
+
/**
|
|
14768
|
+
* Stable opaque key id (UUID) returned by `create` / `list`.
|
|
14769
|
+
*/
|
|
14770
|
+
id: ResourceId;
|
|
14771
|
+
};
|
|
14772
|
+
query?: never;
|
|
14773
|
+
url: '/api/admin/keys/{id}';
|
|
14774
|
+
};
|
|
14775
|
+
type UpdateKeyErrors = {
|
|
14776
|
+
/**
|
|
14777
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
14778
|
+
*/
|
|
14779
|
+
400: Error;
|
|
14780
|
+
/**
|
|
14781
|
+
* Missing or invalid admin SDK key.
|
|
14782
|
+
*/
|
|
14783
|
+
401: Error;
|
|
14784
|
+
/**
|
|
14785
|
+
* The key is valid but not allowed to perform this action.
|
|
14786
|
+
*/
|
|
14787
|
+
403: Error;
|
|
14788
|
+
/**
|
|
14789
|
+
* The resource does not exist or is not visible to the caller.
|
|
14790
|
+
*/
|
|
14791
|
+
404: Error;
|
|
14792
|
+
/**
|
|
14793
|
+
* The mutation conflicts with current state.
|
|
14794
|
+
*/
|
|
14795
|
+
409: Error;
|
|
14796
|
+
/**
|
|
14797
|
+
* The request body failed validation.
|
|
14798
|
+
*/
|
|
14799
|
+
422: Error;
|
|
14800
|
+
};
|
|
14801
|
+
type UpdateKeyError = UpdateKeyErrors[keyof UpdateKeyErrors];
|
|
14802
|
+
type UpdateKeyResponses = {
|
|
14803
|
+
/**
|
|
14804
|
+
* Update an API key's label
|
|
14805
|
+
*/
|
|
14806
|
+
200: KeyRecord;
|
|
14807
|
+
};
|
|
14808
|
+
type UpdateKeyResponse = UpdateKeyResponses[keyof UpdateKeyResponses];
|
|
13848
14809
|
type RevokeKeyData = {
|
|
13849
14810
|
body?: never;
|
|
13850
14811
|
headers?: {
|
|
@@ -13947,6 +14908,222 @@ type SearchResourcesResponses = {
|
|
|
13947
14908
|
200: SearchResponse;
|
|
13948
14909
|
};
|
|
13949
14910
|
type SearchResourcesResponse = SearchResourcesResponses[keyof SearchResourcesResponses];
|
|
14911
|
+
type ListTagsData = {
|
|
14912
|
+
body?: never;
|
|
14913
|
+
headers?: {
|
|
14914
|
+
/**
|
|
14915
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
14916
|
+
*/
|
|
14917
|
+
'X-Project-Id'?: string;
|
|
14918
|
+
};
|
|
14919
|
+
path?: never;
|
|
14920
|
+
query?: {
|
|
14921
|
+
/**
|
|
14922
|
+
* Case-insensitive substring filter on the tag name. Omit to return every tag.
|
|
14923
|
+
*/
|
|
14924
|
+
q?: string;
|
|
14925
|
+
};
|
|
14926
|
+
url: '/api/admin/tags';
|
|
14927
|
+
};
|
|
14928
|
+
type ListTagsErrors = {
|
|
14929
|
+
/**
|
|
14930
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
14931
|
+
*/
|
|
14932
|
+
400: Error;
|
|
14933
|
+
/**
|
|
14934
|
+
* Missing or invalid admin SDK key.
|
|
14935
|
+
*/
|
|
14936
|
+
401: Error;
|
|
14937
|
+
/**
|
|
14938
|
+
* The key is valid but not allowed to perform this action.
|
|
14939
|
+
*/
|
|
14940
|
+
403: Error;
|
|
14941
|
+
/**
|
|
14942
|
+
* The resource does not exist or is not visible to the caller.
|
|
14943
|
+
*/
|
|
14944
|
+
404: Error;
|
|
14945
|
+
/**
|
|
14946
|
+
* The mutation conflicts with current state.
|
|
14947
|
+
*/
|
|
14948
|
+
409: Error;
|
|
14949
|
+
/**
|
|
14950
|
+
* The request body failed validation.
|
|
14951
|
+
*/
|
|
14952
|
+
422: Error;
|
|
14953
|
+
};
|
|
14954
|
+
type ListTagsError = ListTagsErrors[keyof ListTagsErrors];
|
|
14955
|
+
type ListTagsResponses = {
|
|
14956
|
+
/**
|
|
14957
|
+
* List the project's tags
|
|
14958
|
+
*/
|
|
14959
|
+
200: ListTagsResponse;
|
|
14960
|
+
};
|
|
14961
|
+
type ListTagsResponse2 = ListTagsResponses[keyof ListTagsResponses];
|
|
14962
|
+
type GetEntityTagsData = {
|
|
14963
|
+
body?: never;
|
|
14964
|
+
headers?: {
|
|
14965
|
+
/**
|
|
14966
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
14967
|
+
*/
|
|
14968
|
+
'X-Project-Id'?: string;
|
|
14969
|
+
};
|
|
14970
|
+
path: {
|
|
14971
|
+
/**
|
|
14972
|
+
* The kind of item — `ops`, `flag`, `config`, `killswitch`, `metric`, `error`, `alert_rule`, or `experiment`.
|
|
14973
|
+
*/
|
|
14974
|
+
entityType: TaggableEntityType;
|
|
14975
|
+
/**
|
|
14976
|
+
* The item's handle — an ops item's number (e.g. `7`) or id; a flag/config/killswitch/metric/alert rule/experiment's name or id; a tracked error's id.
|
|
14977
|
+
*/
|
|
14978
|
+
entityId: ResourceId;
|
|
14979
|
+
};
|
|
14980
|
+
query?: never;
|
|
14981
|
+
url: '/api/admin/tags/{entityType}/{entityId}';
|
|
14982
|
+
};
|
|
14983
|
+
type GetEntityTagsErrors = {
|
|
14984
|
+
/**
|
|
14985
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
14986
|
+
*/
|
|
14987
|
+
400: Error;
|
|
14988
|
+
/**
|
|
14989
|
+
* Missing or invalid admin SDK key.
|
|
14990
|
+
*/
|
|
14991
|
+
401: Error;
|
|
14992
|
+
/**
|
|
14993
|
+
* The key is valid but not allowed to perform this action.
|
|
14994
|
+
*/
|
|
14995
|
+
403: Error;
|
|
14996
|
+
/**
|
|
14997
|
+
* The resource does not exist or is not visible to the caller.
|
|
14998
|
+
*/
|
|
14999
|
+
404: Error;
|
|
15000
|
+
/**
|
|
15001
|
+
* The mutation conflicts with current state.
|
|
15002
|
+
*/
|
|
15003
|
+
409: Error;
|
|
15004
|
+
/**
|
|
15005
|
+
* The request body failed validation.
|
|
15006
|
+
*/
|
|
15007
|
+
422: Error;
|
|
15008
|
+
};
|
|
15009
|
+
type GetEntityTagsError = GetEntityTagsErrors[keyof GetEntityTagsErrors];
|
|
15010
|
+
type GetEntityTagsResponses = {
|
|
15011
|
+
/**
|
|
15012
|
+
* Read an item's tags
|
|
15013
|
+
*/
|
|
15014
|
+
200: EntityTagsResponse;
|
|
15015
|
+
};
|
|
15016
|
+
type GetEntityTagsResponse = GetEntityTagsResponses[keyof GetEntityTagsResponses];
|
|
15017
|
+
type UpdateEntityTagsData = {
|
|
15018
|
+
body: UpdateEntityTagsRequest;
|
|
15019
|
+
headers?: {
|
|
15020
|
+
/**
|
|
15021
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
15022
|
+
*/
|
|
15023
|
+
'X-Project-Id'?: string;
|
|
15024
|
+
};
|
|
15025
|
+
path: {
|
|
15026
|
+
/**
|
|
15027
|
+
* The kind of item — `ops`, `flag`, `config`, `killswitch`, `metric`, `error`, `alert_rule`, or `experiment`.
|
|
15028
|
+
*/
|
|
15029
|
+
entityType: TaggableEntityType;
|
|
15030
|
+
/**
|
|
15031
|
+
* The item's handle — an ops item's number (e.g. `7`) or id; a flag/config/killswitch/metric/alert rule/experiment's name or id; a tracked error's id.
|
|
15032
|
+
*/
|
|
15033
|
+
entityId: ResourceId;
|
|
15034
|
+
};
|
|
15035
|
+
query?: never;
|
|
15036
|
+
url: '/api/admin/tags/{entityType}/{entityId}';
|
|
15037
|
+
};
|
|
15038
|
+
type UpdateEntityTagsErrors = {
|
|
15039
|
+
/**
|
|
15040
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
15041
|
+
*/
|
|
15042
|
+
400: Error;
|
|
15043
|
+
/**
|
|
15044
|
+
* Missing or invalid admin SDK key.
|
|
15045
|
+
*/
|
|
15046
|
+
401: Error;
|
|
15047
|
+
/**
|
|
15048
|
+
* The key is valid but not allowed to perform this action.
|
|
15049
|
+
*/
|
|
15050
|
+
403: Error;
|
|
15051
|
+
/**
|
|
15052
|
+
* The resource does not exist or is not visible to the caller.
|
|
15053
|
+
*/
|
|
15054
|
+
404: Error;
|
|
15055
|
+
/**
|
|
15056
|
+
* The mutation conflicts with current state.
|
|
15057
|
+
*/
|
|
15058
|
+
409: Error;
|
|
15059
|
+
/**
|
|
15060
|
+
* The request body failed validation.
|
|
15061
|
+
*/
|
|
15062
|
+
422: Error;
|
|
15063
|
+
};
|
|
15064
|
+
type UpdateEntityTagsError = UpdateEntityTagsErrors[keyof UpdateEntityTagsErrors];
|
|
15065
|
+
type UpdateEntityTagsResponses = {
|
|
15066
|
+
/**
|
|
15067
|
+
* Add or remove tags on an item
|
|
15068
|
+
*/
|
|
15069
|
+
200: EntityTagsResponse;
|
|
15070
|
+
};
|
|
15071
|
+
type UpdateEntityTagsResponse = UpdateEntityTagsResponses[keyof UpdateEntityTagsResponses];
|
|
15072
|
+
type SetEntityTagsData = {
|
|
15073
|
+
body: SetEntityTagsRequest;
|
|
15074
|
+
headers?: {
|
|
15075
|
+
/**
|
|
15076
|
+
* Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
|
|
15077
|
+
*/
|
|
15078
|
+
'X-Project-Id'?: string;
|
|
15079
|
+
};
|
|
15080
|
+
path: {
|
|
15081
|
+
/**
|
|
15082
|
+
* The kind of item — `ops`, `flag`, `config`, `killswitch`, `metric`, `error`, `alert_rule`, or `experiment`.
|
|
15083
|
+
*/
|
|
15084
|
+
entityType: TaggableEntityType;
|
|
15085
|
+
/**
|
|
15086
|
+
* The item's handle — an ops item's number (e.g. `7`) or id; a flag/config/killswitch/metric/alert rule/experiment's name or id; a tracked error's id.
|
|
15087
|
+
*/
|
|
15088
|
+
entityId: ResourceId;
|
|
15089
|
+
};
|
|
15090
|
+
query?: never;
|
|
15091
|
+
url: '/api/admin/tags/{entityType}/{entityId}';
|
|
15092
|
+
};
|
|
15093
|
+
type SetEntityTagsErrors = {
|
|
15094
|
+
/**
|
|
15095
|
+
* The request was malformed (bad JSON or missing project scope).
|
|
15096
|
+
*/
|
|
15097
|
+
400: Error;
|
|
15098
|
+
/**
|
|
15099
|
+
* Missing or invalid admin SDK key.
|
|
15100
|
+
*/
|
|
15101
|
+
401: Error;
|
|
15102
|
+
/**
|
|
15103
|
+
* The key is valid but not allowed to perform this action.
|
|
15104
|
+
*/
|
|
15105
|
+
403: Error;
|
|
15106
|
+
/**
|
|
15107
|
+
* The resource does not exist or is not visible to the caller.
|
|
15108
|
+
*/
|
|
15109
|
+
404: Error;
|
|
15110
|
+
/**
|
|
15111
|
+
* The mutation conflicts with current state.
|
|
15112
|
+
*/
|
|
15113
|
+
409: Error;
|
|
15114
|
+
/**
|
|
15115
|
+
* The request body failed validation.
|
|
15116
|
+
*/
|
|
15117
|
+
422: Error;
|
|
15118
|
+
};
|
|
15119
|
+
type SetEntityTagsError = SetEntityTagsErrors[keyof SetEntityTagsErrors];
|
|
15120
|
+
type SetEntityTagsResponses = {
|
|
15121
|
+
/**
|
|
15122
|
+
* Replace an item's tags
|
|
15123
|
+
*/
|
|
15124
|
+
200: EntityTagsResponse;
|
|
15125
|
+
};
|
|
15126
|
+
type SetEntityTagsResponse = SetEntityTagsResponses[keyof SetEntityTagsResponses];
|
|
13950
15127
|
|
|
13951
15128
|
type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options$1<TData, ThrowOnError, TResponse> & {
|
|
13952
15129
|
/**
|
|
@@ -14562,7 +15739,7 @@ declare const listMetrics: <ThrowOnError extends boolean = false>(options?: Opti
|
|
|
14562
15739
|
*
|
|
14563
15740
|
* **Use cases**
|
|
14564
15741
|
*
|
|
14565
|
-
* - **Track an event** — `
|
|
15742
|
+
* - **Track an event** — `count(<event>)` for event counts.
|
|
14566
15743
|
* - **Sum a value** — `sum(<event>, <label>)` for revenue / quantity metrics.
|
|
14567
15744
|
* - **Experiment success metric** — create the metric, then attach its id to an experiment.
|
|
14568
15745
|
*/
|
|
@@ -14677,7 +15854,11 @@ declare const approveEvent: <ThrowOnError extends boolean = false>(options: Opti
|
|
|
14677
15854
|
/**
|
|
14678
15855
|
* List the operational queue
|
|
14679
15856
|
*
|
|
14680
|
-
* Returns the unified ops queue (bugs, feature requests, errors, alerts) in work order — highest priority first, oldest first within a priority — so consumers work it top-down.
|
|
15857
|
+
* Returns the unified ops queue (bugs, feature requests, errors, alerts, measurement plans) in work order — highest priority first, oldest first within a priority — so consumers work it top-down. Every filter is applied in SQL before paging, and filters combine with AND. Human-gated holding states (items awaiting human sign-off in the dashboard) are never returned by `all`/default status.
|
|
15858
|
+
*
|
|
15859
|
+
* **Filters:** `type` (one item type), `status` (one lifecycle status, or `unresolved` — everything not yet `resolved`/`wont_fix`), `priority` (one triage priority), `owner` (one person or agent), and `scope=ready` — the items ready to be picked up right now: `open`, with nobody working them (no open run), and either unowned or reopened (sent back to `open` after an earlier run finished).
|
|
15860
|
+
*
|
|
15861
|
+
* **Paging:** `limit` is the page size and `offset` the number of items to skip. The order is stable, so walk the queue with `offset += limit`; a page shorter than `limit` is the last one.
|
|
14681
15862
|
*
|
|
14682
15863
|
* **Use case:** Pull the open queue to triage — e.g. every `bug` still `open` — before working items down one by one.
|
|
14683
15864
|
*/
|
|
@@ -14706,6 +15887,8 @@ declare const createOpsItem: <ThrowOnError extends boolean = false>(options: Opt
|
|
|
14706
15887
|
*
|
|
14707
15888
|
* The project is the key's own project; there is no `X-Project-Id` to pass and no way to file into someone else's queue. Repeat submissions of the same title dedupe against the open ticket already tracking it, which returns `200` with `deduped: true` instead of filing again.
|
|
14708
15889
|
*
|
|
15890
|
+
* Send a `dedupKey` to own that grain yourself — the same key from a monitor, a job, or a retried install re-triggers its open ticket: the ticket's fields are refreshed from the new payload and a "re-triggered" comment is appended (`200` with `deduped: true, updated: true`), so one recurring failure stays one ticket with its history intact.
|
|
15891
|
+
*
|
|
14709
15892
|
* This endpoint is served by the Shipeasy **edge worker** (`api.shipeasy.ai`), not the admin API — see `servers` below.
|
|
14710
15893
|
*
|
|
14711
15894
|
* **Use case:** `shipeasy setup` fails on a customer's machine and self-reports the failure with the user's consent — `{ "title": "Setup failed at Feature installs", "stepsToReproduce": "…", "actualResult": "…" }`.
|
|
@@ -14716,7 +15899,7 @@ declare const createPublicBug: <ThrowOnError extends boolean = false>(options: O
|
|
|
14716
15899
|
*
|
|
14717
15900
|
* Files one feature request onto a project's queue, awaiting human approval. The feature-request counterpart to `POST /ops/bug`, with the same three gates: a `client` key carrying `tickets:public_create`, a project that has opted in, and a `pending_approval` state forced server-side.
|
|
14718
15901
|
*
|
|
14719
|
-
* The project is the key's own project; there is no `X-Project-Id` to pass. Repeat submissions of the same title dedupe against the open ticket already tracking it, which returns `200` with `deduped: true` instead of filing again.
|
|
15902
|
+
* The project is the key's own project; there is no `X-Project-Id` to pass. Repeat submissions of the same title dedupe against the open ticket already tracking it, which returns `200` with `deduped: true` instead of filing again. A `dedupKey` works exactly as on `POST /ops/bug`: a repeat carrying the same key refreshes the open ticket and comments that it was re-triggered.
|
|
14720
15903
|
*
|
|
14721
15904
|
* This endpoint is served by the Shipeasy **edge worker** (`api.shipeasy.ai`), not the admin API — see `servers` below.
|
|
14722
15905
|
*
|
|
@@ -14779,6 +15962,11 @@ declare const linkPrToOpsItem: <ThrowOnError extends boolean = false>(options: O
|
|
|
14779
15962
|
* list` and use one of those (or connect the agent under Settings →
|
|
14780
15963
|
* Triggers).
|
|
14781
15964
|
*
|
|
15965
|
+
* **Launching.** When the named agent has a connected trigger and you pass
|
|
15966
|
+
* no `sessionId`, the ack also fires that trigger — a new provider run
|
|
15967
|
+
* starts working the item. Pass `launch: false` to only claim the item and
|
|
15968
|
+
* record the run (you are doing the work yourself), without starting one.
|
|
15969
|
+
*
|
|
14782
15970
|
* **Completion.** The run closes automatically on the loop's final actions —
|
|
14783
15971
|
* linking the fixing PR (`link-pr`), an ops-notify escalation, or a
|
|
14784
15972
|
* completion status change (`ready_for_qa`/`resolved`) — and the dashboard
|
|
@@ -14809,7 +15997,9 @@ declare const listOpsInvestigations: <ThrowOnError extends boolean = false>(opti
|
|
|
14809
15997
|
* (`kind: investigated`), a blocking question for the team (`kind:
|
|
14810
15998
|
* question`), or how to verify the fix (`kind: ready_for_qa` with
|
|
14811
15999
|
* `qaNotes`). Append-only and create-only, so it is safe for restricted ops
|
|
14812
|
-
* keys.
|
|
16000
|
+
* keys. For a decision between options you can name, ask a structured
|
|
16001
|
+
* question instead (`ops questions ask`) — it is answerable in one tap and
|
|
16002
|
+
* the answer comes back to your run.
|
|
14813
16003
|
*
|
|
14814
16004
|
* **Use case:** After working an item, leave a findings write-up (summary,
|
|
14815
16005
|
* markdown findings, sources inspected, confidence) so the team — and the
|
|
@@ -14831,6 +16021,96 @@ declare const createOpsInvestigation: <ThrowOnError extends boolean = false>(opt
|
|
|
14831
16021
|
* no need to append a second record.
|
|
14832
16022
|
*/
|
|
14833
16023
|
declare const updateOpsInvestigation: <ThrowOnError extends boolean = false>(options: Options<UpdateOpsInvestigationData, ThrowOnError>) => RequestResult<UpdateOpsInvestigationResponses, UpdateOpsInvestigationErrors, ThrowOnError>;
|
|
16024
|
+
/**
|
|
16025
|
+
* List an item's questions
|
|
16026
|
+
*
|
|
16027
|
+
* The structured questions asked on a queue item, with their answers —
|
|
16028
|
+
* newest first (max 100). Pull this to read the answers to questions you
|
|
16029
|
+
* asked: an answered question reads `status: completed` and carries
|
|
16030
|
+
* `answer.selected` (the option labels picked) and `answer.other` (the
|
|
16031
|
+
* free-text "Other" reply, or `null`).
|
|
16032
|
+
*
|
|
16033
|
+
* **Use case:** You asked with `delivery: poll` from a live session — poll
|
|
16034
|
+
* this until your questions read `completed`, then continue with the answers.
|
|
16035
|
+
*/
|
|
16036
|
+
declare const listOpsQuestions: <ThrowOnError extends boolean = false>(options: Options<ListOpsQuestionsData, ThrowOnError>) => RequestResult<ListOpsQuestionsResponses, ListOpsQuestionsErrors, ThrowOnError>;
|
|
16037
|
+
/**
|
|
16038
|
+
* Ask the team questions about an item
|
|
16039
|
+
*
|
|
16040
|
+
* Ask 1–4 structured questions about a queue item — the way to get a
|
|
16041
|
+
* decision from a person when the implementation needs one. Each question
|
|
16042
|
+
* is the `AskUserQuestion` shape: a short `header` chip, the full
|
|
16043
|
+
* `question`, 2–4 `options` (`label` + `description`), and `multiSelect`
|
|
16044
|
+
* (checkboxes instead of radios). The person can always answer "Other" in
|
|
16045
|
+
* free text, so never add an "Other" option yourself. The questions render
|
|
16046
|
+
* at the very top of the item's detail panel and mark the row in the queue.
|
|
16047
|
+
*
|
|
16048
|
+
* **Delivery.** `resume` re-fires your trigger-connector run on the item
|
|
16049
|
+
* once every question it asked is answered, continuing the same run record
|
|
16050
|
+
* with the answers in the prompt — stop after asking. `poll` fires nothing;
|
|
16051
|
+
* poll `GET .../questions` instead. Omitted, it is `resume` when `runId`
|
|
16052
|
+
* names a run launched through a trigger connector, else `poll`.
|
|
16053
|
+
*
|
|
16054
|
+
* **Use case:** Blocked on a product decision (which behaviour to keep,
|
|
16055
|
+
* which of two fixes to ship) — ask instead of guessing, then wait for the
|
|
16056
|
+
* answer.
|
|
16057
|
+
*/
|
|
16058
|
+
declare const askOpsQuestions: <ThrowOnError extends boolean = false>(options: Options<AskOpsQuestionsData, ThrowOnError>) => RequestResult<AskOpsQuestionsResponses, AskOpsQuestionsErrors, ThrowOnError>;
|
|
16059
|
+
/**
|
|
16060
|
+
* Answer a question
|
|
16061
|
+
*
|
|
16062
|
+
* Answer one open question on a queue item — pick option labels in
|
|
16063
|
+
* `selected` (exactly one unless the question is `multiSelect`) and/or
|
|
16064
|
+
* write a free-text `other`. The question moves to `completed`. When it was
|
|
16065
|
+
* the last open question of a `resume` run, that agent is re-fired on the
|
|
16066
|
+
* item with every answer. A person's action: never allow-listed for
|
|
16067
|
+
* restricted ops keys.
|
|
16068
|
+
*
|
|
16069
|
+
* **Use case:** Unblock an agent from the CLI instead of the dashboard.
|
|
16070
|
+
*/
|
|
16071
|
+
declare const answerOpsQuestion: <ThrowOnError extends boolean = false>(options: Options<AnswerOpsQuestionData, ThrowOnError>) => RequestResult<AnswerOpsQuestionResponses, AnswerOpsQuestionErrors, ThrowOnError>;
|
|
16072
|
+
/**
|
|
16073
|
+
* Withdraw a question
|
|
16074
|
+
*
|
|
16075
|
+
* Withdraw one open question you asked — it no longer needs an answer
|
|
16076
|
+
* (you found it out yourself, or the item moved on). The question moves to
|
|
16077
|
+
* `cancelled` and leaves the detail panel. Withdrawing the last open
|
|
16078
|
+
* question of a run delivers nothing.
|
|
16079
|
+
*
|
|
16080
|
+
* **Use case:** You asked, then answered it yourself from the code — take
|
|
16081
|
+
* it off the person's plate.
|
|
16082
|
+
*/
|
|
16083
|
+
declare const cancelOpsQuestion: <ThrowOnError extends boolean = false>(options: Options<CancelOpsQuestionData, ThrowOnError>) => RequestResult<CancelOpsQuestionResponses, CancelOpsQuestionErrors, ThrowOnError>;
|
|
16084
|
+
/**
|
|
16085
|
+
* List an item's QA notes
|
|
16086
|
+
*
|
|
16087
|
+
* The typed QA notes on a queue item, newest first (max 200) — narrowing,
|
|
16088
|
+
* clarification, verification and correction notes, each with its author and
|
|
16089
|
+
* time. They are separate from the comment thread: read these to learn the
|
|
16090
|
+
* CURRENT QA state of a ticket (what remains failing, what "fixed" now means,
|
|
16091
|
+
* the last verification verdict) without parsing prose comments.
|
|
16092
|
+
*
|
|
16093
|
+
* **Use case:** A coding agent picks an item up and checks the latest
|
|
16094
|
+
* `verification` verdict and any `narrowing` note before touching the code.
|
|
16095
|
+
*/
|
|
16096
|
+
declare const listOpsQaNotes: <ThrowOnError extends boolean = false>(options: Options<ListOpsQaNotesData, ThrowOnError>) => RequestResult<ListOpsQaNotesResponses, ListOpsQaNotesErrors, ThrowOnError>;
|
|
16097
|
+
/**
|
|
16098
|
+
* Add a QA note to an item
|
|
16099
|
+
*
|
|
16100
|
+
* Append one typed QA note to a queue item. `kind` is `narrowing` (what now
|
|
16101
|
+
* passes vs what still fails), `clarification` (what "fixed" now means),
|
|
16102
|
+
* `verification` (requires a `verdict` of `pass` or `fail`, and `body` says
|
|
16103
|
+
* what was checked) or `correction` (withdraws an earlier framing). Notes
|
|
16104
|
+
* are append-only and appear in the item's QA notes section, not in the
|
|
16105
|
+
* comment thread. The author is the caller's identity; pass `agent` to
|
|
16106
|
+
* record the note as written by that agent type's QA automation. A `fail` verdict never changes the item's
|
|
16107
|
+
* status by itself: the dashboard offers an explicit "Reopen item" action,
|
|
16108
|
+
* and `ops update --status open` does the same from the CLI.
|
|
16109
|
+
*
|
|
16110
|
+
* **Use case:** QA automation records "verified on production: FAIL, the
|
|
16111
|
+
* second facet still errors" as data an agent can read back.
|
|
16112
|
+
*/
|
|
16113
|
+
declare const createOpsQaNote: <ThrowOnError extends boolean = false>(options: Options<CreateOpsQaNoteData, ThrowOnError>) => RequestResult<CreateOpsQaNoteResponses, CreateOpsQaNoteErrors, ThrowOnError>;
|
|
14834
16114
|
/**
|
|
14835
16115
|
* List connected AI agents
|
|
14836
16116
|
*
|
|
@@ -14928,7 +16208,9 @@ declare const updateAlertRule: <ThrowOnError extends boolean = false>(options: O
|
|
|
14928
16208
|
*
|
|
14929
16209
|
* Returns the project's FIRED alerts as a **bare JSON array** (no pagination envelope), ordered by `createdAt desc`. Defaults to the currently-firing ones (`status=active`); pass a `status` to widen to resolved/dismissed history or `all`.
|
|
14930
16210
|
*
|
|
14931
|
-
*
|
|
16211
|
+
* A fired alert is an **instance** of an alert rule, and an instance IS its ops queue item — the same row `/api/admin/ops` returns with `type: "alert"`, viewed through the alert lens. One rule produces many instances over its life and at most one is open at a time: when the condition clears the instance closes, and the next firing is a NEW instance with its own id and history. That is why `severity` reads off the rule (the queue item carries it as `priority`) and why resolving the queue item and clearing the alert are one act, not two rows to keep in step.
|
|
16212
|
+
*
|
|
16213
|
+
* Instances are opened only by the platform — the UI's killswitch handlers plus the worker's analysis consumer and alerts cron — never filed by hand, so this surface is list + triage (via PATCH), with no create. The rules that *define* metric-threshold alerts live at `/api/admin/alert-rules`.
|
|
14932
16214
|
*
|
|
14933
16215
|
* **Use case:** Snapshot what is currently firing for an on-call view or the home Alerts block, or pull `status=all` to audit how a noisy rule has behaved over time.
|
|
14934
16216
|
*/
|
|
@@ -14938,7 +16220,7 @@ declare const listAlerts: <ThrowOnError extends boolean = false>(options?: Optio
|
|
|
14938
16220
|
*
|
|
14939
16221
|
* Triage writes on one fired alert — the only mutations this surface allows. All body fields are optional (at least one required); only the fields present are changed.
|
|
14940
16222
|
*
|
|
14941
|
-
* - **`status`** — flip between `active` / `resolved` / `dismissed`. `resolved` and `dismissed` stamp `resolvedAt` / `dismissedAt`; `active` re-opens and clears both.
|
|
16223
|
+
* - **`status`** — flip between `active` / `resolved` / `dismissed`. `resolved` and `dismissed` stamp `resolvedAt` / `dismissedAt`; `active` re-opens and clears both. These write the underlying queue item's own status (`resolved` / `wont_fix` / `open`), so clearing an alert here and resolving it in the ops queue are the same act. A cleared instance is never revived: if the condition fires again it opens a NEW instance with its own id.
|
|
14942
16224
|
* - **`assigneeId`** — the PERSON owner (a `users.id`), or `null` to unassign.
|
|
14943
16225
|
* - **`agent`** — the AGENT owner: a connected trigger connector's id, or the built-in `"jarvis"` (**Enterprise plan only** — `403` otherwise), or `null` to clear. Person and agent halves are independent.
|
|
14944
16226
|
*
|
|
@@ -15306,6 +16588,16 @@ declare const listKeys: <ThrowOnError extends boolean = false>(options?: Options
|
|
|
15306
16588
|
* - **Scoped, expiring key** — `{ "type": "server", "env": "staging", "scopes": ["gates:evaluate"], "expiresInDays": 30 }` for a time-boxed integration.
|
|
15307
16589
|
*/
|
|
15308
16590
|
declare const createKey: <ThrowOnError extends boolean = false>(options: Options<CreateKeyData, ThrowOnError>) => RequestResult<CreateKeyResponses, CreateKeyErrors, ThrowOnError>;
|
|
16591
|
+
/**
|
|
16592
|
+
* Update an API key's label
|
|
16593
|
+
*
|
|
16594
|
+
* Renames a key or re-notes what it is for. **Only `name` and `description` are editable** — everything that gives the key its authority (`type`, `env`, `scopes`, `expires_at`) is fixed at mint, because the worker derives the read env and permissions from the key itself. To change any of those, rotate: mint a replacement and revoke this one.
|
|
16595
|
+
*
|
|
16596
|
+
* Omitted fields are left untouched; send `null` to clear one. Returns the updated key row. Revoked keys can still be relabelled (the audit trail outlives the credential). Returns `404` if no such key exists in the project.
|
|
16597
|
+
*
|
|
16598
|
+
* **Use case:** A key minted by `shipeasy setup` carries an auto-composed provenance label — rename it to the service that actually holds it and note the rotation owner.
|
|
16599
|
+
*/
|
|
16600
|
+
declare const updateKey: <ThrowOnError extends boolean = false>(options: Options<UpdateKeyData, ThrowOnError>) => RequestResult<UpdateKeyResponses, UpdateKeyErrors, ThrowOnError>;
|
|
15309
16601
|
/**
|
|
15310
16602
|
* Revoke an API key
|
|
15311
16603
|
*
|
|
@@ -15326,6 +16618,46 @@ declare const revokeKey: <ThrowOnError extends boolean = false>(options: Options
|
|
|
15326
16618
|
* **Use case:** Back a command-palette / quick-switcher in the dashboard, or look up the id of a resource by a fragment of its name before driving another API call.
|
|
15327
16619
|
*/
|
|
15328
16620
|
declare const searchResources: <ThrowOnError extends boolean = false>(options?: Options<SearchResourcesData, ThrowOnError>) => RequestResult<SearchResourcesResponses, SearchResourcesErrors, ThrowOnError>;
|
|
16621
|
+
/**
|
|
16622
|
+
* List the project's tags
|
|
16623
|
+
*
|
|
16624
|
+
* Returns every tag in the project — the shared roster any item (queue items, flags, configs, kill switches, metrics, tracked errors, alert rules, experiments) can carry. Sorted by name.
|
|
16625
|
+
*
|
|
16626
|
+
* **Use case:** See which tags already exist before tagging an item, so you reuse `ios` instead of minting `iOS-app`.
|
|
16627
|
+
*/
|
|
16628
|
+
declare const listTags: <ThrowOnError extends boolean = false>(options?: Options<ListTagsData, ThrowOnError>) => RequestResult<ListTagsResponses, ListTagsErrors, ThrowOnError>;
|
|
16629
|
+
/**
|
|
16630
|
+
* Read an item's tags
|
|
16631
|
+
*
|
|
16632
|
+
* Returns the tags attached to one item. The item is addressed by kind (`entityType`) plus its handle, so the same call reads tags off a queue item, a flag, a config, a kill switch, a metric, a tracked error, an alert rule, or an experiment.
|
|
16633
|
+
*
|
|
16634
|
+
* **Use case:** Check an item's current tags before editing them.
|
|
16635
|
+
*/
|
|
16636
|
+
declare const getEntityTags: <ThrowOnError extends boolean = false>(options: Options<GetEntityTagsData, ThrowOnError>) => RequestResult<GetEntityTagsResponses, GetEntityTagsErrors, ThrowOnError>;
|
|
16637
|
+
/**
|
|
16638
|
+
* Add or remove tags on an item
|
|
16639
|
+
*
|
|
16640
|
+
* Edits an item's tags incrementally: attaches every name in `add` (creating project tags as needed) and detaches every name in `remove`, leaving the item's other tags untouched. Matching is case-insensitive; a name in both lists ends up removed.
|
|
16641
|
+
*
|
|
16642
|
+
* **Use cases**
|
|
16643
|
+
*
|
|
16644
|
+
* - **Add a tag** — `{ "add": ["regression"] }`.
|
|
16645
|
+
* - **Swap a tag** — `{ "add": ["p1"], "remove": ["p2"] }`.
|
|
16646
|
+
*/
|
|
16647
|
+
declare const updateEntityTags: <ThrowOnError extends boolean = false>(options: Options<UpdateEntityTagsData, ThrowOnError>) => RequestResult<UpdateEntityTagsResponses, UpdateEntityTagsErrors, ThrowOnError>;
|
|
16648
|
+
/**
|
|
16649
|
+
* Replace an item's tags
|
|
16650
|
+
*
|
|
16651
|
+
* Replaces the item's whole tag set with `tags`: names not yet in the project are created, attached names not in the list are detached, and `[]` clears every tag. Names are deduped case-insensitively, reusing an existing tag's casing (sending `iOS` when `ios` exists attaches `ios`).
|
|
16652
|
+
*
|
|
16653
|
+
* **Use cases**
|
|
16654
|
+
*
|
|
16655
|
+
* - **Tag an item** — `{ "tags": ["checkout", "ios"] }`.
|
|
16656
|
+
* - **Clear tags** — `{ "tags": [] }`.
|
|
16657
|
+
*
|
|
16658
|
+
* To add or remove a few tags without restating the rest, use the incremental `PATCH` instead.
|
|
16659
|
+
*/
|
|
16660
|
+
declare const setEntityTags: <ThrowOnError extends boolean = false>(options: Options<SetEntityTagsData, ThrowOnError>) => RequestResult<SetEntityTagsResponses, SetEntityTagsErrors, ThrowOnError>;
|
|
15329
16661
|
|
|
15330
16662
|
/**
|
|
15331
16663
|
* The `createClientConfig()` function will be called on client initialization
|
|
@@ -15366,4 +16698,4 @@ interface ConfigureOptions {
|
|
|
15366
16698
|
*/
|
|
15367
16699
|
declare function configure({ apiKey, projectId, baseUrl }: ConfigureOptions): void;
|
|
15368
16700
|
|
|
15369
|
-
export { type CreateConfigError as $, type AckOpsItemData as A, type ConfigureOptions as B, type ClaudeTriggerConfig as C, type ConnectorData as D, type ErrorCode as E, type ConnectorEvent as F, type ConnectorProvider as G, type ConnectorRecord as H, type CopilotTriggerConfig as I, type CreateAlertRuleData as J, type CreateAlertRuleError as K, type CreateAlertRuleErrors as L, type CreateAlertRuleRequest as M, type CreateAlertRuleResponse as N, type CreateAlertRuleResponse2 as O, type CreateAlertRuleResponses as P, type CreateAttributeData as Q, type CreateAttributeError as R, type CreateAttributeErrors as S, type CreateAttributeRequest as T, type CreateAttributeResponse as U, type CreateAttributeResponse2 as V, type CreateAttributeResponses as W, type CreateBugRequest as X, type CreateClaudeTriggerRequest as Y, type CreateClientConfig as Z, type CreateConfigData as _, type Error as a, type CreateJulesTriggerRequest as a$, type CreateConfigErrors as a0, type CreateConfigRequest as a1, type CreateConfigResponse as a2, type CreateConfigResponse2 as a3, type CreateConfigResponses as a4, type CreateConnectorData as a5, type CreateConnectorError as a6, type CreateConnectorErrors as a7, type CreateConnectorRequest as a8, type CreateConnectorResponse as a9, type CreateGateData as aA, type CreateGateError as aB, type CreateGateErrors as aC, type CreateGateRequest as aD, type CreateGateResponse as aE, type CreateGateResponse2 as aF, type CreateGateResponses as aG, type CreateGateTemplateData as aH, type CreateGateTemplateError as aI, type CreateGateTemplateErrors as aJ, type CreateGateTemplateRequest as aK, type CreateGateTemplateResponse as aL, type CreateGateTemplateResponse2 as aM, type CreateGateTemplateResponses as aN, type CreateI18nDraftData as aO, type CreateI18nDraftError as aP, type CreateI18nDraftErrors as aQ, type CreateI18nDraftRequest as aR, type CreateI18nDraftResponse as aS, type CreateI18nDraftResponses as aT, type CreateI18nProfileData as aU, type CreateI18nProfileError as aV, type CreateI18nProfileErrors as aW, type CreateI18nProfileRequest as aX, type CreateI18nProfileResponse as aY, type CreateI18nProfileResponse2 as aZ, type CreateI18nProfileResponses as a_, type CreateConnectorResponse2 as aa, type CreateConnectorResponses as ab, type CreateCopilotTriggerRequest as ac, type CreateCursorTriggerRequest as ad, type CreateEventData as ae, type CreateEventError as af, type CreateEventErrors as ag, type CreateEventRequest as ah, type CreateEventResponse as ai, type CreateEventResponse2 as aj, type CreateEventResponses as ak, type CreateExperimentData as al, type CreateExperimentError as am, type CreateExperimentErrors as an, type CreateExperimentReadoutData as ao, type CreateExperimentReadoutError as ap, type CreateExperimentReadoutErrors as aq, type CreateExperimentReadoutRequest as ar, type CreateExperimentReadoutResponse as as, type CreateExperimentReadoutResponse2 as at, type CreateExperimentReadoutResponses as au, type CreateExperimentRequest as av, type CreateExperimentResponse as aw, type CreateExperimentResponse2 as ax, type CreateExperimentResponses as ay, type CreateFeatureRequestRequest as az, type AckOpsItemError as b, type CreateUniverseData as b$, type CreateKeyData as b0, type CreateKeyError as b1, type CreateKeyErrors as b2, type CreateKeyRequest as b3, type CreateKeyResponse as b4, type CreateKeyResponse2 as b5, type CreateKeyResponses as b6, type CreateKillswitchData as b7, type CreateKillswitchError as b8, type CreateKillswitchErrors as b9, type CreateOpsInvestigationResponses as bA, type CreateOpsItemData as bB, type CreateOpsItemError as bC, type CreateOpsItemErrors as bD, type CreateOpsItemRequest as bE, type CreateOpsItemResponse as bF, type CreateOpsItemResponse2 as bG, type CreateOpsItemResponses as bH, type CreatePublicBugData as bI, type CreatePublicBugError as bJ, type CreatePublicBugErrors as bK, type CreatePublicBugRequest as bL, type CreatePublicBugResponse as bM, type CreatePublicBugResponses as bN, type CreatePublicFeatureRequestData as bO, type CreatePublicFeatureRequestError as bP, type CreatePublicFeatureRequestErrors as bQ, type CreatePublicFeatureRequestRequest as bR, type CreatePublicFeatureRequestResponse as bS, type CreatePublicFeatureRequestResponses as bT, type CreatePublicTicketResponse as bU, type CreateTriggerConnectorData as bV, type CreateTriggerConnectorError as bW, type CreateTriggerConnectorErrors as bX, type CreateTriggerConnectorRequest as bY, type CreateTriggerConnectorResponse as bZ, type CreateTriggerConnectorResponses as b_, type CreateKillswitchRequest as ba, type CreateKillswitchResponse as bb, type CreateKillswitchResponse2 as bc, type CreateKillswitchResponses as bd, type CreateMetricData as be, type CreateMetricError as bf, type CreateMetricErrors as bg, type CreateMetricRequest as bh, type CreateMetricResponse as bi, type CreateMetricResponse2 as bj, type CreateMetricResponses as bk, type CreateMetricWithQuery as bl, type CreateMetricWithQueryIr as bm, type CreateOAuthConnectorRequest as bn, type CreateOpsCommentData as bo, type CreateOpsCommentError as bp, type CreateOpsCommentErrors as bq, type CreateOpsCommentRequest as br, type CreateOpsCommentResponse as bs, type CreateOpsCommentResponse2 as bt, type CreateOpsCommentResponses as bu, type CreateOpsInvestigationData as bv, type CreateOpsInvestigationError as bw, type CreateOpsInvestigationErrors as bx, type CreateOpsInvestigationRequest as by, type CreateOpsInvestigationResponse as bz, type AckOpsItemErrors as c, type DeleteI18nKeyResponse as c$, type CreateUniverseError as c0, type CreateUniverseErrors as c1, type CreateUniverseRequest as c2, type CreateUniverseResponse as c3, type CreateUniverseResponse2 as c4, type CreateUniverseResponses as c5, type CursorTriggerConfig as c6, type DeleteAlertRuleData as c7, type DeleteAlertRuleError as c8, type DeleteAlertRuleErrors as c9, type DeleteEventResponses as cA, type DeleteExperimentData as cB, type DeleteExperimentError as cC, type DeleteExperimentErrors as cD, type DeleteExperimentResponse as cE, type DeleteExperimentResponse2 as cF, type DeleteExperimentResponses as cG, type DeleteGateData as cH, type DeleteGateError as cI, type DeleteGateErrors as cJ, type DeleteGateResponse as cK, type DeleteGateResponse2 as cL, type DeleteGateResponses as cM, type DeleteGateTemplateData as cN, type DeleteGateTemplateError as cO, type DeleteGateTemplateErrors as cP, type DeleteGateTemplateResponse as cQ, type DeleteGateTemplateResponse2 as cR, type DeleteGateTemplateResponses as cS, type DeleteI18nDraftData as cT, type DeleteI18nDraftError as cU, type DeleteI18nDraftErrors as cV, type DeleteI18nDraftResponse as cW, type DeleteI18nDraftResponses as cX, type DeleteI18nKeyData as cY, type DeleteI18nKeyError as cZ, type DeleteI18nKeyErrors as c_, type DeleteAlertRuleResponse as ca, type DeleteAlertRuleResponse2 as cb, type DeleteAlertRuleResponses as cc, type DeleteAttributeData as cd, type DeleteAttributeError as ce, type DeleteAttributeErrors as cf, type DeleteAttributeResponse as cg, type DeleteAttributeResponse2 as ch, type DeleteAttributeResponses as ci, type DeleteConfigData as cj, type DeleteConfigError as ck, type DeleteConfigErrors as cl, type DeleteConfigResponse as cm, type DeleteConfigResponse2 as cn, type DeleteConfigResponses as co, type DeleteConnectorData as cp, type DeleteConnectorError as cq, type DeleteConnectorErrors as cr, type DeleteConnectorResponse as cs, type DeleteConnectorResponse2 as ct, type DeleteConnectorResponses as cu, type DeleteEventData as cv, type DeleteEventError as cw, type DeleteEventErrors as cx, type DeleteEventResponse as cy, type DeleteEventResponse2 as cz, type AckOpsItemRequest as d, type FileErrorTicketError as d$, type DeleteI18nKeyResponses as d0, type DeleteI18nProfileData as d1, type DeleteI18nProfileError as d2, type DeleteI18nProfileErrors as d3, type DeleteI18nProfileResponse as d4, type DeleteI18nProfileResponses as d5, type DeleteKillswitchData as d6, type DeleteKillswitchError as d7, type DeleteKillswitchErrors as d8, type DeleteKillswitchResponse as d9, type DisableGateResponses as dA, type DiscardConfigDraftData as dB, type DiscardConfigDraftError as dC, type DiscardConfigDraftErrors as dD, type DiscardConfigDraftRequest as dE, type DiscardConfigDraftResponse as dF, type DiscardConfigDraftResponse2 as dG, type DiscardConfigDraftResponses as dH, type Domain as dI, type EnableGateData as dJ, type EnableGateError as dK, type EnableGateErrors as dL, type EnableGateResponse as dM, type EnableGateResponse2 as dN, type EnableGateResponses as dO, type Env as dP, type ErrorOccurrence as dQ, type ErrorRecord as dR, type ErrorSeriesRequest as dS, type ErrorSeriesResponse as dT, type ExperimentApiRow as dU, type ExperimentInlineMetric as dV, type ExperimentReadoutApiRow as dW, type ExperimentReadoutCaveat as dX, type ExperimentReadoutMetric as dY, type ExperimentResultRow as dZ, type FileErrorTicketData as d_, type DeleteKillswitchResponse2 as da, type DeleteKillswitchResponses as db, type DeleteMetricData as dc, type DeleteMetricError as dd, type DeleteMetricErrors as de, type DeleteMetricResponse as df, type DeleteMetricResponse2 as dg, type DeleteMetricResponses as dh, type DeleteOpsItemData as di, type DeleteOpsItemError as dj, type DeleteOpsItemErrors as dk, type DeleteOpsItemResponse as dl, type DeleteOpsItemResponse2 as dm, type DeleteOpsItemResponses as dn, type DeleteUniverseData as dp, type DeleteUniverseError as dq, type DeleteUniverseErrors as dr, type DeleteUniverseResponse as ds, type DeleteUniverseResponse2 as dt, type DeleteUniverseResponses as du, type DisableGateData as dv, type DisableGateError as dw, type DisableGateErrors as dx, type DisableGateResponse as dy, type DisableGateResponse2 as dz, type AckOpsItemResponse as e, type GetExperimentReadoutResponse as e$, type FileErrorTicketErrors as e0, type FileErrorTicketResponse as e1, type FileErrorTicketResponse2 as e2, type FileErrorTicketResponses as e3, type FireConnectorData as e4, type FireConnectorError as e5, type FireConnectorErrors as e6, type FireConnectorRequest as e7, type FireConnectorResponse as e8, type FireConnectorResponse2 as e9, type GetCurrentProjectError as eA, type GetCurrentProjectErrors as eB, type GetCurrentProjectResponse as eC, type GetCurrentProjectResponse2 as eD, type GetCurrentProjectResponses as eE, type GetErrorData as eF, type GetErrorError as eG, type GetErrorErrors as eH, type GetErrorResponse as eI, type GetErrorResponses as eJ, type GetErrorSeriesData as eK, type GetErrorSeriesError as eL, type GetErrorSeriesErrors as eM, type GetErrorSeriesResponse as eN, type GetErrorSeriesResponses as eO, type GetEventData as eP, type GetEventError as eQ, type GetEventErrors as eR, type GetEventResponse as eS, type GetEventResponse2 as eT, type GetEventResponses as eU, type GetExperimentData as eV, type GetExperimentError as eW, type GetExperimentErrors as eX, type GetExperimentReadoutData as eY, type GetExperimentReadoutError as eZ, type GetExperimentReadoutErrors as e_, type FireConnectorResponses as ea, type Folder as eb, type GateApiRow as ec, type GateTemplate as ed, type GateTemplateRule as ee, type GateTemplateRuleResponse as ef, type GateWhitelist as eg, type GateWhitelistAttr as eh, type GetAttributeData as ei, type GetAttributeError as ej, type GetAttributeErrors as ek, type GetAttributeResponse as el, type GetAttributeResponse2 as em, type GetAttributeResponses as en, type GetConfigData as eo, type GetConfigError as ep, type GetConfigErrors as eq, type GetConfigResponse as er, type GetConfigResponse2 as es, type GetConfigResponses as et, type GetConnectorData as eu, type GetConnectorError as ev, type GetConnectorErrors as ew, type GetConnectorResponse as ex, type GetConnectorResponses as ey, type GetCurrentProjectData as ez, type AckOpsItemResponse2 as f, type JulesTriggerConfig as f$, type GetExperimentReadoutResponses as f0, type GetExperimentResponse as f1, type GetExperimentResponses as f2, type GetExperimentResultsData as f3, type GetExperimentResultsError as f4, type GetExperimentResultsErrors as f5, type GetExperimentResultsResponse as f6, type GetExperimentResultsResponse2 as f7, type GetExperimentResultsResponses as f8, type GetExperimentTimeseriesData as f9, type GetMetricData as fA, type GetMetricError as fB, type GetMetricErrors as fC, type GetMetricResponse as fD, type GetMetricResponse2 as fE, type GetMetricResponses as fF, type GetMetricSeriesData as fG, type GetMetricSeriesError as fH, type GetMetricSeriesErrors as fI, type GetMetricSeriesRequest as fJ, type GetMetricSeriesResponse as fK, type GetMetricSeriesResponse2 as fL, type GetMetricSeriesResponses as fM, type GetOpsItemData as fN, type GetOpsItemError as fO, type GetOpsItemErrors as fP, type GetOpsItemResponse as fQ, type GetOpsItemResponse2 as fR, type GetOpsItemResponses as fS, type GetProjectData as fT, type GetProjectError as fU, type GetProjectErrors as fV, type GetProjectResponse as fW, type GetProjectResponses as fX, type GithubConnectorData as fY, type GithubPrLink as fZ, type I18nDraft as f_, type GetExperimentTimeseriesError as fa, type GetExperimentTimeseriesErrors as fb, type GetExperimentTimeseriesResponse as fc, type GetExperimentTimeseriesResponse2 as fd, type GetExperimentTimeseriesResponses as fe, type GetGateData as ff, type GetGateError as fg, type GetGateErrors as fh, type GetGateResponse as fi, type GetGateResponses as fj, type GetGateTemplateData as fk, type GetGateTemplateError as fl, type GetGateTemplateErrors as fm, type GetGateTemplateResponse as fn, type GetGateTemplateResponses as fo, type GetGateWhitelistData as fp, type GetGateWhitelistError as fq, type GetGateWhitelistErrors as fr, type GetGateWhitelistResponse as fs, type GetGateWhitelistResponses as ft, type GetKillswitchData as fu, type GetKillswitchError as fv, type GetKillswitchErrors as fw, type GetKillswitchResponse as fx, type GetKillswitchResponse2 as fy, type GetKillswitchResponses as fz, type AckOpsItemResponses as g, type ListExperimentsData as g$, type KeyRecord as g0, type KillswitchValue as g1, type LinkPrToOpsItemData as g2, type LinkPrToOpsItemError as g3, type LinkPrToOpsItemErrors as g4, type LinkPrToOpsItemRequest as g5, type LinkPrToOpsItemResponse as g6, type LinkPrToOpsItemResponse2 as g7, type LinkPrToOpsItemResponses as g8, type ListAlertRulesData as g9, type ListConfigVersionsResponse as gA, type ListConfigVersionsResponse2 as gB, type ListConfigVersionsResponses as gC, type ListConfigsData as gD, type ListConfigsError as gE, type ListConfigsErrors as gF, type ListConfigsResponse as gG, type ListConfigsResponse2 as gH, type ListConfigsResponses as gI, type ListConnectorsData as gJ, type ListConnectorsError as gK, type ListConnectorsErrors as gL, type ListConnectorsResponse as gM, type ListConnectorsResponse2 as gN, type ListConnectorsResponses as gO, type ListErrorsData as gP, type ListErrorsError as gQ, type ListErrorsErrors as gR, type ListErrorsResponse as gS, type ListErrorsResponse2 as gT, type ListErrorsResponses as gU, type ListEventsData as gV, type ListEventsError as gW, type ListEventsErrors as gX, type ListEventsResponse as gY, type ListEventsResponse2 as gZ, type ListEventsResponses as g_, type ListAlertRulesError as ga, type ListAlertRulesErrors as gb, type ListAlertRulesResponse as gc, type ListAlertRulesResponse2 as gd, type ListAlertRulesResponses as ge, type ListAlertsData as gf, type ListAlertsError as gg, type ListAlertsErrors as gh, type ListAlertsResponse as gi, type ListAlertsResponse2 as gj, type ListAlertsResponses as gk, type ListAttributesData as gl, type ListAttributesError as gm, type ListAttributesErrors as gn, type ListAttributesResponse as go, type ListAttributesResponse2 as gp, type ListAttributesResponses as gq, type ListConfigActivityData as gr, type ListConfigActivityError as gs, type ListConfigActivityErrors as gt, type ListConfigActivityResponse as gu, type ListConfigActivityResponse2 as gv, type ListConfigActivityResponses as gw, type ListConfigVersionsData as gx, type ListConfigVersionsError as gy, type ListConfigVersionsErrors as gz, type AddToGateWhitelistData as h, type ListMetricExperimentsResponse2 as h$, type ListExperimentsError as h0, type ListExperimentsErrors as h1, type ListExperimentsResponse as h2, type ListExperimentsResponse2 as h3, type ListExperimentsResponses as h4, type ListGateActivityData as h5, type ListGateActivityError as h6, type ListGateActivityErrors as h7, type ListGateActivityResponse as h8, type ListGateActivityResponse2 as h9, type ListI18nKeysError as hA, type ListI18nKeysErrors as hB, type ListI18nKeysResponse as hC, type ListI18nKeysResponse2 as hD, type ListI18nKeysResponses as hE, type ListI18nProfilesData as hF, type ListI18nProfilesError as hG, type ListI18nProfilesErrors as hH, type ListI18nProfilesResponse as hI, type ListI18nProfilesResponse2 as hJ, type ListI18nProfilesResponses as hK, type ListKeysData as hL, type ListKeysError as hM, type ListKeysErrors as hN, type ListKeysResponse as hO, type ListKeysResponse2 as hP, type ListKeysResponses as hQ, type ListKillswitchesData as hR, type ListKillswitchesError as hS, type ListKillswitchesErrors as hT, type ListKillswitchesResponse as hU, type ListKillswitchesResponse2 as hV, type ListKillswitchesResponses as hW, type ListMetricExperimentsData as hX, type ListMetricExperimentsError as hY, type ListMetricExperimentsErrors as hZ, type ListMetricExperimentsResponse as h_, type ListGateActivityResponses as ha, type ListGateTemplatesData as hb, type ListGateTemplatesError as hc, type ListGateTemplatesErrors as hd, type ListGateTemplatesResponse as he, type ListGateTemplatesResponse2 as hf, type ListGateTemplatesResponses as hg, type ListGatesData as hh, type ListGatesError as hi, type ListGatesErrors as hj, type ListGatesResponse as hk, type ListGatesResponse2 as hl, type ListGatesResponses as hm, type ListI18nDraftKeysData as hn, type ListI18nDraftKeysError as ho, type ListI18nDraftKeysErrors as hp, type ListI18nDraftKeysResponse as hq, type ListI18nDraftKeysResponse2 as hr, type ListI18nDraftKeysResponses as hs, type ListI18nDraftsData as ht, type ListI18nDraftsError as hu, type ListI18nDraftsErrors as hv, type ListI18nDraftsResponse as hw, type ListI18nDraftsResponse2 as hx, type ListI18nDraftsResponses as hy, type ListI18nKeysData as hz, type AddToGateWhitelistError as i, type OpsAgentProfile as i$, type ListMetricExperimentsResponses as i0, type ListMetricsData as i1, type ListMetricsError as i2, type ListMetricsErrors as i3, type ListMetricsResponse as i4, type ListMetricsResponse2 as i5, type ListMetricsResponses as i6, type ListOpsAgentsData as i7, type ListOpsAgentsError as i8, type ListOpsAgentsErrors as i9, type ListSlackChannelsResponse as iA, type ListSlackChannelsResponse2 as iB, type ListSlackChannelsResponses as iC, type ListUniversesData as iD, type ListUniversesError as iE, type ListUniversesErrors as iF, type ListUniversesResponse as iG, type ListUniversesResponse2 as iH, type ListUniversesResponses as iI, type MeasurePlanResource as iJ, type MeasurePlanStep as iK, type MetricDefaultMinEffectOfInterest as iL, type MetricDirection as iM, type MetricDisplayUnit as iN, type MetricEventName as iO, type MetricName as iP, type MetricQueryDsl as iQ, type MetricWinsorizePct as iR, type NotificationTarget as iS, type NotifyOpsData as iT, type NotifyOpsError as iU, type NotifyOpsErrors as iV, type NotifyOpsRequest as iW, type NotifyOpsResponse as iX, type NotifyOpsResponse2 as iY, type NotifyOpsResponses as iZ, type OkResponse as i_, type ListOpsAgentsResponse as ia, type ListOpsAgentsResponse2 as ib, type ListOpsAgentsResponses as ic, type ListOpsCommentsData as id, type ListOpsCommentsError as ie, type ListOpsCommentsErrors as ig, type ListOpsCommentsResponse as ih, type ListOpsCommentsResponse2 as ii, type ListOpsCommentsResponses as ij, type ListOpsInvestigationsData as ik, type ListOpsInvestigationsError as il, type ListOpsInvestigationsErrors as im, type ListOpsInvestigationsResponse as io, type ListOpsInvestigationsResponse2 as ip, type ListOpsInvestigationsResponses as iq, type ListOpsItemsData as ir, type ListOpsItemsError as is, type ListOpsItemsErrors as it, type ListOpsItemsResponse as iu, type ListOpsItemsResponse2 as iv, type ListOpsItemsResponses as iw, type ListSlackChannelsData as ix, type ListSlackChannelsError as iy, type ListSlackChannelsErrors as iz, type AddToGateWhitelistErrors as j, type ResolveErrorErrors as j$, type OpsAlertContext as j0, type OpsAlertMetricSummary as j1, type OpsAlertRuleSummary as j2, type OpsBrowserContext as j3, type OpsComment as j4, type OpsCommentAuthorType as j5, type OpsErrorContext as j6, type OpsInvestigation as j7, type OpsInvestigationState as j8, type OpsItemAttachment as j9, type PublishI18nProfileResponse as jA, type PublishI18nProfileResponse2 as jB, type PublishI18nProfileResponses as jC, type PushI18nKeysData as jD, type PushI18nKeysError as jE, type PushI18nKeysErrors as jF, type PushI18nKeysRequest as jG, type PushI18nKeysResponse as jH, type PushI18nKeysResponse2 as jI, type PushI18nKeysResponses as jJ, type Q as jK, type QueryIr as jL, type ReanalyzeExperimentData as jM, type ReanalyzeExperimentError as jN, type ReanalyzeExperimentErrors as jO, type ReanalyzeExperimentResponse as jP, type ReanalyzeExperimentResponse2 as jQ, type ReanalyzeExperimentResponses as jR, type RemoveFromGateWhitelistData as jS, type RemoveFromGateWhitelistError as jT, type RemoveFromGateWhitelistErrors as jU, type RemoveFromGateWhitelistRequest as jV, type RemoveFromGateWhitelistResponse as jW, type RemoveFromGateWhitelistResponses as jX, type RequestResult as jY, type ResolveErrorData as jZ, type ResolveErrorError as j_, type OpsItemContext as ja, type OpsItemNotifyOrNull as jb, type OpsItemOwner as jc, type OpsItemPriority as jd, type OpsItemPriorityOrNull as je, type OpsItemRelated as jf, type OpsItemStatus as jg, type OpsMeasurePlanContext as jh, type OpsRun as ji, type OpsRunAction as jj, type OpsRunActionOrNull as jk, type Options$1 as jl, type PaginationCursor as jm, type PaginationLimit as jn, type ProjectId as jo, type PublishConfigDraftData as jp, type PublishConfigDraftError as jq, type PublishConfigDraftErrors as jr, type PublishConfigDraftRequest as js, type PublishConfigDraftResponse as jt, type PublishConfigDraftResponse2 as ju, type PublishConfigDraftResponses as jv, type PublishI18nProfileData as jw, type PublishI18nProfileError as jx, type PublishI18nProfileErrors as jy, type PublishI18nProfileRequest as jz, type AddToGateWhitelistRequest as k, type SetKillswitchValueResponses as k$, type ResolveErrorResponse as k0, type ResolveErrorResponses as k1, type ResourceId as k2, type RevokeKeyData as k3, type RevokeKeyError as k4, type RevokeKeyErrors as k5, type RevokeKeyResponse as k6, type RevokeKeyResponse2 as k7, type RevokeKeyResponses as k8, type SaveConfigDraftData as k9, type SetExperimentStatusResponses as kA, type SetGateWhitelistData as kB, type SetGateWhitelistError as kC, type SetGateWhitelistErrors as kD, type SetGateWhitelistRequest as kE, type SetGateWhitelistResponse as kF, type SetGateWhitelistResponses as kG, type SetI18nLabelData as kH, type SetI18nLabelError as kI, type SetI18nLabelErrors as kJ, type SetI18nLabelRequest as kK, type SetI18nLabelResponse as kL, type SetI18nLabelResponse2 as kM, type SetI18nLabelResponses as kN, type SetKillswitchSwitchData as kO, type SetKillswitchSwitchError as kP, type SetKillswitchSwitchErrors as kQ, type SetKillswitchSwitchRequest as kR, type SetKillswitchSwitchResponse as kS, type SetKillswitchSwitchResponse2 as kT, type SetKillswitchSwitchResponses as kU, type SetKillswitchValueData as kV, type SetKillswitchValueError as kW, type SetKillswitchValueErrors as kX, type SetKillswitchValueRequest as kY, type SetKillswitchValueResponse as kZ, type SetKillswitchValueResponse2 as k_, type SaveConfigDraftError as ka, type SaveConfigDraftErrors as kb, type SaveConfigDraftRequest as kc, type SaveConfigDraftResponse as kd, type SaveConfigDraftResponse2 as ke, type SaveConfigDraftResponses as kf, type SearchHit as kg, type SearchResourcesData as kh, type SearchResourcesError as ki, type SearchResourcesErrors as kj, type SearchResourcesResponse as kk, type SearchResourcesResponses as kl, type SearchResponse as km, type SetExperimentMetricsData as kn, type SetExperimentMetricsError as ko, type SetExperimentMetricsErrors as kp, type SetExperimentMetricsRequest as kq, type SetExperimentMetricsResponse as kr, type SetExperimentMetricsResponse2 as ks, type SetExperimentMetricsResponses as kt, type SetExperimentStatusData as ku, type SetExperimentStatusError as kv, type SetExperimentStatusErrors as kw, type SetExperimentStatusRequest as kx, type SetExperimentStatusResponse as ky, type SetExperimentStatusResponse2 as kz, type AddToGateWhitelistResponse as l, type UpdateConfigSchemaResponse2 as l$, type SlackConnectorData as l0, type TestConnectorData as l1, type TestConnectorError as l2, type TestConnectorErrors as l3, type TestConnectorResponse as l4, type TestConnectorResponse2 as l5, type TestConnectorResponses as l6, type ToggleKillswitchData as l7, type ToggleKillswitchError as l8, type ToggleKillswitchErrors as l9, type UpdateAlertRuleError as lA, type UpdateAlertRuleErrors as lB, type UpdateAlertRuleRequest as lC, type UpdateAlertRuleResponse as lD, type UpdateAlertRuleResponse2 as lE, type UpdateAlertRuleResponses as lF, type UpdateAttributeData as lG, type UpdateAttributeError as lH, type UpdateAttributeErrors as lI, type UpdateAttributeRequest as lJ, type UpdateAttributeResponse as lK, type UpdateAttributeResponse2 as lL, type UpdateAttributeResponses as lM, type UpdateBugRequest as lN, type UpdateClaudeTriggerRequest as lO, type UpdateConfigData as lP, type UpdateConfigError as lQ, type UpdateConfigErrors as lR, type UpdateConfigRequest as lS, type UpdateConfigResponse as lT, type UpdateConfigResponse2 as lU, type UpdateConfigResponses as lV, type UpdateConfigSchemaData as lW, type UpdateConfigSchemaError as lX, type UpdateConfigSchemaErrors as lY, type UpdateConfigSchemaRequest as lZ, type UpdateConfigSchemaResponse as l_, type ToggleKillswitchRequest as la, type ToggleKillswitchResponse as lb, type ToggleKillswitchResponse2 as lc, type ToggleKillswitchResponses as ld, type UnarchiveMetricData as le, type UnarchiveMetricError as lf, type UnarchiveMetricErrors as lg, type UnarchiveMetricResponse as lh, type UnarchiveMetricResponse2 as li, type UnarchiveMetricResponses as lj, type UniverseParam as lk, type UniverseParamSchema as ll, type UnsetKillswitchSwitchData as lm, type UnsetKillswitchSwitchError as ln, type UnsetKillswitchSwitchErrors as lo, type UnsetKillswitchSwitchRequest as lp, type UnsetKillswitchSwitchResponse as lq, type UnsetKillswitchSwitchResponse2 as lr, type UnsetKillswitchSwitchResponses as ls, type UpdateAlertData as lt, type UpdateAlertError as lu, type UpdateAlertErrors as lv, type UpdateAlertRequest as lw, type UpdateAlertResponse as lx, type UpdateAlertResponses as ly, type UpdateAlertRuleData as lz, type AddToGateWhitelistResponses as m, type UpdateKillswitchResponse as m$, type UpdateConfigSchemaResponses as m0, type UpdateConnectorData as m1, type UpdateConnectorError as m2, type UpdateConnectorErrors as m3, type UpdateConnectorRequest as m4, type UpdateConnectorResponse as m5, type UpdateConnectorResponse2 as m6, type UpdateConnectorResponses as m7, type UpdateCopilotTriggerRequest as m8, type UpdateCursorTriggerRequest as m9, type UpdateGateResponse2 as mA, type UpdateGateResponses as mB, type UpdateGateTemplateData as mC, type UpdateGateTemplateError as mD, type UpdateGateTemplateErrors as mE, type UpdateGateTemplateRequest as mF, type UpdateGateTemplateResponse as mG, type UpdateGateTemplateResponse2 as mH, type UpdateGateTemplateResponses as mI, type UpdateI18nDraftData as mJ, type UpdateI18nDraftError as mK, type UpdateI18nDraftErrors as mL, type UpdateI18nDraftRequest as mM, type UpdateI18nDraftResponse as mN, type UpdateI18nDraftResponses as mO, type UpdateI18nKeyData as mP, type UpdateI18nKeyError as mQ, type UpdateI18nKeyErrors as mR, type UpdateI18nKeyRequest as mS, type UpdateI18nKeyResponse as mT, type UpdateI18nKeyResponse2 as mU, type UpdateI18nKeyResponses as mV, type UpdateJulesTriggerRequest as mW, type UpdateKillswitchData as mX, type UpdateKillswitchError as mY, type UpdateKillswitchErrors as mZ, type UpdateKillswitchRequest as m_, type UpdateErrorStatusData as ma, type UpdateErrorStatusError as mb, type UpdateErrorStatusErrors as mc, type UpdateErrorStatusRequest as md, type UpdateErrorStatusResponse as me, type UpdateErrorStatusResponses as mf, type UpdateEventData as mg, type UpdateEventError as mh, type UpdateEventErrors as mi, type UpdateEventRequest as mj, type UpdateEventResponse as mk, type UpdateEventResponse2 as ml, type UpdateEventResponses as mm, type UpdateExperimentData as mn, type UpdateExperimentError as mo, type UpdateExperimentErrors as mp, type UpdateExperimentRequest as mq, type UpdateExperimentResponse as mr, type UpdateExperimentResponse2 as ms, type UpdateExperimentResponses as mt, type UpdateFeatureRequestRequest as mu, type UpdateGateData as mv, type UpdateGateError as mw, type UpdateGateErrors as mx, type UpdateGateRequest as my, type UpdateGateResponse as mz, type AlertApiRow as n, type UpsertProjectResponses as n$, type UpdateKillswitchResponse2 as n0, type UpdateKillswitchResponses as n1, type UpdateMetricData as n2, type UpdateMetricError as n3, type UpdateMetricErrors as n4, type UpdateMetricFields as n5, type UpdateMetricRequest as n6, type UpdateMetricResponse as n7, type UpdateMetricResponses as n8, type UpdateMetricWithQuery as n9, type UpdateTriggerConnectorResponses as nA, type UpdateUniverseData as nB, type UpdateUniverseError as nC, type UpdateUniverseErrors as nD, type UpdateUniverseRequest as nE, type UpdateUniverseResponse as nF, type UpdateUniverseResponse2 as nG, type UpdateUniverseResponses as nH, type UpsertI18nDraftKeyData as nI, type UpsertI18nDraftKeyError as nJ, type UpsertI18nDraftKeyErrors as nK, type UpsertI18nDraftKeyRequest as nL, type UpsertI18nDraftKeyResponse as nM, type UpsertI18nDraftKeyResponses as nN, type UpsertI18nKeysData as nO, type UpsertI18nKeysError as nP, type UpsertI18nKeysErrors as nQ, type UpsertI18nKeysRequest as nR, type UpsertI18nKeysResponse as nS, type UpsertI18nKeysResponse2 as nT, type UpsertI18nKeysResponses as nU, type UpsertProjectData as nV, type UpsertProjectError as nW, type UpsertProjectErrors as nX, type UpsertProjectRequest as nY, type UpsertProjectResponse as nZ, type UpsertProjectResponse2 as n_, type UpdateMetricWithQueryIr as na, type UpdateOpsInvestigationData as nb, type UpdateOpsInvestigationError as nc, type UpdateOpsInvestigationErrors as nd, type UpdateOpsInvestigationRequest as ne, type UpdateOpsInvestigationResponse as nf, type UpdateOpsInvestigationResponses as ng, type UpdateOpsItemData as nh, type UpdateOpsItemError as ni, type UpdateOpsItemErrors as nj, type UpdateOpsItemRequest as nk, type UpdateOpsItemResponse as nl, type UpdateOpsItemResponse2 as nm, type UpdateOpsItemResponses as nn, type UpdateOpsItemStatusRequest as no, type UpdateProjectData as np, type UpdateProjectError as nq, type UpdateProjectErrors as nr, type UpdateProjectRequest as ns, type UpdateProjectResponse as nt, type UpdateProjectResponses as nu, type UpdateTriggerConnectorData as nv, type UpdateTriggerConnectorError as nw, type UpdateTriggerConnectorErrors as nx, type UpdateTriggerConnectorRequest as ny, type UpdateTriggerConnectorResponse as nz, type ApproveEventData as o, getMetric as o$, ackOpsItem as o0, addToGateWhitelist as o1, approveEvent as o2, client as o3, configure as o4, createAlertRule as o5, createAttribute as o6, createClient as o7, createConfig$1 as o8, createConfig as o9, deleteI18nDraft as oA, deleteI18nKey as oB, deleteI18nProfile as oC, deleteKillswitch as oD, deleteMetric as oE, deleteOpsItem as oF, deleteUniverse as oG, disableGate as oH, discardConfigDraft as oI, enableGate as oJ, fileErrorTicket as oK, fireConnector as oL, getAttribute as oM, getConfig as oN, getConnector as oO, getCurrentProject as oP, getError as oQ, getErrorSeries as oR, getEvent as oS, getExperiment as oT, getExperimentReadout as oU, getExperimentResults as oV, getExperimentTimeseries as oW, getGate as oX, getGateTemplate as oY, getGateWhitelist as oZ, getKillswitch as o_, createConnector as oa, createEvent as ob, createExperiment as oc, createExperimentReadout as od, createGate as oe, createGateTemplate as of, createI18nDraft as og, createI18nProfile as oh, createKey as oi, createKillswitch as oj, createMetric as ok, createOpsComment as ol, createOpsInvestigation as om, createOpsItem as on, createPublicBug as oo, createPublicFeatureRequest as op, createTriggerConnector as oq, createUniverse as or, deleteAlertRule as os, deleteAttribute as ot, deleteConfig as ou, deleteConnector as ov, deleteEvent as ow, deleteExperiment as ox, deleteGate as oy, deleteGateTemplate as oz, type ApproveEventError as p, updateI18nKey as p$, getMetricSeries as p0, getOpsItem as p1, getProject as p2, linkPrToOpsItem as p3, listAlertRules as p4, listAlerts as p5, listAttributes as p6, listConfigActivity as p7, listConfigVersions as p8, listConfigs as p9, removeFromGateWhitelist as pA, resolveError as pB, revokeKey as pC, saveConfigDraft as pD, searchResources as pE, setExperimentMetrics as pF, setExperimentStatus as pG, setGateWhitelist as pH, setI18nLabel as pI, setKillswitchSwitch as pJ, setKillswitchValue as pK, testConnector as pL, toggleKillswitch as pM, unarchiveMetric as pN, unsetKillswitchSwitch as pO, updateAlert as pP, updateAlertRule as pQ, updateAttribute as pR, updateConfig as pS, updateConfigSchema as pT, updateConnector as pU, updateErrorStatus as pV, updateEvent as pW, updateExperiment as pX, updateGate as pY, updateGateTemplate as pZ, updateI18nDraft as p_, listConnectors as pa, listErrors as pb, listEvents as pc, listExperiments as pd, listGateActivity as pe, listGateTemplates as pf, listGates as pg, listI18nDraftKeys as ph, listI18nDrafts as pi, listI18nKeys as pj, listI18nProfiles as pk, listKeys as pl, listKillswitches as pm, listMetricExperiments as pn, listMetrics as po, listOpsAgents as pp, listOpsComments as pq, listOpsInvestigations as pr, listOpsItems as ps, listSlackChannels as pt, listUniverses as pu, notifyOps as pv, publishConfigDraft as pw, publishI18nProfile as px, pushI18nKeys as py, reanalyzeExperiment as pz, type ApproveEventErrors as q, updateKillswitch as q0, updateMetric as q1, updateOpsInvestigation as q2, updateOpsItem as q3, updateProject as q4, updateTriggerConnector as q5, updateUniverse as q6, upsertI18nDraftKey as q7, upsertI18nKeys as q8, upsertProject as q9, type ApproveEventRequest as r, type ApproveEventResponse as s, type ApproveEventResponse2 as t, type ApproveEventResponses as u, type AttributeType as v, type Client as w, type ClientOptions as x, type Config as y, type ConfigName as z };
|
|
16701
|
+
export { type ConnectorProvider as $, type AckOpsItemData as A, type ApproveEventResponse as B, type ApproveEventResponse2 as C, type ApproveEventResponses as D, type ErrorCode as E, type AskOpsQuestionInput as F, type AskOpsQuestionsData as G, type AskOpsQuestionsError as H, type AskOpsQuestionsErrors as I, type AskOpsQuestionsRequest as J, type AskOpsQuestionsResponse as K, type AskOpsQuestionsResponse2 as L, type AskOpsQuestionsResponses as M, type AttributeType as N, type CancelOpsQuestionData as O, type CancelOpsQuestionError as P, type CancelOpsQuestionErrors as Q, type CancelOpsQuestionResponse as R, type CancelOpsQuestionResponses as S, type ClaudeTriggerConfig as T, type Client as U, type ClientOptions as V, type Config as W, type ConfigName as X, type ConfigureOptions as Y, type ConnectorData as Z, type ConnectorEvent as _, type Error as a, type CreateGateResponse2 as a$, type ConnectorRecord as a0, type CopilotTriggerConfig as a1, type CopilotTriggerRepo as a2, type CreateAlertRuleData as a3, type CreateAlertRuleError as a4, type CreateAlertRuleErrors as a5, type CreateAlertRuleRequest as a6, type CreateAlertRuleResponse as a7, type CreateAlertRuleResponse2 as a8, type CreateAlertRuleResponses as a9, type CreateEventData as aA, type CreateEventError as aB, type CreateEventErrors as aC, type CreateEventRequest as aD, type CreateEventResponse as aE, type CreateEventResponse2 as aF, type CreateEventResponses as aG, type CreateExperimentData as aH, type CreateExperimentError as aI, type CreateExperimentErrors as aJ, type CreateExperimentReadoutData as aK, type CreateExperimentReadoutError as aL, type CreateExperimentReadoutErrors as aM, type CreateExperimentReadoutRequest as aN, type CreateExperimentReadoutResponse as aO, type CreateExperimentReadoutResponse2 as aP, type CreateExperimentReadoutResponses as aQ, type CreateExperimentRequest as aR, type CreateExperimentResponse as aS, type CreateExperimentResponse2 as aT, type CreateExperimentResponses as aU, type CreateFeatureRequestRequest as aV, type CreateGateData as aW, type CreateGateError as aX, type CreateGateErrors as aY, type CreateGateRequest as aZ, type CreateGateResponse as a_, type CreateAttributeData as aa, type CreateAttributeError as ab, type CreateAttributeErrors as ac, type CreateAttributeRequest as ad, type CreateAttributeResponse as ae, type CreateAttributeResponse2 as af, type CreateAttributeResponses as ag, type CreateBugRequest as ah, type CreateClaudeTriggerRequest as ai, type CreateClientConfig as aj, type CreateConfigData as ak, type CreateConfigError as al, type CreateConfigErrors as am, type CreateConfigRequest as an, type CreateConfigResponse as ao, type CreateConfigResponse2 as ap, type CreateConfigResponses as aq, type CreateConnectorData as ar, type CreateConnectorError as as, type CreateConnectorErrors as at, type CreateConnectorRequest as au, type CreateConnectorResponse as av, type CreateConnectorResponse2 as aw, type CreateConnectorResponses as ax, type CreateCopilotTriggerRequest as ay, type CreateCursorTriggerRequest as az, type AckOpsItemError as b, type CreateOpsItemResponse as b$, type CreateGateResponses as b0, type CreateGateTemplateData as b1, type CreateGateTemplateError as b2, type CreateGateTemplateErrors as b3, type CreateGateTemplateRequest as b4, type CreateGateTemplateResponse as b5, type CreateGateTemplateResponse2 as b6, type CreateGateTemplateResponses as b7, type CreateI18nDraftData as b8, type CreateI18nDraftError as b9, type CreateMetricData as bA, type CreateMetricError as bB, type CreateMetricErrors as bC, type CreateMetricRequest as bD, type CreateMetricResponse as bE, type CreateMetricResponse2 as bF, type CreateMetricResponses as bG, type CreateMetricWithQuery as bH, type CreateMetricWithQueryIr as bI, type CreateOAuthConnectorRequest as bJ, type CreateOpsCommentData as bK, type CreateOpsCommentError as bL, type CreateOpsCommentErrors as bM, type CreateOpsCommentRequest as bN, type CreateOpsCommentResponse as bO, type CreateOpsCommentResponse2 as bP, type CreateOpsCommentResponses as bQ, type CreateOpsInvestigationData as bR, type CreateOpsInvestigationError as bS, type CreateOpsInvestigationErrors as bT, type CreateOpsInvestigationRequest as bU, type CreateOpsInvestigationResponse as bV, type CreateOpsInvestigationResponses as bW, type CreateOpsItemData as bX, type CreateOpsItemError as bY, type CreateOpsItemErrors as bZ, type CreateOpsItemRequest as b_, type CreateI18nDraftErrors as ba, type CreateI18nDraftRequest as bb, type CreateI18nDraftResponse as bc, type CreateI18nDraftResponses as bd, type CreateI18nProfileData as be, type CreateI18nProfileError as bf, type CreateI18nProfileErrors as bg, type CreateI18nProfileRequest as bh, type CreateI18nProfileResponse as bi, type CreateI18nProfileResponse2 as bj, type CreateI18nProfileResponses as bk, type CreateJulesTriggerRequest as bl, type CreateKeyData as bm, type CreateKeyError as bn, type CreateKeyErrors as bo, type CreateKeyRequest as bp, type CreateKeyResponse as bq, type CreateKeyResponse2 as br, type CreateKeyResponses as bs, type CreateKillswitchData as bt, type CreateKillswitchError as bu, type CreateKillswitchErrors as bv, type CreateKillswitchRequest as bw, type CreateKillswitchResponse as bx, type CreateKillswitchResponse2 as by, type CreateKillswitchResponses as bz, type AckOpsItemErrors as c, type DeleteEventResponse as c$, type CreateOpsItemResponse2 as c0, type CreateOpsItemResponses as c1, type CreateOpsQaNoteData as c2, type CreateOpsQaNoteError as c3, type CreateOpsQaNoteErrors as c4, type CreateOpsQaNoteRequest as c5, type CreateOpsQaNoteResponse as c6, type CreateOpsQaNoteResponses as c7, type CreatePublicBugData as c8, type CreatePublicBugError as c9, type DeleteAlertRuleData as cA, type DeleteAlertRuleError as cB, type DeleteAlertRuleErrors as cC, type DeleteAlertRuleResponse as cD, type DeleteAlertRuleResponse2 as cE, type DeleteAlertRuleResponses as cF, type DeleteAttributeData as cG, type DeleteAttributeError as cH, type DeleteAttributeErrors as cI, type DeleteAttributeResponse as cJ, type DeleteAttributeResponse2 as cK, type DeleteAttributeResponses as cL, type DeleteConfigData as cM, type DeleteConfigError as cN, type DeleteConfigErrors as cO, type DeleteConfigResponse as cP, type DeleteConfigResponse2 as cQ, type DeleteConfigResponses as cR, type DeleteConnectorData as cS, type DeleteConnectorError as cT, type DeleteConnectorErrors as cU, type DeleteConnectorResponse as cV, type DeleteConnectorResponse2 as cW, type DeleteConnectorResponses as cX, type DeleteEventData as cY, type DeleteEventError as cZ, type DeleteEventErrors as c_, type CreatePublicBugErrors as ca, type CreatePublicBugRequest as cb, type CreatePublicBugResponse as cc, type CreatePublicBugResponses as cd, type CreatePublicFeatureRequestData as ce, type CreatePublicFeatureRequestError as cf, type CreatePublicFeatureRequestErrors as cg, type CreatePublicFeatureRequestRequest as ch, type CreatePublicFeatureRequestResponse as ci, type CreatePublicFeatureRequestResponses as cj, type CreatePublicTicketResponse as ck, type CreateTriggerConnectorData as cl, type CreateTriggerConnectorError as cm, type CreateTriggerConnectorErrors as cn, type CreateTriggerConnectorRequest as co, type CreateTriggerConnectorResponse as cp, type CreateTriggerConnectorResponses as cq, type CreateUniverseData as cr, type CreateUniverseError as cs, type CreateUniverseErrors as ct, type CreateUniverseRequest as cu, type CreateUniverseResponse as cv, type CreateUniverseResponse2 as cw, type CreateUniverseResponses as cx, type CursorTriggerConfig as cy, type CursorTriggerRepo as cz, type AckOpsItemRequest as d, type DisableGateResponse as d$, type DeleteEventResponse2 as d0, type DeleteEventResponses as d1, type DeleteExperimentData as d2, type DeleteExperimentError as d3, type DeleteExperimentErrors as d4, type DeleteExperimentResponse as d5, type DeleteExperimentResponse2 as d6, type DeleteExperimentResponses as d7, type DeleteGateData as d8, type DeleteGateError as d9, type DeleteKillswitchData as dA, type DeleteKillswitchError as dB, type DeleteKillswitchErrors as dC, type DeleteKillswitchResponse as dD, type DeleteKillswitchResponse2 as dE, type DeleteKillswitchResponses as dF, type DeleteMetricData as dG, type DeleteMetricError as dH, type DeleteMetricErrors as dI, type DeleteMetricResponse as dJ, type DeleteMetricResponse2 as dK, type DeleteMetricResponses as dL, type DeleteOpsItemData as dM, type DeleteOpsItemError as dN, type DeleteOpsItemErrors as dO, type DeleteOpsItemResponse as dP, type DeleteOpsItemResponse2 as dQ, type DeleteOpsItemResponses as dR, type DeleteUniverseData as dS, type DeleteUniverseError as dT, type DeleteUniverseErrors as dU, type DeleteUniverseResponse as dV, type DeleteUniverseResponse2 as dW, type DeleteUniverseResponses as dX, type DisableGateData as dY, type DisableGateError as dZ, type DisableGateErrors as d_, type DeleteGateErrors as da, type DeleteGateResponse as db, type DeleteGateResponse2 as dc, type DeleteGateResponses as dd, type DeleteGateTemplateData as de, type DeleteGateTemplateError as df, type DeleteGateTemplateErrors as dg, type DeleteGateTemplateResponse as dh, type DeleteGateTemplateResponse2 as di, type DeleteGateTemplateResponses as dj, type DeleteI18nDraftData as dk, type DeleteI18nDraftError as dl, type DeleteI18nDraftErrors as dm, type DeleteI18nDraftResponse as dn, type DeleteI18nDraftResponses as dp, type DeleteI18nKeyData as dq, type DeleteI18nKeyError as dr, type DeleteI18nKeyErrors as ds, type DeleteI18nKeyResponse as dt, type DeleteI18nKeyResponses as du, type DeleteI18nProfileData as dv, type DeleteI18nProfileError as dw, type DeleteI18nProfileErrors as dx, type DeleteI18nProfileResponse as dy, type DeleteI18nProfileResponses as dz, type AckOpsItemResponse as e, type GetConnectorResponse as e$, type DisableGateResponse2 as e0, type DisableGateResponses as e1, type DiscardConfigDraftData as e2, type DiscardConfigDraftError as e3, type DiscardConfigDraftErrors as e4, type DiscardConfigDraftRequest as e5, type DiscardConfigDraftResponse as e6, type DiscardConfigDraftResponse2 as e7, type DiscardConfigDraftResponses as e8, type Domain as e9, type FireConnectorErrors as eA, type FireConnectorRequest as eB, type FireConnectorResponse as eC, type FireConnectorResponse2 as eD, type FireConnectorResponses as eE, type Folder as eF, type GateApiRow as eG, type GateTemplate as eH, type GateTemplateRule as eI, type GateTemplateRuleResponse as eJ, type GateWhitelist as eK, type GateWhitelistAttr as eL, type GetAttributeData as eM, type GetAttributeError as eN, type GetAttributeErrors as eO, type GetAttributeResponse as eP, type GetAttributeResponse2 as eQ, type GetAttributeResponses as eR, type GetConfigData as eS, type GetConfigError as eT, type GetConfigErrors as eU, type GetConfigResponse as eV, type GetConfigResponse2 as eW, type GetConfigResponses as eX, type GetConnectorData as eY, type GetConnectorError as eZ, type GetConnectorErrors as e_, type EnableGateData as ea, type EnableGateError as eb, type EnableGateErrors as ec, type EnableGateResponse as ed, type EnableGateResponse2 as ee, type EnableGateResponses as ef, type EntityTagsResponse as eg, type Env as eh, type ErrorOccurrence as ei, type ErrorRecord as ej, type ErrorSeriesRequest as ek, type ErrorSeriesResponse as el, type ExperimentApiRow as em, type ExperimentInlineMetric as en, type ExperimentReadoutApiRow as eo, type ExperimentReadoutCaveat as ep, type ExperimentReadoutMetric as eq, type ExperimentResultRow as er, type FileErrorTicketData as es, type FileErrorTicketError as et, type FileErrorTicketErrors as eu, type FileErrorTicketResponse as ev, type FileErrorTicketResponse2 as ew, type FileErrorTicketResponses as ex, type FireConnectorData as ey, type FireConnectorError as ez, type AckOpsItemResponse2 as f, type GetGateWhitelistResponse as f$, type GetConnectorResponses as f0, type GetCurrentProjectData as f1, type GetCurrentProjectError as f2, type GetCurrentProjectErrors as f3, type GetCurrentProjectResponse as f4, type GetCurrentProjectResponse2 as f5, type GetCurrentProjectResponses as f6, type GetEntityTagsData as f7, type GetEntityTagsError as f8, type GetEntityTagsErrors as f9, type GetExperimentResponse as fA, type GetExperimentResponses as fB, type GetExperimentResultsData as fC, type GetExperimentResultsError as fD, type GetExperimentResultsErrors as fE, type GetExperimentResultsResponse as fF, type GetExperimentResultsResponse2 as fG, type GetExperimentResultsResponses as fH, type GetExperimentTimeseriesData as fI, type GetExperimentTimeseriesError as fJ, type GetExperimentTimeseriesErrors as fK, type GetExperimentTimeseriesResponse as fL, type GetExperimentTimeseriesResponse2 as fM, type GetExperimentTimeseriesResponses as fN, type GetGateData as fO, type GetGateError as fP, type GetGateErrors as fQ, type GetGateResponse as fR, type GetGateResponses as fS, type GetGateTemplateData as fT, type GetGateTemplateError as fU, type GetGateTemplateErrors as fV, type GetGateTemplateResponse as fW, type GetGateTemplateResponses as fX, type GetGateWhitelistData as fY, type GetGateWhitelistError as fZ, type GetGateWhitelistErrors as f_, type GetEntityTagsResponse as fa, type GetEntityTagsResponses as fb, type GetErrorData as fc, type GetErrorError as fd, type GetErrorErrors as fe, type GetErrorResponse as ff, type GetErrorResponses as fg, type GetErrorSeriesData as fh, type GetErrorSeriesError as fi, type GetErrorSeriesErrors as fj, type GetErrorSeriesResponse as fk, type GetErrorSeriesResponses as fl, type GetEventData as fm, type GetEventError as fn, type GetEventErrors as fo, type GetEventResponse as fp, type GetEventResponse2 as fq, type GetEventResponses as fr, type GetExperimentData as fs, type GetExperimentError as ft, type GetExperimentErrors as fu, type GetExperimentReadoutData as fv, type GetExperimentReadoutError as fw, type GetExperimentReadoutErrors as fx, type GetExperimentReadoutResponse as fy, type GetExperimentReadoutResponses as fz, type AckOpsItemResponses as g, type ListConfigActivityError as g$, type GetGateWhitelistResponses as g0, type GetKillswitchData as g1, type GetKillswitchError as g2, type GetKillswitchErrors as g3, type GetKillswitchResponse as g4, type GetKillswitchResponse2 as g5, type GetKillswitchResponses as g6, type GetMetricData as g7, type GetMetricError as g8, type GetMetricErrors as g9, type KillswitchValue as gA, type LinkPrToOpsItemData as gB, type LinkPrToOpsItemError as gC, type LinkPrToOpsItemErrors as gD, type LinkPrToOpsItemRequest as gE, type LinkPrToOpsItemResponse as gF, type LinkPrToOpsItemResponse2 as gG, type LinkPrToOpsItemResponses as gH, type ListAlertRulesData as gI, type ListAlertRulesError as gJ, type ListAlertRulesErrors as gK, type ListAlertRulesResponse as gL, type ListAlertRulesResponse2 as gM, type ListAlertRulesResponses as gN, type ListAlertsData as gO, type ListAlertsError as gP, type ListAlertsErrors as gQ, type ListAlertsResponse as gR, type ListAlertsResponse2 as gS, type ListAlertsResponses as gT, type ListAttributesData as gU, type ListAttributesError as gV, type ListAttributesErrors as gW, type ListAttributesResponse as gX, type ListAttributesResponse2 as gY, type ListAttributesResponses as gZ, type ListConfigActivityData as g_, type GetMetricResponse as ga, type GetMetricResponse2 as gb, type GetMetricResponses as gc, type GetMetricSeriesData as gd, type GetMetricSeriesError as ge, type GetMetricSeriesErrors as gf, type GetMetricSeriesRequest as gg, type GetMetricSeriesResponse as gh, type GetMetricSeriesResponse2 as gi, type GetMetricSeriesResponses as gj, type GetOpsItemData as gk, type GetOpsItemError as gl, type GetOpsItemErrors as gm, type GetOpsItemResponse as gn, type GetOpsItemResponse2 as go, type GetOpsItemResponses as gp, type GetProjectData as gq, type GetProjectError as gr, type GetProjectErrors as gs, type GetProjectResponse as gt, type GetProjectResponses as gu, type GithubConnectorData as gv, type GithubPrLink as gw, type I18nDraft as gx, type JulesTriggerConfig as gy, type KeyRecord as gz, type AddToGateWhitelistData as h, type ListI18nDraftKeysResponses as h$, type ListConfigActivityErrors as h0, type ListConfigActivityResponse as h1, type ListConfigActivityResponse2 as h2, type ListConfigActivityResponses as h3, type ListConfigVersionsData as h4, type ListConfigVersionsError as h5, type ListConfigVersionsErrors as h6, type ListConfigVersionsResponse as h7, type ListConfigVersionsResponse2 as h8, type ListConfigVersionsResponses as h9, type ListExperimentsErrors as hA, type ListExperimentsResponse as hB, type ListExperimentsResponse2 as hC, type ListExperimentsResponses as hD, type ListGateActivityData as hE, type ListGateActivityError as hF, type ListGateActivityErrors as hG, type ListGateActivityResponse as hH, type ListGateActivityResponse2 as hI, type ListGateActivityResponses as hJ, type ListGateTemplatesData as hK, type ListGateTemplatesError as hL, type ListGateTemplatesErrors as hM, type ListGateTemplatesResponse as hN, type ListGateTemplatesResponse2 as hO, type ListGateTemplatesResponses as hP, type ListGatesData as hQ, type ListGatesError as hR, type ListGatesErrors as hS, type ListGatesResponse as hT, type ListGatesResponse2 as hU, type ListGatesResponses as hV, type ListI18nDraftKeysData as hW, type ListI18nDraftKeysError as hX, type ListI18nDraftKeysErrors as hY, type ListI18nDraftKeysResponse as hZ, type ListI18nDraftKeysResponse2 as h_, type ListConfigsData as ha, type ListConfigsError as hb, type ListConfigsErrors as hc, type ListConfigsResponse as hd, type ListConfigsResponse2 as he, type ListConfigsResponses as hf, type ListConnectorsData as hg, type ListConnectorsError as hh, type ListConnectorsErrors as hi, type ListConnectorsResponse as hj, type ListConnectorsResponse2 as hk, type ListConnectorsResponses as hl, type ListErrorsData as hm, type ListErrorsError as hn, type ListErrorsErrors as ho, type ListErrorsResponse as hp, type ListErrorsResponse2 as hq, type ListErrorsResponses as hr, type ListEventsData as hs, type ListEventsError as ht, type ListEventsErrors as hu, type ListEventsResponse as hv, type ListEventsResponse2 as hw, type ListEventsResponses as hx, type ListExperimentsData as hy, type ListExperimentsError as hz, type AddToGateWhitelistError as i, type ListOpsItemsError as i$, type ListI18nDraftsData as i0, type ListI18nDraftsError as i1, type ListI18nDraftsErrors as i2, type ListI18nDraftsResponse as i3, type ListI18nDraftsResponse2 as i4, type ListI18nDraftsResponses as i5, type ListI18nKeysData as i6, type ListI18nKeysError as i7, type ListI18nKeysErrors as i8, type ListI18nKeysResponse as i9, type ListMetricExperimentsResponse2 as iA, type ListMetricExperimentsResponses as iB, type ListMetricsData as iC, type ListMetricsError as iD, type ListMetricsErrors as iE, type ListMetricsResponse as iF, type ListMetricsResponse2 as iG, type ListMetricsResponses as iH, type ListOpsAgentsData as iI, type ListOpsAgentsError as iJ, type ListOpsAgentsErrors as iK, type ListOpsAgentsResponse as iL, type ListOpsAgentsResponse2 as iM, type ListOpsAgentsResponses as iN, type ListOpsCommentsData as iO, type ListOpsCommentsError as iP, type ListOpsCommentsErrors as iQ, type ListOpsCommentsResponse as iR, type ListOpsCommentsResponse2 as iS, type ListOpsCommentsResponses as iT, type ListOpsInvestigationsData as iU, type ListOpsInvestigationsError as iV, type ListOpsInvestigationsErrors as iW, type ListOpsInvestigationsResponse as iX, type ListOpsInvestigationsResponse2 as iY, type ListOpsInvestigationsResponses as iZ, type ListOpsItemsData as i_, type ListI18nKeysResponse2 as ia, type ListI18nKeysResponses as ib, type ListI18nProfilesData as ic, type ListI18nProfilesError as id, type ListI18nProfilesErrors as ie, type ListI18nProfilesResponse as ig, type ListI18nProfilesResponse2 as ih, type ListI18nProfilesResponses as ii, type ListKeysData as ij, type ListKeysError as ik, type ListKeysErrors as il, type ListKeysResponse as im, type ListKeysResponse2 as io, type ListKeysResponses as ip, type ListKillswitchesData as iq, type ListKillswitchesError as ir, type ListKillswitchesErrors as is, type ListKillswitchesResponse as it, type ListKillswitchesResponse2 as iu, type ListKillswitchesResponses as iv, type ListMetricExperimentsData as iw, type ListMetricExperimentsError as ix, type ListMetricExperimentsErrors as iy, type ListMetricExperimentsResponse as iz, type AddToGateWhitelistErrors as j, type OpsInvestigationState as j$, type ListOpsItemsErrors as j0, type ListOpsItemsResponse as j1, type ListOpsItemsResponse2 as j2, type ListOpsItemsResponses as j3, type ListOpsQaNotesData as j4, type ListOpsQaNotesError as j5, type ListOpsQaNotesErrors as j6, type ListOpsQaNotesResponse as j7, type ListOpsQaNotesResponse2 as j8, type ListOpsQaNotesResponses as j9, type MetricDefaultMinEffectOfInterest as jA, type MetricDirection as jB, type MetricDisplayConfig as jC, type MetricDisplayName as jD, type MetricDisplayUnit as jE, type MetricEventName as jF, type MetricName as jG, type MetricQueryDsl as jH, type MetricWinsorizePct as jI, type NotificationTarget as jJ, type NotifyOpsData as jK, type NotifyOpsError as jL, type NotifyOpsErrors as jM, type NotifyOpsRequest as jN, type NotifyOpsResponse as jO, type NotifyOpsResponse2 as jP, type NotifyOpsResponses as jQ, type OkResponse as jR, type OpsAgentProfile as jS, type OpsAlertContext as jT, type OpsAlertMetricSummary as jU, type OpsAlertRuleSummary as jV, type OpsBrowserContext as jW, type OpsComment as jX, type OpsCommentAuthorType as jY, type OpsErrorContext as jZ, type OpsInvestigation as j_, type ListOpsQuestionsData as ja, type ListOpsQuestionsError as jb, type ListOpsQuestionsErrors as jc, type ListOpsQuestionsResponse as jd, type ListOpsQuestionsResponse2 as je, type ListOpsQuestionsResponses as jf, type ListSlackChannelsData as jg, type ListSlackChannelsError as jh, type ListSlackChannelsErrors as ji, type ListSlackChannelsResponse as jj, type ListSlackChannelsResponse2 as jk, type ListSlackChannelsResponses as jl, type ListTagsData as jm, type ListTagsError as jn, type ListTagsErrors as jo, type ListTagsResponse as jp, type ListTagsResponse2 as jq, type ListTagsResponses as jr, type ListUniversesData as js, type ListUniversesError as jt, type ListUniversesErrors as ju, type ListUniversesResponse as jv, type ListUniversesResponse2 as jw, type ListUniversesResponses as jx, type MeasurePlanResource as jy, type MeasurePlanStep as jz, type AddToGateWhitelistRequest as k, type ResolveErrorResponse as k$, type OpsItemAttachment as k0, type OpsItemContext as k1, type OpsItemNotifyOrNull as k2, type OpsItemOwner as k3, type OpsItemPriority as k4, type OpsItemPriorityOrNull as k5, type OpsItemRelated as k6, type OpsItemStatus as k7, type OpsMeasurePlanContext as k8, type OpsQaNote as k9, type PublishI18nProfileResponse2 as kA, type PublishI18nProfileResponses as kB, type PushI18nKeysData as kC, type PushI18nKeysError as kD, type PushI18nKeysErrors as kE, type PushI18nKeysRequest as kF, type PushI18nKeysResponse as kG, type PushI18nKeysResponse2 as kH, type PushI18nKeysResponses as kI, type Q as kJ, type QueryIr as kK, type ReanalyzeExperimentData as kL, type ReanalyzeExperimentError as kM, type ReanalyzeExperimentErrors as kN, type ReanalyzeExperimentResponse as kO, type ReanalyzeExperimentResponse2 as kP, type ReanalyzeExperimentResponses as kQ, type RemoveFromGateWhitelistData as kR, type RemoveFromGateWhitelistError as kS, type RemoveFromGateWhitelistErrors as kT, type RemoveFromGateWhitelistRequest as kU, type RemoveFromGateWhitelistResponse as kV, type RemoveFromGateWhitelistResponses as kW, type RequestResult as kX, type ResolveErrorData as kY, type ResolveErrorError as kZ, type ResolveErrorErrors as k_, type OpsQaNoteKind as ka, type OpsQaNoteVerdict as kb, type OpsQuestion as kc, type OpsQuestionAnswer as kd, type OpsQuestionDelivery as ke, type OpsQuestionOption as kf, type OpsQuestionStatus as kg, type OpsRun as kh, type OpsRunAction as ki, type OpsRunActionOrNull as kj, type Options$1 as kk, type PaginationCursor as kl, type PaginationLimit as km, type ProjectId as kn, type PublishConfigDraftData as ko, type PublishConfigDraftError as kp, type PublishConfigDraftErrors as kq, type PublishConfigDraftRequest as kr, type PublishConfigDraftResponse as ks, type PublishConfigDraftResponse2 as kt, type PublishConfigDraftResponses as ku, type PublishI18nProfileData as kv, type PublishI18nProfileError as kw, type PublishI18nProfileErrors as kx, type PublishI18nProfileRequest as ky, type PublishI18nProfileResponse as kz, type AddToGateWhitelistResponse as l, type SetKillswitchValueError as l$, type ResolveErrorResponses as l0, type ResourceId as l1, type RevokeKeyData as l2, type RevokeKeyError as l3, type RevokeKeyErrors as l4, type RevokeKeyResponse as l5, type RevokeKeyResponse2 as l6, type RevokeKeyResponses as l7, type SaveConfigDraftData as l8, type SaveConfigDraftError as l9, type SetExperimentStatusError as lA, type SetExperimentStatusErrors as lB, type SetExperimentStatusRequest as lC, type SetExperimentStatusResponse as lD, type SetExperimentStatusResponse2 as lE, type SetExperimentStatusResponses as lF, type SetGateWhitelistData as lG, type SetGateWhitelistError as lH, type SetGateWhitelistErrors as lI, type SetGateWhitelistRequest as lJ, type SetGateWhitelistResponse as lK, type SetGateWhitelistResponses as lL, type SetI18nLabelData as lM, type SetI18nLabelError as lN, type SetI18nLabelErrors as lO, type SetI18nLabelRequest as lP, type SetI18nLabelResponse as lQ, type SetI18nLabelResponse2 as lR, type SetI18nLabelResponses as lS, type SetKillswitchSwitchData as lT, type SetKillswitchSwitchError as lU, type SetKillswitchSwitchErrors as lV, type SetKillswitchSwitchRequest as lW, type SetKillswitchSwitchResponse as lX, type SetKillswitchSwitchResponse2 as lY, type SetKillswitchSwitchResponses as lZ, type SetKillswitchValueData as l_, type SaveConfigDraftErrors as la, type SaveConfigDraftRequest as lb, type SaveConfigDraftResponse as lc, type SaveConfigDraftResponse2 as ld, type SaveConfigDraftResponses as le, type SearchHit as lf, type SearchResourcesData as lg, type SearchResourcesError as lh, type SearchResourcesErrors as li, type SearchResourcesResponse as lj, type SearchResourcesResponses as lk, type SearchResponse as ll, type SetEntityTagsData as lm, type SetEntityTagsError as ln, type SetEntityTagsErrors as lo, type SetEntityTagsRequest as lp, type SetEntityTagsResponse as lq, type SetEntityTagsResponses as lr, type SetExperimentMetricsData as ls, type SetExperimentMetricsError as lt, type SetExperimentMetricsErrors as lu, type SetExperimentMetricsRequest as lv, type SetExperimentMetricsResponse as lw, type SetExperimentMetricsResponse2 as lx, type SetExperimentMetricsResponses as ly, type SetExperimentStatusData as lz, type AddToGateWhitelistResponses as m, type UpdateConfigResponse as m$, type SetKillswitchValueErrors as m0, type SetKillswitchValueRequest as m1, type SetKillswitchValueResponse as m2, type SetKillswitchValueResponse2 as m3, type SetKillswitchValueResponses as m4, type SlackConnectorData as m5, type Tag as m6, type TagName as m7, type TaggableEntityType as m8, type TestConnectorData as m9, type UnsetKillswitchSwitchResponses as mA, type UpdateAlertData as mB, type UpdateAlertError as mC, type UpdateAlertErrors as mD, type UpdateAlertRequest as mE, type UpdateAlertResponse as mF, type UpdateAlertResponses as mG, type UpdateAlertRuleData as mH, type UpdateAlertRuleError as mI, type UpdateAlertRuleErrors as mJ, type UpdateAlertRuleRequest as mK, type UpdateAlertRuleResponse as mL, type UpdateAlertRuleResponse2 as mM, type UpdateAlertRuleResponses as mN, type UpdateAttributeData as mO, type UpdateAttributeError as mP, type UpdateAttributeErrors as mQ, type UpdateAttributeRequest as mR, type UpdateAttributeResponse as mS, type UpdateAttributeResponse2 as mT, type UpdateAttributeResponses as mU, type UpdateBugRequest as mV, type UpdateClaudeTriggerRequest as mW, type UpdateConfigData as mX, type UpdateConfigError as mY, type UpdateConfigErrors as mZ, type UpdateConfigRequest as m_, type TestConnectorError as ma, type TestConnectorErrors as mb, type TestConnectorResponse as mc, type TestConnectorResponse2 as md, type TestConnectorResponses as me, type ToggleKillswitchData as mf, type ToggleKillswitchError as mg, type ToggleKillswitchErrors as mh, type ToggleKillswitchRequest as mi, type ToggleKillswitchResponse as mj, type ToggleKillswitchResponse2 as mk, type ToggleKillswitchResponses as ml, type UnarchiveMetricData as mm, type UnarchiveMetricError as mn, type UnarchiveMetricErrors as mo, type UnarchiveMetricResponse as mp, type UnarchiveMetricResponse2 as mq, type UnarchiveMetricResponses as mr, type UniverseParam as ms, type UniverseParamSchema as mt, type UnsetKillswitchSwitchData as mu, type UnsetKillswitchSwitchError as mv, type UnsetKillswitchSwitchErrors as mw, type UnsetKillswitchSwitchRequest as mx, type UnsetKillswitchSwitchResponse as my, type UnsetKillswitchSwitchResponse2 as mz, type AlertApiRow as n, type UpdateI18nDraftResponse as n$, type UpdateConfigResponse2 as n0, type UpdateConfigResponses as n1, type UpdateConfigSchemaData as n2, type UpdateConfigSchemaError as n3, type UpdateConfigSchemaErrors as n4, type UpdateConfigSchemaRequest as n5, type UpdateConfigSchemaResponse as n6, type UpdateConfigSchemaResponse2 as n7, type UpdateConfigSchemaResponses as n8, type UpdateConnectorData as n9, type UpdateEventResponses as nA, type UpdateExperimentData as nB, type UpdateExperimentError as nC, type UpdateExperimentErrors as nD, type UpdateExperimentRequest as nE, type UpdateExperimentResponse as nF, type UpdateExperimentResponse2 as nG, type UpdateExperimentResponses as nH, type UpdateFeatureRequestRequest as nI, type UpdateGateData as nJ, type UpdateGateError as nK, type UpdateGateErrors as nL, type UpdateGateRequest as nM, type UpdateGateResponse as nN, type UpdateGateResponse2 as nO, type UpdateGateResponses as nP, type UpdateGateTemplateData as nQ, type UpdateGateTemplateError as nR, type UpdateGateTemplateErrors as nS, type UpdateGateTemplateRequest as nT, type UpdateGateTemplateResponse as nU, type UpdateGateTemplateResponse2 as nV, type UpdateGateTemplateResponses as nW, type UpdateI18nDraftData as nX, type UpdateI18nDraftError as nY, type UpdateI18nDraftErrors as nZ, type UpdateI18nDraftRequest as n_, type UpdateConnectorError as na, type UpdateConnectorErrors as nb, type UpdateConnectorRequest as nc, type UpdateConnectorResponse as nd, type UpdateConnectorResponse2 as ne, type UpdateConnectorResponses as nf, type UpdateCopilotTriggerRequest as ng, type UpdateCursorTriggerRequest as nh, type UpdateEntityTagsData as ni, type UpdateEntityTagsError as nj, type UpdateEntityTagsErrors as nk, type UpdateEntityTagsRequest as nl, type UpdateEntityTagsResponse as nm, type UpdateEntityTagsResponses as nn, type UpdateErrorStatusData as no, type UpdateErrorStatusError as np, type UpdateErrorStatusErrors as nq, type UpdateErrorStatusRequest as nr, type UpdateErrorStatusResponse as ns, type UpdateErrorStatusResponses as nt, type UpdateEventData as nu, type UpdateEventError as nv, type UpdateEventErrors as nw, type UpdateEventRequest as nx, type UpdateEventResponse as ny, type UpdateEventResponse2 as nz, type AlertCompositeSpec as o, type UpdateUniverseResponses as o$, type UpdateI18nDraftResponses as o0, type UpdateI18nKeyData as o1, type UpdateI18nKeyError as o2, type UpdateI18nKeyErrors as o3, type UpdateI18nKeyRequest as o4, type UpdateI18nKeyResponse as o5, type UpdateI18nKeyResponse2 as o6, type UpdateI18nKeyResponses as o7, type UpdateJulesTriggerRequest as o8, type UpdateKeyData as o9, type UpdateOpsInvestigationResponses as oA, type UpdateOpsItemData as oB, type UpdateOpsItemError as oC, type UpdateOpsItemErrors as oD, type UpdateOpsItemRequest as oE, type UpdateOpsItemResponse as oF, type UpdateOpsItemResponse2 as oG, type UpdateOpsItemResponses as oH, type UpdateOpsItemStatusRequest as oI, type UpdateProjectData as oJ, type UpdateProjectError as oK, type UpdateProjectErrors as oL, type UpdateProjectRequest as oM, type UpdateProjectResponse as oN, type UpdateProjectResponses as oO, type UpdateTriggerConnectorData as oP, type UpdateTriggerConnectorError as oQ, type UpdateTriggerConnectorErrors as oR, type UpdateTriggerConnectorRequest as oS, type UpdateTriggerConnectorResponse as oT, type UpdateTriggerConnectorResponses as oU, type UpdateUniverseData as oV, type UpdateUniverseError as oW, type UpdateUniverseErrors as oX, type UpdateUniverseRequest as oY, type UpdateUniverseResponse as oZ, type UpdateUniverseResponse2 as o_, type UpdateKeyError as oa, type UpdateKeyErrors as ob, type UpdateKeyRequest as oc, type UpdateKeyResponse as od, type UpdateKeyResponses as oe, type UpdateKillswitchData as of, type UpdateKillswitchError as og, type UpdateKillswitchErrors as oh, type UpdateKillswitchRequest as oi, type UpdateKillswitchResponse as oj, type UpdateKillswitchResponse2 as ok, type UpdateKillswitchResponses as ol, type UpdateMetricData as om, type UpdateMetricError as on, type UpdateMetricErrors as oo, type UpdateMetricFields as op, type UpdateMetricRequest as oq, type UpdateMetricResponse as or, type UpdateMetricResponses as os, type UpdateMetricWithQuery as ot, type UpdateMetricWithQueryIr as ou, type UpdateOpsInvestigationData as ov, type UpdateOpsInvestigationError as ow, type UpdateOpsInvestigationErrors as ox, type UpdateOpsInvestigationRequest as oy, type UpdateOpsInvestigationResponse as oz, type AlertRuleNotify as p, deleteKillswitch as p$, type UpsertI18nDraftKeyData as p0, type UpsertI18nDraftKeyError as p1, type UpsertI18nDraftKeyErrors as p2, type UpsertI18nDraftKeyRequest as p3, type UpsertI18nDraftKeyResponse as p4, type UpsertI18nDraftKeyResponses as p5, type UpsertI18nKeysData as p6, type UpsertI18nKeysError as p7, type UpsertI18nKeysErrors as p8, type UpsertI18nKeysRequest as p9, createExperimentReadout as pA, createGate as pB, createGateTemplate as pC, createI18nDraft as pD, createI18nProfile as pE, createKey as pF, createKillswitch as pG, createMetric as pH, createOpsComment as pI, createOpsInvestigation as pJ, createOpsItem as pK, createOpsQaNote as pL, createPublicBug as pM, createPublicFeatureRequest as pN, createTriggerConnector as pO, createUniverse as pP, deleteAlertRule as pQ, deleteAttribute as pR, deleteConfig as pS, deleteConnector as pT, deleteEvent as pU, deleteExperiment as pV, deleteGate as pW, deleteGateTemplate as pX, deleteI18nDraft as pY, deleteI18nKey as pZ, deleteI18nProfile as p_, type UpsertI18nKeysResponse as pa, type UpsertI18nKeysResponse2 as pb, type UpsertI18nKeysResponses as pc, type UpsertProjectData as pd, type UpsertProjectError as pe, type UpsertProjectErrors as pf, type UpsertProjectRequest as pg, type UpsertProjectResponse as ph, type UpsertProjectResponse2 as pi, type UpsertProjectResponses as pj, ackOpsItem as pk, addToGateWhitelist as pl, answerOpsQuestion as pm, approveEvent as pn, askOpsQuestions as po, cancelOpsQuestion as pp, client as pq, configure as pr, createAlertRule as ps, createAttribute as pt, createClient as pu, createConfig$1 as pv, createConfig as pw, createConnector as px, createEvent as py, createExperiment as pz, type AnswerOpsQuestionData as q, reanalyzeExperiment as q$, deleteMetric as q0, deleteOpsItem as q1, deleteUniverse as q2, disableGate as q3, discardConfigDraft as q4, enableGate as q5, fileErrorTicket as q6, fireConnector as q7, getAttribute as q8, getConfig as q9, listErrors as qA, listEvents as qB, listExperiments as qC, listGateActivity as qD, listGateTemplates as qE, listGates as qF, listI18nDraftKeys as qG, listI18nDrafts as qH, listI18nKeys as qI, listI18nProfiles as qJ, listKeys as qK, listKillswitches as qL, listMetricExperiments as qM, listMetrics as qN, listOpsAgents as qO, listOpsComments as qP, listOpsInvestigations as qQ, listOpsItems as qR, listOpsQaNotes as qS, listOpsQuestions as qT, listSlackChannels as qU, listTags as qV, listUniverses as qW, notifyOps as qX, publishConfigDraft as qY, publishI18nProfile as qZ, pushI18nKeys as q_, getConnector as qa, getCurrentProject as qb, getEntityTags as qc, getError as qd, getErrorSeries as qe, getEvent as qf, getExperiment as qg, getExperimentReadout as qh, getExperimentResults as qi, getExperimentTimeseries as qj, getGate as qk, getGateTemplate as ql, getGateWhitelist as qm, getKillswitch as qn, getMetric as qo, getMetricSeries as qp, getOpsItem as qq, getProject as qr, linkPrToOpsItem as qs, listAlertRules as qt, listAlerts as qu, listAttributes as qv, listConfigActivity as qw, listConfigVersions as qx, listConfigs as qy, listConnectors as qz, type AnswerOpsQuestionError as r, removeFromGateWhitelist as r0, resolveError as r1, revokeKey as r2, saveConfigDraft as r3, searchResources as r4, setEntityTags as r5, setExperimentMetrics as r6, setExperimentStatus as r7, setGateWhitelist as r8, setI18nLabel as r9, updateTriggerConnector as rA, updateUniverse as rB, upsertI18nDraftKey as rC, upsertI18nKeys as rD, upsertProject as rE, setKillswitchSwitch as ra, setKillswitchValue as rb, testConnector as rc, toggleKillswitch as rd, unarchiveMetric as re, unsetKillswitchSwitch as rf, updateAlert as rg, updateAlertRule as rh, updateAttribute as ri, updateConfig as rj, updateConfigSchema as rk, updateConnector as rl, updateEntityTags as rm, updateErrorStatus as rn, updateEvent as ro, updateExperiment as rp, updateGate as rq, updateGateTemplate as rr, updateI18nDraft as rs, updateI18nKey as rt, updateKey as ru, updateKillswitch as rv, updateMetric as rw, updateOpsInvestigation as rx, updateOpsItem as ry, updateProject as rz, type AnswerOpsQuestionErrors as s, type AnswerOpsQuestionRequest as t, type AnswerOpsQuestionResponse as u, type AnswerOpsQuestionResponses as v, type ApproveEventData as w, type ApproveEventError as x, type ApproveEventErrors as y, type ApproveEventRequest as z };
|