Sign In

@shipeasy/openapi

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@shipeasy/openapi - npm Package Compare versions

Comparing version
3.1.0
to
3.2.0
dist/chunk-DW33MG4B.js

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

+1874
// src/generated/core/bodySerializer.gen.ts
var jsonBodySerializer = {
bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
};
// src/generated/core/params.gen.ts
var extraPrefixesMap = {
$body_: "body",
$headers_: "headers",
$path_: "path",
$query_: "query"
};
var extraPrefixes = Object.entries(extraPrefixesMap);
// src/generated/core/serverSentEvents.gen.ts
function createSseClient({
onRequest,
onSseError,
onSseEvent,
responseTransformer,
responseValidator,
sseDefaultRetryDelay,
sseMaxRetryAttempts,
sseMaxRetryDelay,
sseSleepFn,
url,
...options
}) {
let lastEventId;
const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
const createStream = async function* () {
let retryDelay = sseDefaultRetryDelay ?? 3e3;
let attempt = 0;
const signal = options.signal ?? new AbortController().signal;
while (true) {
if (signal.aborted) break;
attempt++;
const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
if (lastEventId !== void 0) {
headers.set("Last-Event-ID", lastEventId);
}
try {
const requestInit = {
redirect: "follow",
...options,
body: options.serializedBody,
headers,
signal
};
let request = new Request(url, requestInit);
if (onRequest) {
request = await onRequest(url, requestInit);
}
const _fetch = options.fetch ?? globalThis.fetch;
const response = await _fetch(request);
if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
if (!response.body) throw new Error("No body in SSE response");
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = "";
const abortHandler = () => {
try {
reader.cancel();
} catch {
}
};
signal.addEventListener("abort", abortHandler);
try {
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += value;
buffer = buffer.replace(/\r\n?/g, "\n");
const chunks = buffer.split("\n\n");
buffer = chunks.pop() ?? "";
for (const chunk of chunks) {
const lines = chunk.split("\n");
const dataLines = [];
let eventName;
for (const line of lines) {
if (line.startsWith("data:")) {
dataLines.push(line.replace(/^data:\s*/, ""));
} else if (line.startsWith("event:")) {
eventName = line.replace(/^event:\s*/, "");
} else if (line.startsWith("id:")) {
lastEventId = line.replace(/^id:\s*/, "");
} else if (line.startsWith("retry:")) {
const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
if (!Number.isNaN(parsed)) {
retryDelay = parsed;
}
}
}
let data;
let parsedJson = false;
if (dataLines.length) {
const rawData = dataLines.join("\n");
try {
data = JSON.parse(rawData);
parsedJson = true;
} catch {
data = rawData;
}
}
if (parsedJson) {
if (responseValidator) {
await responseValidator(data);
}
if (responseTransformer) {
data = await responseTransformer(data);
}
}
onSseEvent?.({
data,
event: eventName,
id: lastEventId,
retry: retryDelay
});
if (dataLines.length) {
yield data;
}
}
}
} finally {
signal.removeEventListener("abort", abortHandler);
reader.releaseLock();
}
break;
} catch (error) {
onSseError?.(error);
if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {
break;
}
const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4);
await sleep(backoff);
}
}
};
const stream = createStream();
return { stream };
}
// src/generated/core/pathSerializer.gen.ts
var separatorArrayExplode = (style) => {
switch (style) {
case "label":
return ".";
case "matrix":
return ";";
case "simple":
return ",";
default:
return "&";
}
};
var separatorArrayNoExplode = (style) => {
switch (style) {
case "form":
return ",";
case "pipeDelimited":
return "|";
case "spaceDelimited":
return "%20";
default:
return ",";
}
};
var separatorObjectExplode = (style) => {
switch (style) {
case "label":
return ".";
case "matrix":
return ";";
case "simple":
return ",";
default:
return "&";
}
};
var serializeArrayParam = ({
allowReserved,
explode,
name,
style,
value
}) => {
if (!explode) {
const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
switch (style) {
case "label":
return `.${joinedValues2}`;
case "matrix":
return `;${name}=${joinedValues2}`;
case "simple":
return joinedValues2;
default:
return `${name}=${joinedValues2}`;
}
}
const separator = separatorArrayExplode(style);
const joinedValues = value.map((v) => {
if (style === "label" || style === "simple") {
return allowReserved ? v : encodeURIComponent(v);
}
return serializePrimitiveParam({
allowReserved,
name,
value: v
});
}).join(separator);
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
};
var serializePrimitiveParam = ({
allowReserved,
name,
value
}) => {
if (value === void 0 || value === null) {
return "";
}
if (typeof value === "object") {
throw new Error(
"Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these."
);
}
return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
};
var serializeObjectParam = ({
allowReserved,
explode,
name,
style,
value,
valueOnly
}) => {
if (value instanceof Date) {
return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
}
if (style !== "deepObject" && !explode) {
let values = [];
Object.entries(value).forEach(([key, v]) => {
values = [...values, key, allowReserved ? v : encodeURIComponent(v)];
});
const joinedValues2 = values.join(",");
switch (style) {
case "form":
return `${name}=${joinedValues2}`;
case "label":
return `.${joinedValues2}`;
case "matrix":
return `;${name}=${joinedValues2}`;
default:
return joinedValues2;
}
}
const separator = separatorObjectExplode(style);
const joinedValues = Object.entries(value).map(
([key, v]) => serializePrimitiveParam({
allowReserved,
name: style === "deepObject" ? `${name}[${key}]` : key,
value: v
})
).join(separator);
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
};
// src/generated/core/utils.gen.ts
var PATH_PARAM_RE = /\{[^{}]+\}/g;
var defaultPathSerializer = ({ path, url: _url }) => {
let url = _url;
const matches = _url.match(PATH_PARAM_RE);
if (matches) {
for (const match of matches) {
let explode = false;
let name = match.substring(1, match.length - 1);
let style = "simple";
if (name.endsWith("*")) {
explode = true;
name = name.substring(0, name.length - 1);
}
if (name.startsWith(".")) {
name = name.substring(1);
style = "label";
} else if (name.startsWith(";")) {
name = name.substring(1);
style = "matrix";
}
const value = path[name];
if (value === void 0 || value === null) {
continue;
}
if (Array.isArray(value)) {
url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
continue;
}
if (typeof value === "object") {
url = url.replace(
match,
serializeObjectParam({
explode,
name,
style,
value,
valueOnly: true
})
);
continue;
}
if (style === "matrix") {
url = url.replace(
match,
`;${serializePrimitiveParam({
name,
value
})}`
);
continue;
}
const replaceValue = encodeURIComponent(
style === "label" ? `.${value}` : value
);
url = url.replace(match, replaceValue);
}
}
return url;
};
var getUrl = ({
baseUrl,
path,
query,
querySerializer,
url: _url
}) => {
const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
let url = (baseUrl ?? "") + pathUrl;
if (path) {
url = defaultPathSerializer({ path, url });
}
let search = query ? querySerializer(query) : "";
if (search.startsWith("?")) {
search = search.substring(1);
}
if (search) {
url += `?${search}`;
}
return url;
};
function getValidRequestBody(options) {
const hasBody = options.body !== void 0;
const isSerializedBody = hasBody && options.bodySerializer;
if (isSerializedBody) {
if ("serializedBody" in options) {
const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== "";
return hasSerializedBody ? options.serializedBody : null;
}
return options.body !== "" ? options.body : null;
}
if (hasBody) {
return options.body;
}
return void 0;
}
// src/generated/core/auth.gen.ts
var getAuthToken = async (auth, callback) => {
const token = typeof callback === "function" ? await callback(auth) : callback;
if (!token) {
return;
}
if (auth.scheme === "bearer") {
return `Bearer ${token}`;
}
if (auth.scheme === "basic") {
return `Basic ${btoa(token)}`;
}
return token;
};
// src/generated/client/utils.gen.ts
var createQuerySerializer = ({
parameters = {},
...args
} = {}) => {
const querySerializer = (queryParams) => {
const search = [];
if (queryParams && typeof queryParams === "object") {
for (const name in queryParams) {
const value = queryParams[name];
if (value === void 0 || value === null) {
continue;
}
const options = parameters[name] || args;
if (Array.isArray(value)) {
const serializedArray = serializeArrayParam({
allowReserved: options.allowReserved,
explode: true,
name,
style: "form",
value,
...options.array
});
if (serializedArray) search.push(serializedArray);
} else if (typeof value === "object") {
const serializedObject = serializeObjectParam({
allowReserved: options.allowReserved,
explode: true,
name,
style: "deepObject",
value,
...options.object
});
if (serializedObject) search.push(serializedObject);
} else {
const serializedPrimitive = serializePrimitiveParam({
allowReserved: options.allowReserved,
name,
value
});
if (serializedPrimitive) search.push(serializedPrimitive);
}
}
}
return search.join("&");
};
return querySerializer;
};
var getParseAs = (contentType) => {
if (!contentType) {
return "stream";
}
const cleanContent = contentType.split(";")[0]?.trim();
if (!cleanContent) {
return;
}
if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
return "json";
}
if (cleanContent === "multipart/form-data") {
return "formData";
}
if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
return "blob";
}
if (cleanContent.startsWith("text/")) {
return "text";
}
return;
};
var checkForExistence = (options, name) => {
if (!name) {
return false;
}
if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
return true;
}
return false;
};
async function setAuthParams(options) {
for (const auth of options.security ?? []) {
if (checkForExistence(options, auth.name)) {
continue;
}
const token = await getAuthToken(auth, options.auth);
if (!token) {
continue;
}
const name = auth.name ?? "Authorization";
switch (auth.in) {
case "query":
if (!options.query) {
options.query = {};
}
options.query[name] = token;
break;
case "cookie":
options.headers.append("Cookie", `${name}=${token}`);
break;
case "header":
default:
options.headers.set(name, token);
break;
}
}
}
var buildUrl = (options) => getUrl({
baseUrl: options.baseUrl,
path: options.path,
query: options.query,
querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
url: options.url
});
var mergeConfigs = (a, b) => {
const config = { ...a, ...b };
if (config.baseUrl?.endsWith("/")) {
config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
}
config.headers = mergeHeaders(a.headers, b.headers);
return config;
};
var headersEntries = (headers) => {
const entries = [];
headers.forEach((value, key) => {
entries.push([key, value]);
});
return entries;
};
var mergeHeaders = (...headers) => {
const mergedHeaders = new Headers();
for (const header of headers) {
if (!header) {
continue;
}
const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);
for (const [key, value] of iterator) {
if (value === null) {
mergedHeaders.delete(key);
} else if (Array.isArray(value)) {
for (const v of value) {
mergedHeaders.append(key, v);
}
} else if (value !== void 0) {
mergedHeaders.set(
key,
typeof value === "object" ? JSON.stringify(value) : value
);
}
}
}
return mergedHeaders;
};
var Interceptors = class {
fns = [];
clear() {
this.fns = [];
}
eject(id) {
const index = this.getInterceptorIndex(id);
if (this.fns[index]) {
this.fns[index] = null;
}
}
exists(id) {
const index = this.getInterceptorIndex(id);
return Boolean(this.fns[index]);
}
getInterceptorIndex(id) {
if (typeof id === "number") {
return this.fns[id] ? id : -1;
}
return this.fns.indexOf(id);
}
update(id, fn) {
const index = this.getInterceptorIndex(id);
if (this.fns[index]) {
this.fns[index] = fn;
return id;
}
return false;
}
use(fn) {
this.fns.push(fn);
return this.fns.length - 1;
}
};
var createInterceptors = () => ({
error: new Interceptors(),
request: new Interceptors(),
response: new Interceptors()
});
var defaultQuerySerializer = createQuerySerializer({
allowReserved: false,
array: {
explode: true,
style: "form"
},
object: {
explode: true,
style: "deepObject"
}
});
var defaultHeaders = {
"Content-Type": "application/json"
};
var createConfig = (override = {}) => ({
...jsonBodySerializer,
headers: defaultHeaders,
parseAs: "auto",
querySerializer: defaultQuerySerializer,
...override
});
// src/generated/client/client.gen.ts
var createClient = (config = {}) => {
let _config = mergeConfigs(createConfig(), config);
const getConfig2 = () => ({ ..._config });
const setConfig = (config2) => {
_config = mergeConfigs(_config, config2);
return getConfig2();
};
const interceptors = createInterceptors();
const beforeRequest = async (options) => {
const opts = {
..._config,
...options,
fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
headers: mergeHeaders(_config.headers, options.headers),
serializedBody: void 0
};
if (opts.security) {
await setAuthParams(opts);
}
if (opts.requestValidator) {
await opts.requestValidator(opts);
}
if (opts.body !== void 0 && opts.bodySerializer) {
opts.serializedBody = opts.bodySerializer(opts.body);
}
if (opts.body === void 0 || opts.serializedBody === "") {
opts.headers.delete("Content-Type");
}
const resolvedOpts = opts;
const url = buildUrl(resolvedOpts);
return { opts: resolvedOpts, url };
};
const request = async (options) => {
const throwOnError = options.throwOnError ?? _config.throwOnError;
const responseStyle = options.responseStyle ?? _config.responseStyle;
let request2;
let response;
try {
const { opts, url } = await beforeRequest(options);
const requestInit = {
redirect: "follow",
...opts,
body: getValidRequestBody(opts)
};
request2 = new Request(url, requestInit);
for (const fn of interceptors.request.fns) {
if (fn) {
request2 = await fn(request2, opts);
}
}
const _fetch = opts.fetch;
response = await _fetch(request2);
for (const fn of interceptors.response.fns) {
if (fn) {
response = await fn(response, request2, opts);
}
}
const result = {
request: request2,
response
};
if (response.ok) {
const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
if (response.status === 204 || response.headers.get("Content-Length") === "0") {
let emptyData;
switch (parseAs) {
case "arrayBuffer":
case "blob":
case "text":
emptyData = await response[parseAs]();
break;
case "formData":
emptyData = new FormData();
break;
case "stream":
emptyData = response.body;
break;
case "json":
default:
emptyData = {};
break;
}
return opts.responseStyle === "data" ? emptyData : {
data: emptyData,
...result
};
}
let data;
switch (parseAs) {
case "arrayBuffer":
case "blob":
case "formData":
case "text":
data = await response[parseAs]();
break;
case "json": {
const text = await response.text();
data = text ? JSON.parse(text) : {};
break;
}
case "stream":
return opts.responseStyle === "data" ? response.body : {
data: response.body,
...result
};
}
if (parseAs === "json") {
if (opts.responseValidator) {
await opts.responseValidator(data);
}
if (opts.responseTransformer) {
data = await opts.responseTransformer(data);
}
}
return opts.responseStyle === "data" ? data : {
data,
...result
};
}
const textError = await response.text();
let jsonError;
try {
jsonError = JSON.parse(textError);
} catch {
}
throw jsonError ?? textError;
} catch (error) {
let finalError = error;
for (const fn of interceptors.error.fns) {
if (fn) {
finalError = await fn(finalError, response, request2, options);
}
}
finalError = finalError || {};
if (throwOnError) {
throw finalError;
}
return responseStyle === "data" ? void 0 : {
error: finalError,
request: request2,
response
};
}
};
const makeMethodFn = (method) => (options) => request({ ...options, method });
const makeSseFn = (method) => async (options) => {
const { opts, url } = await beforeRequest(options);
return createSseClient({
...opts,
body: opts.body,
method,
onRequest: async (url2, init) => {
let request2 = new Request(url2, init);
for (const fn of interceptors.request.fns) {
if (fn) {
request2 = await fn(request2, opts);
}
}
return request2;
},
serializedBody: getValidRequestBody(opts),
url
});
};
const _buildUrl = (options) => buildUrl({ ..._config, ...options });
return {
buildUrl: _buildUrl,
connect: makeMethodFn("CONNECT"),
delete: makeMethodFn("DELETE"),
get: makeMethodFn("GET"),
getConfig: getConfig2,
head: makeMethodFn("HEAD"),
interceptors,
options: makeMethodFn("OPTIONS"),
patch: makeMethodFn("PATCH"),
post: makeMethodFn("POST"),
put: makeMethodFn("PUT"),
request,
setConfig,
sse: {
connect: makeSseFn("CONNECT"),
delete: makeSseFn("DELETE"),
get: makeSseFn("GET"),
head: makeSseFn("HEAD"),
options: makeSseFn("OPTIONS"),
patch: makeSseFn("PATCH"),
post: makeSseFn("POST"),
put: makeSseFn("PUT"),
trace: makeSseFn("TRACE")
},
trace: makeMethodFn("TRACE")
};
};
// src/generated/client.gen.ts
var client = createClient(createConfig({ baseUrl: "https://shipeasy.ai" }));
// src/generated/sdk.gen.ts
var listGates = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates",
...options
});
var createGate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteGate = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}",
...options
});
var getGate = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}",
...options
});
var updateGate = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var enableGate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/enable",
...options
});
var disableGate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/disable",
...options
});
var listGateActivity = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/activity",
...options
});
var removeFromGateWhitelist = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/whitelist",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getGateWhitelist = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/whitelist",
...options
});
var addToGateWhitelist = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/whitelist",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setGateWhitelist = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/whitelist",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listExperiments = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments",
...options
});
var createExperiment = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteExperiment = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}",
...options
});
var getExperiment = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}",
...options
});
var updateExperiment = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setExperimentStatus = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/status",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setExperimentMetrics = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/metrics",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getExperimentResults = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/results",
...options
});
var getExperimentTimeseries = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/timeseries",
...options
});
var reanalyzeExperiment = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/reanalyze",
...options
});
var createExperimentReadout = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/readouts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getExperimentReadout = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/readouts/{readoutId}",
...options
});
var listConfigs = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs",
...options
});
var createConfig2 = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteConfig = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}",
...options
});
var getConfig = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}",
...options
});
var updateConfig = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var discardConfigDraft = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/drafts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var saveConfigDraft = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/drafts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var publishConfigDraft = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/publish",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listConfigActivity = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/activity",
...options
});
var updateConfigSchema = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/schema",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listConfigVersions = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/versions",
...options
});
var listKillswitches = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches",
...options
});
var createKillswitch = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteKillswitch = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}",
...options
});
var getKillswitch = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}",
...options
});
var updateKillswitch = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var unsetKillswitchSwitch = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/switch",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setKillswitchSwitch = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/switch",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setKillswitchValue = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/value",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var toggleKillswitch = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/toggle",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listUniverses = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes",
...options
});
var createUniverse = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteUniverse = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes/{id}",
...options
});
var updateUniverse = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listGateTemplates = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates",
...options
});
var createGateTemplate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteGateTemplate = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates/{id}",
...options
});
var getGateTemplate = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates/{id}",
...options
});
var updateGateTemplate = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listAttributes = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes",
...options
});
var createAttribute = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteAttribute = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes/{id}",
...options
});
var getAttribute = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes/{id}",
...options
});
var updateAttribute = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listMetrics = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics",
...options
});
var createMetric = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteMetric = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}",
...options
});
var getMetric = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}",
...options
});
var updateMetric = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listMetricExperiments = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}/experiments",
...options
});
var unarchiveMetric = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}/unarchive",
...options
});
var getMetricSeries = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}/series",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listEvents = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events",
...options
});
var createEvent = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteEvent = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}",
...options
});
var getEvent = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}",
...options
});
var updateEvent = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var approveEvent = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}/approve",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listOpsItems = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops",
...options
});
var createOpsItem = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var createPublicBug = (options) => (options.client ?? client).post({
security: [{ name: "X-SDK-Key", type: "apiKey" }],
url: "/ops/bug",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var createPublicFeatureRequest = (options) => (options.client ?? client).post({
security: [{ name: "X-SDK-Key", type: "apiKey" }],
url: "/ops/feature-request",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteOpsItem = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}",
...options
});
var getOpsItem = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}",
...options
});
var updateOpsItem = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var linkPrToOpsItem = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/link-pr",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var ackOpsItem = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/ack",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listOpsInvestigations = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/investigation",
...options
});
var createOpsInvestigation = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/investigation",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var updateOpsInvestigation = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/investigation/{investigationId}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listOpsAgents = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/agent-profiles",
...options
});
var listOpsComments = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/comments",
...options
});
var createOpsComment = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/comments",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var notifyOps = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/notifications",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listSlackChannels = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/slack/channels",
...options
});
var listAlertRules = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules",
...options
});
var createAlertRule = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteAlertRule = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules/{id}",
...options
});
var updateAlertRule = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listAlerts = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alerts",
...options
});
var updateAlert = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alerts/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getCurrentProject = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/current",
...options
});
var upsertProject = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/upsert",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getProject = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/{id}",
...options
});
var updateProject = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listI18nProfiles = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles",
...options
});
var createI18nProfile = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listI18nKeys = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys",
...options
});
var pushI18nKeys = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var upsertI18nKeys = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteI18nKey = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys/{id}",
...options
});
var updateI18nKey = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listI18nDrafts = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts",
...options
});
var createI18nDraft = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteI18nDraft = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}",
...options
});
var updateI18nDraft = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteI18nProfile = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles/{profileId}",
...options
});
var listI18nDraftKeys = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}/keys",
...options
});
var upsertI18nDraftKey = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var publishI18nProfile = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles/{profileId}/publish",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setI18nLabel = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/set",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listErrors = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors",
...options
});
var getError = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}",
...options
});
var updateErrorStatus = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var fileErrorTicket = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}/file",
...options
});
var resolveError = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}/resolve",
...options
});
var getErrorSeries = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}/series",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listConnectors = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors",
...options
});
var createConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteConnector = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}",
...options
});
var getConnector = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}",
...options
});
var updateConnector = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var fireConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}/fire",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var testConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}/test",
...options
});
var updateTriggerConnector = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}/trigger",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var createTriggerConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/trigger",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listKeys = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/keys",
...options
});
var createKey = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var revokeKey = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/keys/{id}/revoke",
...options
});
var searchResources = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/search",
...options
});
// src/client.ts
function configure({ apiKey, projectId, baseUrl }) {
client.setConfig({
...baseUrl ? { baseUrl } : {},
auth: () => apiKey,
headers: projectId ? { "X-Project-Id": projectId } : {}
});
}
export {
createConfig,
createClient,
client,
listGates,
createGate,
deleteGate,
getGate,
updateGate,
enableGate,
disableGate,
listGateActivity,
removeFromGateWhitelist,
getGateWhitelist,
addToGateWhitelist,
setGateWhitelist,
listExperiments,
createExperiment,
deleteExperiment,
getExperiment,
updateExperiment,
setExperimentStatus,
setExperimentMetrics,
getExperimentResults,
getExperimentTimeseries,
reanalyzeExperiment,
createExperimentReadout,
getExperimentReadout,
listConfigs,
createConfig2,
deleteConfig,
getConfig,
updateConfig,
discardConfigDraft,
saveConfigDraft,
publishConfigDraft,
listConfigActivity,
updateConfigSchema,
listConfigVersions,
listKillswitches,
createKillswitch,
deleteKillswitch,
getKillswitch,
updateKillswitch,
unsetKillswitchSwitch,
setKillswitchSwitch,
setKillswitchValue,
toggleKillswitch,
listUniverses,
createUniverse,
deleteUniverse,
updateUniverse,
listGateTemplates,
createGateTemplate,
deleteGateTemplate,
getGateTemplate,
updateGateTemplate,
listAttributes,
createAttribute,
deleteAttribute,
getAttribute,
updateAttribute,
listMetrics,
createMetric,
deleteMetric,
getMetric,
updateMetric,
listMetricExperiments,
unarchiveMetric,
getMetricSeries,
listEvents,
createEvent,
deleteEvent,
getEvent,
updateEvent,
approveEvent,
listOpsItems,
createOpsItem,
createPublicBug,
createPublicFeatureRequest,
deleteOpsItem,
getOpsItem,
updateOpsItem,
linkPrToOpsItem,
ackOpsItem,
listOpsInvestigations,
createOpsInvestigation,
updateOpsInvestigation,
listOpsAgents,
listOpsComments,
createOpsComment,
notifyOps,
listSlackChannels,
listAlertRules,
createAlertRule,
deleteAlertRule,
updateAlertRule,
listAlerts,
updateAlert,
getCurrentProject,
upsertProject,
getProject,
updateProject,
listI18nProfiles,
createI18nProfile,
listI18nKeys,
pushI18nKeys,
upsertI18nKeys,
deleteI18nKey,
updateI18nKey,
listI18nDrafts,
createI18nDraft,
deleteI18nDraft,
updateI18nDraft,
deleteI18nProfile,
listI18nDraftKeys,
upsertI18nDraftKey,
publishI18nProfile,
setI18nLabel,
listErrors,
getError,
updateErrorStatus,
fileErrorTicket,
resolveError,
getErrorSeries,
listConnectors,
createConnector,
deleteConnector,
getConnector,
updateConnector,
fireConnector,
testConnector,
updateTriggerConnector,
createTriggerConnector,
listKeys,
createKey,
revokeKey,
searchResources,
configure
};
//# sourceMappingURL=chunk-RTN572TI.js.map

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

# The SERVER-SDK surface of the admin API — a second root over the same
# `paths/` and `components/schemas/` tree that `openapi.yaml` bundles.
#
# WHY A SECOND ROOT. The CLI and MCP consume the FULL spec (127 operations);
# the published server SDKs ship a deliberately tiny opt-in `AdminClient`, and
# vendoring the whole contract into eight repos bloated each generated client
# into the megabytes for operations nobody called. This file IS that smaller
# contract, declared rather than derived: `paths` below lists exactly the
# operations the SDKs expose, and `redocly bundle` pulls in only the schemas
# those operations transitively reference.
#
# WHY IT'S EXACT. Every path listed here is a dedicated, single-purpose route,
# so a path item never drags in a method the SDK shouldn't have. That is the
# reason the SDK-facing endpoints were built as their own paths instead of
# extra query/discriminator modes on the generic CRUD routes.
#
# ADDING AN OPERATION is one `$ref` here — then `pnpm gen` in this package and
# `pnpm sdk:spec:regen` in the monorepo, and commit the regenerated client
# inside each SDK submodule. A monorepo pre-commit hook blocks any commit that
# changes this contract while a vendored copy is stale.
#
# DELIBERATELY ABSENT, so nobody re-adds them by accident: everything else.
# Listing, generic CRUD, key minting, projects, connectors, i18n, errors,
# alerts, metrics, events, experiments, universes, templates, attributes, and
# the AI-agent working seam (ack / link-pr / investigations) all stay reachable
# through the CLI and MCP, which read `openapi.yaml`.
openapi: 3.2.0
info:
title: Shipeasy Admin API (server-SDK surface)
version: 2.0.0
description: |-
The slice of the Shipeasy admin API that the published server SDKs expose as their optional `AdminClient`. Authenticate with an admin SDK key (`Authorization: Bearer sdk_admin_…`) and scope every request to a project via the `X-Project-Id` header.
Three capabilities, nothing else:
- **File a public ticket** — a bug or a feature request onto the project's ops queue.
- **Toggle a kill switch** — flip the switch itself, or one of its named sub-switches, on one environment.
- **Manage a flag's whitelist** — read, replace, add to, or remove from the allowlist that admits specific identities ahead of every targeting rule.
Everything else in the admin API is reachable through the Shipeasy CLI and MCP server, which speak the complete contract (`openapi.yaml`).
contact:
name: Shipeasy
url: https://shipeasy.ai
license:
name: Proprietary
identifier: LicenseRef-Proprietary
servers:
- url: https://shipeasy.ai
description: Production
- url: http://localhost:3000
description: Local Next.js dev server
security:
- bearerSdkKey: []
tags:
- name: Flags
description: A feature gate's whitelist — the always-first allowlist that admits named identities before any targeting rule or percentage rollout runs.
- name: Killswitch
description: Per-env boolean overrides for incident response. `toggle` reads the current value and publishes its opposite in one call, on the flat value or on one named sub-switch.
- name: Ops
description: The public ticket queue — filing a bug or a feature request, which also fires the project's GitHub/Slack connectors.
paths:
/ops/bug:
$ref: ./paths/ops.yaml#/~1ops~1bug
/ops/feature-request:
$ref: ./paths/ops.yaml#/~1ops~1feature-request
/api/admin/killswitches/{id}/toggle:
$ref: ./paths/killswitches.yaml#/~1api~1admin~1killswitches~1{id}~1toggle
/api/admin/gates/{id}/whitelist:
$ref: ./paths/gates.yaml#/~1api~1admin~1gates~1{id}~1whitelist
components:
securitySchemes:
bearerSdkKey:
type: http
scheme: bearer
bearerFormat: sdk_admin_*
description: 'Pass an admin SDK key as `Authorization: Bearer sdk_admin_…`. Mint via `POST /api/admin/keys` with `type: "admin"`.'
clientSdkKey:
type: apiKey
in: header
name: X-SDK-Key
description: |-
Pass a **client** SDK key as `X-SDK-Key: sdk_client_…`. Used only by the public ticket intake (`POST /ops/bug`, `POST /ops/feature-request`), which is served by the edge worker rather than the admin API.
Client keys are designed to be embedded in shipped code — a CLI, an installer, a browser bundle — so presenting one here is safe by construction: it can do nothing but file a rate-limited ticket into its own project, in a state a human must approve. It carries no read access and cannot reach any other operation in this contract.
The key must additionally carry the `tickets:public_create` scope, and its project must have public ticket creation enabled.
+1
-1

@@ -1,1 +0,1 @@

export { q as Client, s as Config, u as ConfigureOptions, T as CreateClientConfig, iX as Options, js as RequestResult, nj as ackOpsItem, nk as approveEvent, nl as client, nm as configure, nn as createAlertRule, no as createAttribute, np as createClient, nq as createClientConfig, nr as createConfig, ns as createConnector, nt as createEvent, nu as createExperiment, nv as createExperimentReadout, nw as createGate, nx as createGateTemplate, ny as createI18nDraft, nz as createI18nProfile, nA as createKey, nB as createKillswitch, nC as createMetric, nD as createOpsComment, nE as createOpsInvestigation, nF as createOpsItem, nG as createTriggerConnector, nH as createUniverse, nI as deleteAlertRule, nJ as deleteAttribute, nK as deleteConfig, nL as deleteConnector, nM as deleteEvent, nN as deleteExperiment, nO as deleteGate, nP as deleteGateTemplate, nQ as deleteI18nDraft, nR as deleteI18nKey, nS as deleteI18nProfile, nT as deleteKillswitch, nU as deleteMetric, nV as deleteOpsItem, nW as deleteUniverse, nX as disableGate, nY as discardConfigDraft, nZ as enableGate, n_ as fileErrorTicket, n$ as fireConnector, o0 as getAttribute, o1 as getConfig, o2 as getConnector, o3 as getCurrentProject, o4 as getError, o5 as getErrorSeries, o6 as getEvent, o7 as getExperiment, o8 as getExperimentReadout, o9 as getExperimentResults, oa as getExperimentTimeseries, ob as getGate, oc as getGateTemplate, od as getKillswitch, oe as getMetric, of as getMetricSeries, og as getOpsItem, oh as getProject, oi as linkPrToOpsItem, oj as listAlertRules, ok as listAlerts, ol as listAttributes, om as listConfigActivity, on as listConfigVersions, oo as listConfigs, op as listConnectors, oq as listErrors, or as listEvents, os as listExperiments, ot as listGateActivity, ou as listGateTemplates, ov as listGates, ow as listI18nDraftKeys, ox as listI18nDrafts, oy as listI18nKeys, oz as listI18nProfiles, oA as listKeys, oB as listKillswitches, oC as listMetricExperiments, oD as listMetrics, oE as listOpsAgents, oF as listOpsComments, oG as listOpsInvestigations, oH as listOpsItems, oI as listSlackChannels, oJ as listUniverses, oK as notifyOps, oL as publishConfigDraft, oM as publishI18nProfile, oN as pushI18nKeys, oO as reanalyzeExperiment, oP as resolveError, oQ as revokeKey, oR as saveConfigDraft, oS as searchResources, oT as setExperimentMetrics, oU as setExperimentStatus, oV as setI18nLabel, oW as setKillswitchSwitch, oX as setKillswitchValue, oY as testConnector, oZ as unarchiveMetric, o_ as unsetKillswitchSwitch, o$ as updateAlert, p0 as updateAlertRule, p1 as updateAttribute, p2 as updateConfig, p3 as updateConfigSchema, p4 as updateConnector, p5 as updateErrorStatus, p6 as updateEvent, p7 as updateExperiment, p8 as updateGate, p9 as updateGateTemplate, pa as updateI18nDraft, pb as updateI18nKey, pc as updateKillswitch, pd as updateMetric, pe as updateOpsInvestigation, pf as updateOpsItem, pg as updateProject, ph as updateTriggerConnector, pi as updateUniverse, pj as upsertI18nDraftKey, pk as upsertI18nKeys, pl as upsertProject } from './client-yqGYju-M.js';
export { w as Client, y as Config, B as ConfigureOptions, Z as CreateClientConfig, jl as Options, jY as RequestResult, o0 as ackOpsItem, o1 as addToGateWhitelist, o2 as approveEvent, o3 as client, o4 as configure, o5 as createAlertRule, o6 as createAttribute, o7 as createClient, o8 as createClientConfig, o9 as createConfig, oa as createConnector, ob as createEvent, oc as createExperiment, od as createExperimentReadout, oe as createGate, of as createGateTemplate, og as createI18nDraft, oh as createI18nProfile, oi as createKey, oj as createKillswitch, ok as createMetric, ol as createOpsComment, om as createOpsInvestigation, on as createOpsItem, oo as createPublicBug, op as createPublicFeatureRequest, oq as createTriggerConnector, or as createUniverse, os as deleteAlertRule, ot as deleteAttribute, ou as deleteConfig, ov as deleteConnector, ow as deleteEvent, ox as deleteExperiment, oy as deleteGate, oz as deleteGateTemplate, oA as deleteI18nDraft, oB as deleteI18nKey, oC as deleteI18nProfile, oD as deleteKillswitch, oE as deleteMetric, oF as deleteOpsItem, oG as deleteUniverse, oH as disableGate, oI as discardConfigDraft, oJ as enableGate, oK as fileErrorTicket, oL as fireConnector, oM as getAttribute, oN as getConfig, oO as getConnector, oP as getCurrentProject, oQ as getError, oR as getErrorSeries, oS as getEvent, oT as getExperiment, oU as getExperimentReadout, oV as getExperimentResults, oW as getExperimentTimeseries, oX as getGate, oY as getGateTemplate, oZ as getGateWhitelist, o_ as getKillswitch, o$ as getMetric, p0 as getMetricSeries, p1 as getOpsItem, p2 as getProject, p3 as linkPrToOpsItem, p4 as listAlertRules, p5 as listAlerts, p6 as listAttributes, p7 as listConfigActivity, p8 as listConfigVersions, p9 as listConfigs, pa as listConnectors, pb as listErrors, pc as listEvents, pd as listExperiments, pe as listGateActivity, pf as listGateTemplates, pg as listGates, ph as listI18nDraftKeys, pi as listI18nDrafts, pj as listI18nKeys, pk as listI18nProfiles, pl as listKeys, pm as listKillswitches, pn as listMetricExperiments, po as listMetrics, pp as listOpsAgents, pq as listOpsComments, pr as listOpsInvestigations, ps as listOpsItems, pt as listSlackChannels, pu as listUniverses, pv as notifyOps, pw as publishConfigDraft, px as publishI18nProfile, py as pushI18nKeys, pz as reanalyzeExperiment, pA as removeFromGateWhitelist, pB as resolveError, pC as revokeKey, pD as saveConfigDraft, pE as searchResources, pF as setExperimentMetrics, pG as setExperimentStatus, pH as setGateWhitelist, pI as setI18nLabel, pJ as setKillswitchSwitch, pK as setKillswitchValue, pL as testConnector, pM as toggleKillswitch, pN as unarchiveMetric, pO as unsetKillswitchSwitch, pP as updateAlert, pQ as updateAlertRule, pR as updateAttribute, pS as updateConfig, pT as updateConfigSchema, pU as updateConnector, pV as updateErrorStatus, pW as updateEvent, pX as updateExperiment, pY as updateGate, pZ as updateGateTemplate, p_ as updateI18nDraft, p$ as updateI18nKey, q0 as updateKillswitch, q1 as updateMetric, q2 as updateOpsInvestigation, q3 as updateOpsItem, q4 as updateProject, q5 as updateTriggerConnector, q6 as updateUniverse, q7 as upsertI18nDraftKey, q8 as upsertI18nKeys, q9 as upsertProject } from './client-BPVn4hMC.js';
import {
ackOpsItem,
addToGateWhitelist,
approveEvent,

@@ -25,2 +26,4 @@ client,

createOpsItem,
createPublicBug,
createPublicFeatureRequest,
createTriggerConnector,

@@ -61,2 +64,3 @@ createUniverse,

getGateTemplate,
getGateWhitelist,
getKillswitch,

@@ -100,2 +104,3 @@ getMetric,

reanalyzeExperiment,
removeFromGateWhitelist,
resolveError,

@@ -107,2 +112,3 @@ revokeKey,

setExperimentStatus,
setGateWhitelist,
setI18nLabel,

@@ -112,2 +118,3 @@ setKillswitchSwitch,

testConnector,
toggleKillswitch,
unarchiveMetric,

@@ -138,5 +145,6 @@ unsetKillswitchSwitch,

upsertProject
} from "./chunk-V4ZESAIF.js";
} from "./chunk-RTN572TI.js";
export {
ackOpsItem,
addToGateWhitelist,
approveEvent,

@@ -164,2 +172,4 @@ client,

createOpsItem,
createPublicBug,
createPublicFeatureRequest,
createTriggerConnector,

@@ -200,2 +210,3 @@ createUniverse,

getGateTemplate,
getGateWhitelist,
getKillswitch,

@@ -239,2 +250,3 @@ getMetric,

reanalyzeExperiment,
removeFromGateWhitelist,
resolveError,

@@ -246,2 +258,3 @@ revokeKey,

setExperimentStatus,
setGateWhitelist,
setI18nLabel,

@@ -251,2 +264,3 @@ setKillswitchSwitch,

testConnector,
toggleKillswitch,
unarchiveMetric,

@@ -253,0 +267,0 @@ unsetKillswitchSwitch,

@@ -1,3 +0,3 @@

import { E as ErrorCode, a as Error } from './client-yqGYju-M.js';
export { A as AckOpsItemData, b as AckOpsItemError, c as AckOpsItemErrors, d as AckOpsItemRequest, e as AckOpsItemResponse, f as AckOpsItemResponse2, g as AckOpsItemResponses, h as AlertApiRow, i as ApproveEventData, j as ApproveEventError, k as ApproveEventErrors, l as ApproveEventRequest, m as ApproveEventResponse, n as ApproveEventResponse2, o as ApproveEventResponses, p as AttributeType, C as ClaudeTriggerConfig, q as Client, r as ClientOptions, s as Config, t as ConfigName, u as ConfigureOptions, v as ConnectorData, w as ConnectorEvent, x as ConnectorProvider, y as ConnectorRecord, z as CopilotTriggerConfig, B as CreateAlertRuleData, D as CreateAlertRuleError, F as CreateAlertRuleErrors, G as CreateAlertRuleRequest, H as CreateAlertRuleResponse, I as CreateAlertRuleResponse2, J as CreateAlertRuleResponses, K as CreateAttributeData, L as CreateAttributeError, M as CreateAttributeErrors, N as CreateAttributeRequest, O as CreateAttributeResponse, P as CreateAttributeResponse2, Q as CreateAttributeResponses, R as CreateBugRequest, S as CreateClaudeTriggerRequest, T as CreateClientConfig, U as CreateConfigData, V as CreateConfigError, W as CreateConfigErrors, X as CreateConfigRequest, Y as CreateConfigResponse, Z as CreateConfigResponse2, _ as CreateConfigResponses, $ as CreateConnectorData, a0 as CreateConnectorError, a1 as CreateConnectorErrors, a2 as CreateConnectorRequest, a3 as CreateConnectorResponse, a4 as CreateConnectorResponse2, a5 as CreateConnectorResponses, a6 as CreateCopilotTriggerRequest, a7 as CreateCursorTriggerRequest, a8 as CreateEventData, a9 as CreateEventError, aa as CreateEventErrors, ab as CreateEventRequest, ac as CreateEventResponse, ad as CreateEventResponse2, ae as CreateEventResponses, af as CreateExperimentData, ag as CreateExperimentError, ah as CreateExperimentErrors, ai as CreateExperimentReadoutData, aj as CreateExperimentReadoutError, ak as CreateExperimentReadoutErrors, al as CreateExperimentReadoutRequest, am as CreateExperimentReadoutResponse, an as CreateExperimentReadoutResponse2, ao as CreateExperimentReadoutResponses, ap as CreateExperimentRequest, aq as CreateExperimentResponse, ar as CreateExperimentResponse2, as as CreateExperimentResponses, at as CreateFeatureRequestRequest, au as CreateGateData, av as CreateGateError, aw as CreateGateErrors, ax as CreateGateRequest, ay as CreateGateResponse, az as CreateGateResponse2, aA as CreateGateResponses, aB as CreateGateTemplateData, aC as CreateGateTemplateError, aD as CreateGateTemplateErrors, aE as CreateGateTemplateRequest, aF as CreateGateTemplateResponse, aG as CreateGateTemplateResponse2, aH as CreateGateTemplateResponses, aI as CreateI18nDraftData, aJ as CreateI18nDraftError, aK as CreateI18nDraftErrors, aL as CreateI18nDraftRequest, aM as CreateI18nDraftResponse, aN as CreateI18nDraftResponses, aO as CreateI18nProfileData, aP as CreateI18nProfileError, aQ as CreateI18nProfileErrors, aR as CreateI18nProfileRequest, aS as CreateI18nProfileResponse, aT as CreateI18nProfileResponse2, aU as CreateI18nProfileResponses, aV as CreateJulesTriggerRequest, aW as CreateKeyData, aX as CreateKeyError, aY as CreateKeyErrors, aZ as CreateKeyRequest, a_ as CreateKeyResponse, a$ as CreateKeyResponse2, b0 as CreateKeyResponses, b1 as CreateKillswitchData, b2 as CreateKillswitchError, b3 as CreateKillswitchErrors, b4 as CreateKillswitchRequest, b5 as CreateKillswitchResponse, b6 as CreateKillswitchResponse2, b7 as CreateKillswitchResponses, b8 as CreateMetricData, b9 as CreateMetricError, ba as CreateMetricErrors, bb as CreateMetricRequest, bc as CreateMetricResponse, bd as CreateMetricResponse2, be as CreateMetricResponses, bf as CreateMetricWithQuery, bg as CreateMetricWithQueryIr, bh as CreateOAuthConnectorRequest, bi as CreateOpsCommentData, bj as CreateOpsCommentError, bk as CreateOpsCommentErrors, bl as CreateOpsCommentRequest, bm as CreateOpsCommentResponse, bn as CreateOpsCommentResponse2, bo as CreateOpsCommentResponses, bp as CreateOpsInvestigationData, bq as CreateOpsInvestigationError, br as CreateOpsInvestigationErrors, bs as CreateOpsInvestigationRequest, bt as CreateOpsInvestigationResponse, bu as CreateOpsInvestigationResponses, bv as CreateOpsItemData, bw as CreateOpsItemError, bx as CreateOpsItemErrors, by as CreateOpsItemRequest, bz as CreateOpsItemResponse, bA as CreateOpsItemResponse2, bB as CreateOpsItemResponses, bC as CreateTriggerConnectorData, bD as CreateTriggerConnectorError, bE as CreateTriggerConnectorErrors, bF as CreateTriggerConnectorRequest, bG as CreateTriggerConnectorResponse, bH as CreateTriggerConnectorResponses, bI as CreateUniverseData, bJ as CreateUniverseError, bK as CreateUniverseErrors, bL as CreateUniverseRequest, bM as CreateUniverseResponse, bN as CreateUniverseResponse2, bO as CreateUniverseResponses, bP as CursorTriggerConfig, bQ as DeleteAlertRuleData, bR as DeleteAlertRuleError, bS as DeleteAlertRuleErrors, bT as DeleteAlertRuleResponse, bU as DeleteAlertRuleResponse2, bV as DeleteAlertRuleResponses, bW as DeleteAttributeData, bX as DeleteAttributeError, bY as DeleteAttributeErrors, bZ as DeleteAttributeResponse, b_ as DeleteAttributeResponse2, b$ as DeleteAttributeResponses, c0 as DeleteConfigData, c1 as DeleteConfigError, c2 as DeleteConfigErrors, c3 as DeleteConfigResponse, c4 as DeleteConfigResponse2, c5 as DeleteConfigResponses, c6 as DeleteConnectorData, c7 as DeleteConnectorError, c8 as DeleteConnectorErrors, c9 as DeleteConnectorResponse, ca as DeleteConnectorResponse2, cb as DeleteConnectorResponses, cc as DeleteEventData, cd as DeleteEventError, ce as DeleteEventErrors, cf as DeleteEventResponse, cg as DeleteEventResponse2, ch as DeleteEventResponses, ci as DeleteExperimentData, cj as DeleteExperimentError, ck as DeleteExperimentErrors, cl as DeleteExperimentResponse, cm as DeleteExperimentResponse2, cn as DeleteExperimentResponses, co as DeleteGateData, cp as DeleteGateError, cq as DeleteGateErrors, cr as DeleteGateResponse, cs as DeleteGateResponse2, ct as DeleteGateResponses, cu as DeleteGateTemplateData, cv as DeleteGateTemplateError, cw as DeleteGateTemplateErrors, cx as DeleteGateTemplateResponse, cy as DeleteGateTemplateResponse2, cz as DeleteGateTemplateResponses, cA as DeleteI18nDraftData, cB as DeleteI18nDraftError, cC as DeleteI18nDraftErrors, cD as DeleteI18nDraftResponse, cE as DeleteI18nDraftResponses, cF as DeleteI18nKeyData, cG as DeleteI18nKeyError, cH as DeleteI18nKeyErrors, cI as DeleteI18nKeyResponse, cJ as DeleteI18nKeyResponses, cK as DeleteI18nProfileData, cL as DeleteI18nProfileError, cM as DeleteI18nProfileErrors, cN as DeleteI18nProfileResponse, cO as DeleteI18nProfileResponses, cP as DeleteKillswitchData, cQ as DeleteKillswitchError, cR as DeleteKillswitchErrors, cS as DeleteKillswitchResponse, cT as DeleteKillswitchResponse2, cU as DeleteKillswitchResponses, cV as DeleteMetricData, cW as DeleteMetricError, cX as DeleteMetricErrors, cY as DeleteMetricResponse, cZ as DeleteMetricResponse2, c_ as DeleteMetricResponses, c$ as DeleteOpsItemData, d0 as DeleteOpsItemError, d1 as DeleteOpsItemErrors, d2 as DeleteOpsItemResponse, d3 as DeleteOpsItemResponse2, d4 as DeleteOpsItemResponses, d5 as DeleteUniverseData, d6 as DeleteUniverseError, d7 as DeleteUniverseErrors, d8 as DeleteUniverseResponse, d9 as DeleteUniverseResponse2, da as DeleteUniverseResponses, db as DisableGateData, dc as DisableGateError, dd as DisableGateErrors, de as DisableGateResponse, df as DisableGateResponse2, dg as DisableGateResponses, dh as DiscardConfigDraftData, di as DiscardConfigDraftError, dj as DiscardConfigDraftErrors, dk as DiscardConfigDraftRequest, dl as DiscardConfigDraftResponse, dm as DiscardConfigDraftResponse2, dn as DiscardConfigDraftResponses, dp as Domain, dq as EnableGateData, dr as EnableGateError, ds as EnableGateErrors, dt as EnableGateResponse, du as EnableGateResponse2, dv as EnableGateResponses, dw as Env, dx as ErrorOccurrence, dy as ErrorRecord, dz as ErrorSeriesRequest, dA as ErrorSeriesResponse, dB as ExperimentApiRow, dC as ExperimentInlineMetric, dD as ExperimentReadoutApiRow, dE as ExperimentReadoutCaveat, dF as ExperimentReadoutMetric, dG as ExperimentResultRow, dH as FileErrorTicketData, dI as FileErrorTicketError, dJ as FileErrorTicketErrors, dK as FileErrorTicketResponse, dL as FileErrorTicketResponse2, dM as FileErrorTicketResponses, dN as FireConnectorData, dO as FireConnectorError, dP as FireConnectorErrors, dQ as FireConnectorRequest, dR as FireConnectorResponse, dS as FireConnectorResponse2, dT as FireConnectorResponses, dU as Folder, dV as GateApiRow, dW as GateTemplate, dX as GateTemplateRule, dY as GateTemplateRuleResponse, dZ as GetAttributeData, d_ as GetAttributeError, d$ as GetAttributeErrors, e0 as GetAttributeResponse, e1 as GetAttributeResponse2, e2 as GetAttributeResponses, e3 as GetConfigData, e4 as GetConfigError, e5 as GetConfigErrors, e6 as GetConfigResponse, e7 as GetConfigResponse2, e8 as GetConfigResponses, e9 as GetConnectorData, ea as GetConnectorError, eb as GetConnectorErrors, ec as GetConnectorResponse, ed as GetConnectorResponses, ee as GetCurrentProjectData, ef as GetCurrentProjectError, eg as GetCurrentProjectErrors, eh as GetCurrentProjectResponse, ei as GetCurrentProjectResponse2, ej as GetCurrentProjectResponses, ek as GetErrorData, el as GetErrorError, em as GetErrorErrors, en as GetErrorResponse, eo as GetErrorResponses, ep as GetErrorSeriesData, eq as GetErrorSeriesError, er as GetErrorSeriesErrors, es as GetErrorSeriesResponse, et as GetErrorSeriesResponses, eu as GetEventData, ev as GetEventError, ew as GetEventErrors, ex as GetEventResponse, ey as GetEventResponse2, ez as GetEventResponses, eA as GetExperimentData, eB as GetExperimentError, eC as GetExperimentErrors, eD as GetExperimentReadoutData, eE as GetExperimentReadoutError, eF as GetExperimentReadoutErrors, eG as GetExperimentReadoutResponse, eH as GetExperimentReadoutResponses, eI as GetExperimentResponse, eJ as GetExperimentResponses, eK as GetExperimentResultsData, eL as GetExperimentResultsError, eM as GetExperimentResultsErrors, eN as GetExperimentResultsResponse, eO as GetExperimentResultsResponse2, eP as GetExperimentResultsResponses, eQ as GetExperimentTimeseriesData, eR as GetExperimentTimeseriesError, eS as GetExperimentTimeseriesErrors, eT as GetExperimentTimeseriesResponse, eU as GetExperimentTimeseriesResponse2, eV as GetExperimentTimeseriesResponses, eW as GetGateData, eX as GetGateError, eY as GetGateErrors, eZ as GetGateResponse, e_ as GetGateResponses, e$ as GetGateTemplateData, f0 as GetGateTemplateError, f1 as GetGateTemplateErrors, f2 as GetGateTemplateResponse, f3 as GetGateTemplateResponses, f4 as GetKillswitchData, f5 as GetKillswitchError, f6 as GetKillswitchErrors, f7 as GetKillswitchResponse, f8 as GetKillswitchResponse2, f9 as GetKillswitchResponses, fa as GetMetricData, fb as GetMetricError, fc as GetMetricErrors, fd as GetMetricResponse, fe as GetMetricResponse2, ff as GetMetricResponses, fg as GetMetricSeriesData, fh as GetMetricSeriesError, fi as GetMetricSeriesErrors, fj as GetMetricSeriesRequest, fk as GetMetricSeriesResponse, fl as GetMetricSeriesResponse2, fm as GetMetricSeriesResponses, fn as GetOpsItemData, fo as GetOpsItemError, fp as GetOpsItemErrors, fq as GetOpsItemResponse, fr as GetOpsItemResponse2, fs as GetOpsItemResponses, ft as GetProjectData, fu as GetProjectError, fv as GetProjectErrors, fw as GetProjectResponse, fx as GetProjectResponses, fy as GithubConnectorData, fz as GithubPrLink, fA as I18nDraft, fB as JulesTriggerConfig, fC as KeyRecord, fD as KillswitchValue, fE as LinkPrToOpsItemData, fF as LinkPrToOpsItemError, fG as LinkPrToOpsItemErrors, fH as LinkPrToOpsItemRequest, fI as LinkPrToOpsItemResponse, fJ as LinkPrToOpsItemResponse2, fK as LinkPrToOpsItemResponses, fL as ListAlertRulesData, fM as ListAlertRulesError, fN as ListAlertRulesErrors, fO as ListAlertRulesResponse, fP as ListAlertRulesResponse2, fQ as ListAlertRulesResponses, fR as ListAlertsData, fS as ListAlertsError, fT as ListAlertsErrors, fU as ListAlertsResponse, fV as ListAlertsResponse2, fW as ListAlertsResponses, fX as ListAttributesData, fY as ListAttributesError, fZ as ListAttributesErrors, f_ as ListAttributesResponse, f$ as ListAttributesResponse2, g0 as ListAttributesResponses, g1 as ListConfigActivityData, g2 as ListConfigActivityError, g3 as ListConfigActivityErrors, g4 as ListConfigActivityResponse, g5 as ListConfigActivityResponse2, g6 as ListConfigActivityResponses, g7 as ListConfigVersionsData, g8 as ListConfigVersionsError, g9 as ListConfigVersionsErrors, ga as ListConfigVersionsResponse, gb as ListConfigVersionsResponse2, gc as ListConfigVersionsResponses, gd as ListConfigsData, ge as ListConfigsError, gf as ListConfigsErrors, gg as ListConfigsResponse, gh as ListConfigsResponse2, gi as ListConfigsResponses, gj as ListConnectorsData, gk as ListConnectorsError, gl as ListConnectorsErrors, gm as ListConnectorsResponse, gn as ListConnectorsResponse2, go as ListConnectorsResponses, gp as ListErrorsData, gq as ListErrorsError, gr as ListErrorsErrors, gs as ListErrorsResponse, gt as ListErrorsResponse2, gu as ListErrorsResponses, gv as ListEventsData, gw as ListEventsError, gx as ListEventsErrors, gy as ListEventsResponse, gz as ListEventsResponse2, gA as ListEventsResponses, gB as ListExperimentsData, gC as ListExperimentsError, gD as ListExperimentsErrors, gE as ListExperimentsResponse, gF as ListExperimentsResponse2, gG as ListExperimentsResponses, gH as ListGateActivityData, gI as ListGateActivityError, gJ as ListGateActivityErrors, gK as ListGateActivityResponse, gL as ListGateActivityResponse2, gM as ListGateActivityResponses, gN as ListGateTemplatesData, gO as ListGateTemplatesError, gP as ListGateTemplatesErrors, gQ as ListGateTemplatesResponse, gR as ListGateTemplatesResponse2, gS as ListGateTemplatesResponses, gT as ListGatesData, gU as ListGatesError, gV as ListGatesErrors, gW as ListGatesResponse, gX as ListGatesResponse2, gY as ListGatesResponses, gZ as ListI18nDraftKeysData, g_ as ListI18nDraftKeysError, g$ as ListI18nDraftKeysErrors, h0 as ListI18nDraftKeysResponse, h1 as ListI18nDraftKeysResponse2, h2 as ListI18nDraftKeysResponses, h3 as ListI18nDraftsData, h4 as ListI18nDraftsError, h5 as ListI18nDraftsErrors, h6 as ListI18nDraftsResponse, h7 as ListI18nDraftsResponse2, h8 as ListI18nDraftsResponses, h9 as ListI18nKeysData, ha as ListI18nKeysError, hb as ListI18nKeysErrors, hc as ListI18nKeysResponse, hd as ListI18nKeysResponse2, he as ListI18nKeysResponses, hf as ListI18nProfilesData, hg as ListI18nProfilesError, hh as ListI18nProfilesErrors, hi as ListI18nProfilesResponse, hj as ListI18nProfilesResponse2, hk as ListI18nProfilesResponses, hl as ListKeysData, hm as ListKeysError, hn as ListKeysErrors, ho as ListKeysResponse, hp as ListKeysResponse2, hq as ListKeysResponses, hr as ListKillswitchesData, hs as ListKillswitchesError, ht as ListKillswitchesErrors, hu as ListKillswitchesResponse, hv as ListKillswitchesResponse2, hw as ListKillswitchesResponses, hx as ListMetricExperimentsData, hy as ListMetricExperimentsError, hz as ListMetricExperimentsErrors, hA as ListMetricExperimentsResponse, hB as ListMetricExperimentsResponse2, hC as ListMetricExperimentsResponses, hD as ListMetricsData, hE as ListMetricsError, hF as ListMetricsErrors, hG as ListMetricsResponse, hH as ListMetricsResponse2, hI as ListMetricsResponses, hJ as ListOpsAgentsData, hK as ListOpsAgentsError, hL as ListOpsAgentsErrors, hM as ListOpsAgentsResponse, hN as ListOpsAgentsResponse2, hO as ListOpsAgentsResponses, hP as ListOpsCommentsData, hQ as ListOpsCommentsError, hR as ListOpsCommentsErrors, hS as ListOpsCommentsResponse, hT as ListOpsCommentsResponse2, hU as ListOpsCommentsResponses, hV as ListOpsInvestigationsData, hW as ListOpsInvestigationsError, hX as ListOpsInvestigationsErrors, hY as ListOpsInvestigationsResponse, hZ as ListOpsInvestigationsResponse2, h_ as ListOpsInvestigationsResponses, h$ as ListOpsItemsData, i0 as ListOpsItemsError, i1 as ListOpsItemsErrors, i2 as ListOpsItemsResponse, i3 as ListOpsItemsResponse2, i4 as ListOpsItemsResponses, i5 as ListSlackChannelsData, i6 as ListSlackChannelsError, i7 as ListSlackChannelsErrors, i8 as ListSlackChannelsResponse, i9 as ListSlackChannelsResponse2, ia as ListSlackChannelsResponses, ib as ListUniversesData, ic as ListUniversesError, id as ListUniversesErrors, ie as ListUniversesResponse, ig as ListUniversesResponse2, ih as ListUniversesResponses, ii as MeasurePlanResource, ij as MeasurePlanStep, ik as MetricDefaultMinEffectOfInterest, il as MetricDirection, im as MetricDisplayUnit, io as MetricEventName, ip as MetricName, iq as MetricQueryDsl, ir as MetricWinsorizePct, is as NotificationTarget, it as NotifyOpsData, iu as NotifyOpsError, iv as NotifyOpsErrors, iw as NotifyOpsRequest, ix as NotifyOpsResponse, iy as NotifyOpsResponse2, iz as NotifyOpsResponses, iA as OkResponse, iB as OpsAgentProfile, iC as OpsAlertContext, iD as OpsAlertMetricSummary, iE as OpsAlertRuleSummary, iF as OpsBrowserContext, iG as OpsComment, iH as OpsCommentAuthorType, iI as OpsErrorContext, iJ as OpsInvestigation, iK as OpsInvestigationState, iL as OpsItemAttachment, iM as OpsItemContext, iN as OpsItemNotifyOrNull, iO as OpsItemOwner, iP as OpsItemPriority, iQ as OpsItemPriorityOrNull, iR as OpsItemRelated, iS as OpsItemStatus, iT as OpsMeasurePlanContext, iU as OpsRun, iV as OpsRunAction, iW as OpsRunActionOrNull, iX as Options, iY as PaginationCursor, iZ as PaginationLimit, i_ as ProjectId, i$ as PublishConfigDraftData, j0 as PublishConfigDraftError, j1 as PublishConfigDraftErrors, j2 as PublishConfigDraftRequest, j3 as PublishConfigDraftResponse, j4 as PublishConfigDraftResponse2, j5 as PublishConfigDraftResponses, j6 as PublishI18nProfileData, j7 as PublishI18nProfileError, j8 as PublishI18nProfileErrors, j9 as PublishI18nProfileRequest, ja as PublishI18nProfileResponse, jb as PublishI18nProfileResponse2, jc as PublishI18nProfileResponses, jd as PushI18nKeysData, je as PushI18nKeysError, jf as PushI18nKeysErrors, jg as PushI18nKeysRequest, jh as PushI18nKeysResponse, ji as PushI18nKeysResponse2, jj as PushI18nKeysResponses, jk as Q, jl as QueryIr, jm as ReanalyzeExperimentData, jn as ReanalyzeExperimentError, jo as ReanalyzeExperimentErrors, jp as ReanalyzeExperimentResponse, jq as ReanalyzeExperimentResponse2, jr as ReanalyzeExperimentResponses, js as RequestResult, jt as ResolveErrorData, ju as ResolveErrorError, jv as ResolveErrorErrors, jw as ResolveErrorResponse, jx as ResolveErrorResponses, jy as ResourceId, jz as RevokeKeyData, jA as RevokeKeyError, jB as RevokeKeyErrors, jC as RevokeKeyResponse, jD as RevokeKeyResponse2, jE as RevokeKeyResponses, jF as SaveConfigDraftData, jG as SaveConfigDraftError, jH as SaveConfigDraftErrors, jI as SaveConfigDraftRequest, jJ as SaveConfigDraftResponse, jK as SaveConfigDraftResponse2, jL as SaveConfigDraftResponses, jM as SearchHit, jN as SearchResourcesData, jO as SearchResourcesError, jP as SearchResourcesErrors, jQ as SearchResourcesResponse, jR as SearchResourcesResponses, jS as SearchResponse, jT as SetExperimentMetricsData, jU as SetExperimentMetricsError, jV as SetExperimentMetricsErrors, jW as SetExperimentMetricsRequest, jX as SetExperimentMetricsResponse, jY as SetExperimentMetricsResponse2, jZ as SetExperimentMetricsResponses, j_ as SetExperimentStatusData, j$ as SetExperimentStatusError, k0 as SetExperimentStatusErrors, k1 as SetExperimentStatusRequest, k2 as SetExperimentStatusResponse, k3 as SetExperimentStatusResponse2, k4 as SetExperimentStatusResponses, k5 as SetI18nLabelData, k6 as SetI18nLabelError, k7 as SetI18nLabelErrors, k8 as SetI18nLabelRequest, k9 as SetI18nLabelResponse, ka as SetI18nLabelResponse2, kb as SetI18nLabelResponses, kc as SetKillswitchSwitchData, kd as SetKillswitchSwitchError, ke as SetKillswitchSwitchErrors, kf as SetKillswitchSwitchRequest, kg as SetKillswitchSwitchResponse, kh as SetKillswitchSwitchResponse2, ki as SetKillswitchSwitchResponses, kj as SetKillswitchValueData, kk as SetKillswitchValueError, kl as SetKillswitchValueErrors, km as SetKillswitchValueRequest, kn as SetKillswitchValueResponse, ko as SetKillswitchValueResponse2, kp as SetKillswitchValueResponses, kq as SlackConnectorData, kr as TestConnectorData, ks as TestConnectorError, kt as TestConnectorErrors, ku as TestConnectorResponse, kv as TestConnectorResponse2, kw as TestConnectorResponses, kx as UnarchiveMetricData, ky as UnarchiveMetricError, kz as UnarchiveMetricErrors, kA as UnarchiveMetricResponse, kB as UnarchiveMetricResponse2, kC as UnarchiveMetricResponses, kD as UniverseParam, kE as UniverseParamSchema, kF as UnsetKillswitchSwitchData, kG as UnsetKillswitchSwitchError, kH as UnsetKillswitchSwitchErrors, kI as UnsetKillswitchSwitchRequest, kJ as UnsetKillswitchSwitchResponse, kK as UnsetKillswitchSwitchResponse2, kL as UnsetKillswitchSwitchResponses, kM as UpdateAlertData, kN as UpdateAlertError, kO as UpdateAlertErrors, kP as UpdateAlertRequest, kQ as UpdateAlertResponse, kR as UpdateAlertResponses, kS as UpdateAlertRuleData, kT as UpdateAlertRuleError, kU as UpdateAlertRuleErrors, kV as UpdateAlertRuleRequest, kW as UpdateAlertRuleResponse, kX as UpdateAlertRuleResponse2, kY as UpdateAlertRuleResponses, kZ as UpdateAttributeData, k_ as UpdateAttributeError, k$ as UpdateAttributeErrors, l0 as UpdateAttributeRequest, l1 as UpdateAttributeResponse, l2 as UpdateAttributeResponse2, l3 as UpdateAttributeResponses, l4 as UpdateBugRequest, l5 as UpdateClaudeTriggerRequest, l6 as UpdateConfigData, l7 as UpdateConfigError, l8 as UpdateConfigErrors, l9 as UpdateConfigRequest, la as UpdateConfigResponse, lb as UpdateConfigResponse2, lc as UpdateConfigResponses, ld as UpdateConfigSchemaData, le as UpdateConfigSchemaError, lf as UpdateConfigSchemaErrors, lg as UpdateConfigSchemaRequest, lh as UpdateConfigSchemaResponse, li as UpdateConfigSchemaResponse2, lj as UpdateConfigSchemaResponses, lk as UpdateConnectorData, ll as UpdateConnectorError, lm as UpdateConnectorErrors, ln as UpdateConnectorRequest, lo as UpdateConnectorResponse, lp as UpdateConnectorResponse2, lq as UpdateConnectorResponses, lr as UpdateCopilotTriggerRequest, ls as UpdateCursorTriggerRequest, lt as UpdateErrorStatusData, lu as UpdateErrorStatusError, lv as UpdateErrorStatusErrors, lw as UpdateErrorStatusRequest, lx as UpdateErrorStatusResponse, ly as UpdateErrorStatusResponses, lz as UpdateEventData, lA as UpdateEventError, lB as UpdateEventErrors, lC as UpdateEventRequest, lD as UpdateEventResponse, lE as UpdateEventResponse2, lF as UpdateEventResponses, lG as UpdateExperimentData, lH as UpdateExperimentError, lI as UpdateExperimentErrors, lJ as UpdateExperimentRequest, lK as UpdateExperimentResponse, lL as UpdateExperimentResponse2, lM as UpdateExperimentResponses, lN as UpdateFeatureRequestRequest, lO as UpdateGateData, lP as UpdateGateError, lQ as UpdateGateErrors, lR as UpdateGateRequest, lS as UpdateGateResponse, lT as UpdateGateResponse2, lU as UpdateGateResponses, lV as UpdateGateTemplateData, lW as UpdateGateTemplateError, lX as UpdateGateTemplateErrors, lY as UpdateGateTemplateRequest, lZ as UpdateGateTemplateResponse, l_ as UpdateGateTemplateResponse2, l$ as UpdateGateTemplateResponses, m0 as UpdateI18nDraftData, m1 as UpdateI18nDraftError, m2 as UpdateI18nDraftErrors, m3 as UpdateI18nDraftRequest, m4 as UpdateI18nDraftResponse, m5 as UpdateI18nDraftResponses, m6 as UpdateI18nKeyData, m7 as UpdateI18nKeyError, m8 as UpdateI18nKeyErrors, m9 as UpdateI18nKeyRequest, ma as UpdateI18nKeyResponse, mb as UpdateI18nKeyResponse2, mc as UpdateI18nKeyResponses, md as UpdateJulesTriggerRequest, me as UpdateKillswitchData, mf as UpdateKillswitchError, mg as UpdateKillswitchErrors, mh as UpdateKillswitchRequest, mi as UpdateKillswitchResponse, mj as UpdateKillswitchResponse2, mk as UpdateKillswitchResponses, ml as UpdateMetricData, mm as UpdateMetricError, mn as UpdateMetricErrors, mo as UpdateMetricFields, mp as UpdateMetricRequest, mq as UpdateMetricResponse, mr as UpdateMetricResponses, ms as UpdateMetricWithQuery, mt as UpdateMetricWithQueryIr, mu as UpdateOpsInvestigationData, mv as UpdateOpsInvestigationError, mw as UpdateOpsInvestigationErrors, mx as UpdateOpsInvestigationRequest, my as UpdateOpsInvestigationResponse, mz as UpdateOpsInvestigationResponses, mA as UpdateOpsItemData, mB as UpdateOpsItemError, mC as UpdateOpsItemErrors, mD as UpdateOpsItemRequest, mE as UpdateOpsItemResponse, mF as UpdateOpsItemResponse2, mG as UpdateOpsItemResponses, mH as UpdateOpsItemStatusRequest, mI as UpdateProjectData, mJ as UpdateProjectError, mK as UpdateProjectErrors, mL as UpdateProjectRequest, mM as UpdateProjectResponse, mN as UpdateProjectResponses, mO as UpdateTriggerConnectorData, mP as UpdateTriggerConnectorError, mQ as UpdateTriggerConnectorErrors, mR as UpdateTriggerConnectorRequest, mS as UpdateTriggerConnectorResponse, mT as UpdateTriggerConnectorResponses, mU as UpdateUniverseData, mV as UpdateUniverseError, mW as UpdateUniverseErrors, mX as UpdateUniverseRequest, mY as UpdateUniverseResponse, mZ as UpdateUniverseResponse2, m_ as UpdateUniverseResponses, m$ as UpsertI18nDraftKeyData, n0 as UpsertI18nDraftKeyError, n1 as UpsertI18nDraftKeyErrors, n2 as UpsertI18nDraftKeyRequest, n3 as UpsertI18nDraftKeyResponse, n4 as UpsertI18nDraftKeyResponses, n5 as UpsertI18nKeysData, n6 as UpsertI18nKeysError, n7 as UpsertI18nKeysErrors, n8 as UpsertI18nKeysRequest, n9 as UpsertI18nKeysResponse, na as UpsertI18nKeysResponse2, nb as UpsertI18nKeysResponses, nc as UpsertProjectData, nd as UpsertProjectError, ne as UpsertProjectErrors, nf as UpsertProjectRequest, ng as UpsertProjectResponse, nh as UpsertProjectResponse2, ni as UpsertProjectResponses, nj as ackOpsItem, nk as approveEvent, nl as client, nm as configure, nn as createAlertRule, no as createAttribute, np as createClient, nq as createClientConfig, nr as createConfig, ns as createConnector, nt as createEvent, nu as createExperiment, nv as createExperimentReadout, nw as createGate, nx as createGateTemplate, ny as createI18nDraft, nz as createI18nProfile, nA as createKey, nB as createKillswitch, nC as createMetric, nD as createOpsComment, nE as createOpsInvestigation, nF as createOpsItem, nG as createTriggerConnector, nH as createUniverse, nI as deleteAlertRule, nJ as deleteAttribute, nK as deleteConfig, nL as deleteConnector, nM as deleteEvent, nN as deleteExperiment, nO as deleteGate, nP as deleteGateTemplate, nQ as deleteI18nDraft, nR as deleteI18nKey, nS as deleteI18nProfile, nT as deleteKillswitch, nU as deleteMetric, nV as deleteOpsItem, nW as deleteUniverse, nX as disableGate, nY as discardConfigDraft, nZ as enableGate, n_ as fileErrorTicket, n$ as fireConnector, o0 as getAttribute, o1 as getConfig, o2 as getConnector, o3 as getCurrentProject, o4 as getError, o5 as getErrorSeries, o6 as getEvent, o7 as getExperiment, o8 as getExperimentReadout, o9 as getExperimentResults, oa as getExperimentTimeseries, ob as getGate, oc as getGateTemplate, od as getKillswitch, oe as getMetric, of as getMetricSeries, og as getOpsItem, oh as getProject, oi as linkPrToOpsItem, oj as listAlertRules, ok as listAlerts, ol as listAttributes, om as listConfigActivity, on as listConfigVersions, oo as listConfigs, op as listConnectors, oq as listErrors, or as listEvents, os as listExperiments, ot as listGateActivity, ou as listGateTemplates, ov as listGates, ow as listI18nDraftKeys, ox as listI18nDrafts, oy as listI18nKeys, oz as listI18nProfiles, oA as listKeys, oB as listKillswitches, oC as listMetricExperiments, oD as listMetrics, oE as listOpsAgents, oF as listOpsComments, oG as listOpsInvestigations, oH as listOpsItems, oI as listSlackChannels, oJ as listUniverses, oK as notifyOps, oL as publishConfigDraft, oM as publishI18nProfile, oN as pushI18nKeys, oO as reanalyzeExperiment, oP as resolveError, oQ as revokeKey, oR as saveConfigDraft, oS as searchResources, oT as setExperimentMetrics, oU as setExperimentStatus, oV as setI18nLabel, oW as setKillswitchSwitch, oX as setKillswitchValue, oY as testConnector, oZ as unarchiveMetric, o_ as unsetKillswitchSwitch, o$ as updateAlert, p0 as updateAlertRule, p1 as updateAttribute, p2 as updateConfig, p3 as updateConfigSchema, p4 as updateConnector, p5 as updateErrorStatus, p6 as updateEvent, p7 as updateExperiment, p8 as updateGate, p9 as updateGateTemplate, pa as updateI18nDraft, pb as updateI18nKey, pc as updateKillswitch, pd as updateMetric, pe as updateOpsInvestigation, pf as updateOpsItem, pg as updateProject, ph as updateTriggerConnector, pi as updateUniverse, pj as upsertI18nDraftKey, pk as upsertI18nKeys, pl as upsertProject } from './client-yqGYju-M.js';
import { E as ErrorCode, a as Error } from './client-BPVn4hMC.js';
export { A as AckOpsItemData, b as AckOpsItemError, c as AckOpsItemErrors, d as AckOpsItemRequest, e as AckOpsItemResponse, f as AckOpsItemResponse2, g as AckOpsItemResponses, h as AddToGateWhitelistData, i as AddToGateWhitelistError, j as AddToGateWhitelistErrors, k as AddToGateWhitelistRequest, l as AddToGateWhitelistResponse, m as AddToGateWhitelistResponses, n as AlertApiRow, o as ApproveEventData, p as ApproveEventError, q as ApproveEventErrors, r as ApproveEventRequest, s as ApproveEventResponse, t as ApproveEventResponse2, u as ApproveEventResponses, v as AttributeType, C as ClaudeTriggerConfig, w as Client, x as ClientOptions, y as Config, z as ConfigName, B as ConfigureOptions, D as ConnectorData, F as ConnectorEvent, G as ConnectorProvider, H as ConnectorRecord, I as CopilotTriggerConfig, J as CreateAlertRuleData, K as CreateAlertRuleError, L as CreateAlertRuleErrors, M as CreateAlertRuleRequest, N as CreateAlertRuleResponse, O as CreateAlertRuleResponse2, P as CreateAlertRuleResponses, Q as CreateAttributeData, R as CreateAttributeError, S as CreateAttributeErrors, T as CreateAttributeRequest, U as CreateAttributeResponse, V as CreateAttributeResponse2, W as CreateAttributeResponses, X as CreateBugRequest, Y as CreateClaudeTriggerRequest, Z as CreateClientConfig, _ as CreateConfigData, $ as CreateConfigError, a0 as CreateConfigErrors, a1 as CreateConfigRequest, a2 as CreateConfigResponse, a3 as CreateConfigResponse2, a4 as CreateConfigResponses, a5 as CreateConnectorData, a6 as CreateConnectorError, a7 as CreateConnectorErrors, a8 as CreateConnectorRequest, a9 as CreateConnectorResponse, aa as CreateConnectorResponse2, ab as CreateConnectorResponses, ac as CreateCopilotTriggerRequest, ad as CreateCursorTriggerRequest, ae as CreateEventData, af as CreateEventError, ag as CreateEventErrors, ah as CreateEventRequest, ai as CreateEventResponse, aj as CreateEventResponse2, ak as CreateEventResponses, al as CreateExperimentData, am as CreateExperimentError, an as CreateExperimentErrors, ao as CreateExperimentReadoutData, ap as CreateExperimentReadoutError, aq as CreateExperimentReadoutErrors, ar as CreateExperimentReadoutRequest, as as CreateExperimentReadoutResponse, at as CreateExperimentReadoutResponse2, au as CreateExperimentReadoutResponses, av as CreateExperimentRequest, aw as CreateExperimentResponse, ax as CreateExperimentResponse2, ay as CreateExperimentResponses, az as CreateFeatureRequestRequest, aA as CreateGateData, aB as CreateGateError, aC as CreateGateErrors, aD as CreateGateRequest, aE as CreateGateResponse, aF as CreateGateResponse2, aG as CreateGateResponses, aH as CreateGateTemplateData, aI as CreateGateTemplateError, aJ as CreateGateTemplateErrors, aK as CreateGateTemplateRequest, aL as CreateGateTemplateResponse, aM as CreateGateTemplateResponse2, aN as CreateGateTemplateResponses, aO as CreateI18nDraftData, aP as CreateI18nDraftError, aQ as CreateI18nDraftErrors, aR as CreateI18nDraftRequest, aS as CreateI18nDraftResponse, aT as CreateI18nDraftResponses, aU as CreateI18nProfileData, aV as CreateI18nProfileError, aW as CreateI18nProfileErrors, aX as CreateI18nProfileRequest, aY as CreateI18nProfileResponse, aZ as CreateI18nProfileResponse2, a_ as CreateI18nProfileResponses, a$ as CreateJulesTriggerRequest, b0 as CreateKeyData, b1 as CreateKeyError, b2 as CreateKeyErrors, b3 as CreateKeyRequest, b4 as CreateKeyResponse, b5 as CreateKeyResponse2, b6 as CreateKeyResponses, b7 as CreateKillswitchData, b8 as CreateKillswitchError, b9 as CreateKillswitchErrors, ba as CreateKillswitchRequest, bb as CreateKillswitchResponse, bc as CreateKillswitchResponse2, bd as CreateKillswitchResponses, be as CreateMetricData, bf as CreateMetricError, bg as CreateMetricErrors, bh as CreateMetricRequest, bi as CreateMetricResponse, bj as CreateMetricResponse2, bk as CreateMetricResponses, bl as CreateMetricWithQuery, bm as CreateMetricWithQueryIr, bn as CreateOAuthConnectorRequest, bo as CreateOpsCommentData, bp as CreateOpsCommentError, bq as CreateOpsCommentErrors, br as CreateOpsCommentRequest, bs as CreateOpsCommentResponse, bt as CreateOpsCommentResponse2, bu as CreateOpsCommentResponses, bv as CreateOpsInvestigationData, bw as CreateOpsInvestigationError, bx as CreateOpsInvestigationErrors, by as CreateOpsInvestigationRequest, bz as CreateOpsInvestigationResponse, bA as CreateOpsInvestigationResponses, bB as CreateOpsItemData, bC as CreateOpsItemError, bD as CreateOpsItemErrors, bE as CreateOpsItemRequest, bF as CreateOpsItemResponse, bG as CreateOpsItemResponse2, bH as CreateOpsItemResponses, bI as CreatePublicBugData, bJ as CreatePublicBugError, bK as CreatePublicBugErrors, bL as CreatePublicBugRequest, bM as CreatePublicBugResponse, bN as CreatePublicBugResponses, bO as CreatePublicFeatureRequestData, bP as CreatePublicFeatureRequestError, bQ as CreatePublicFeatureRequestErrors, bR as CreatePublicFeatureRequestRequest, bS as CreatePublicFeatureRequestResponse, bT as CreatePublicFeatureRequestResponses, bU as CreatePublicTicketResponse, bV as CreateTriggerConnectorData, bW as CreateTriggerConnectorError, bX as CreateTriggerConnectorErrors, bY as CreateTriggerConnectorRequest, bZ as CreateTriggerConnectorResponse, b_ as CreateTriggerConnectorResponses, b$ as CreateUniverseData, c0 as CreateUniverseError, c1 as CreateUniverseErrors, c2 as CreateUniverseRequest, c3 as CreateUniverseResponse, c4 as CreateUniverseResponse2, c5 as CreateUniverseResponses, c6 as CursorTriggerConfig, c7 as DeleteAlertRuleData, c8 as DeleteAlertRuleError, c9 as DeleteAlertRuleErrors, ca as DeleteAlertRuleResponse, cb as DeleteAlertRuleResponse2, cc as DeleteAlertRuleResponses, cd as DeleteAttributeData, ce as DeleteAttributeError, cf as DeleteAttributeErrors, cg as DeleteAttributeResponse, ch as DeleteAttributeResponse2, ci as DeleteAttributeResponses, cj as DeleteConfigData, ck as DeleteConfigError, cl as DeleteConfigErrors, cm as DeleteConfigResponse, cn as DeleteConfigResponse2, co as DeleteConfigResponses, cp as DeleteConnectorData, cq as DeleteConnectorError, cr as DeleteConnectorErrors, cs as DeleteConnectorResponse, ct as DeleteConnectorResponse2, cu as DeleteConnectorResponses, cv as DeleteEventData, cw as DeleteEventError, cx as DeleteEventErrors, cy as DeleteEventResponse, cz as DeleteEventResponse2, cA as DeleteEventResponses, cB as DeleteExperimentData, cC as DeleteExperimentError, cD as DeleteExperimentErrors, cE as DeleteExperimentResponse, cF as DeleteExperimentResponse2, cG as DeleteExperimentResponses, cH as DeleteGateData, cI as DeleteGateError, cJ as DeleteGateErrors, cK as DeleteGateResponse, cL as DeleteGateResponse2, cM as DeleteGateResponses, cN as DeleteGateTemplateData, cO as DeleteGateTemplateError, cP as DeleteGateTemplateErrors, cQ as DeleteGateTemplateResponse, cR as DeleteGateTemplateResponse2, cS as DeleteGateTemplateResponses, cT as DeleteI18nDraftData, cU as DeleteI18nDraftError, cV as DeleteI18nDraftErrors, cW as DeleteI18nDraftResponse, cX as DeleteI18nDraftResponses, cY as DeleteI18nKeyData, cZ as DeleteI18nKeyError, c_ as DeleteI18nKeyErrors, c$ as DeleteI18nKeyResponse, d0 as DeleteI18nKeyResponses, d1 as DeleteI18nProfileData, d2 as DeleteI18nProfileError, d3 as DeleteI18nProfileErrors, d4 as DeleteI18nProfileResponse, d5 as DeleteI18nProfileResponses, d6 as DeleteKillswitchData, d7 as DeleteKillswitchError, d8 as DeleteKillswitchErrors, d9 as DeleteKillswitchResponse, da as DeleteKillswitchResponse2, db as DeleteKillswitchResponses, dc as DeleteMetricData, dd as DeleteMetricError, de as DeleteMetricErrors, df as DeleteMetricResponse, dg as DeleteMetricResponse2, dh as DeleteMetricResponses, di as DeleteOpsItemData, dj as DeleteOpsItemError, dk as DeleteOpsItemErrors, dl as DeleteOpsItemResponse, dm as DeleteOpsItemResponse2, dn as DeleteOpsItemResponses, dp as DeleteUniverseData, dq as DeleteUniverseError, dr as DeleteUniverseErrors, ds as DeleteUniverseResponse, dt as DeleteUniverseResponse2, du as DeleteUniverseResponses, dv as DisableGateData, dw as DisableGateError, dx as DisableGateErrors, dy as DisableGateResponse, dz as DisableGateResponse2, dA as DisableGateResponses, dB as DiscardConfigDraftData, dC as DiscardConfigDraftError, dD as DiscardConfigDraftErrors, dE as DiscardConfigDraftRequest, dF as DiscardConfigDraftResponse, dG as DiscardConfigDraftResponse2, dH as DiscardConfigDraftResponses, dI as Domain, dJ as EnableGateData, dK as EnableGateError, dL as EnableGateErrors, dM as EnableGateResponse, dN as EnableGateResponse2, dO as EnableGateResponses, dP as Env, dQ as ErrorOccurrence, dR as ErrorRecord, dS as ErrorSeriesRequest, dT as ErrorSeriesResponse, dU as ExperimentApiRow, dV as ExperimentInlineMetric, dW as ExperimentReadoutApiRow, dX as ExperimentReadoutCaveat, dY as ExperimentReadoutMetric, dZ as ExperimentResultRow, d_ as FileErrorTicketData, d$ as FileErrorTicketError, e0 as FileErrorTicketErrors, e1 as FileErrorTicketResponse, e2 as FileErrorTicketResponse2, e3 as FileErrorTicketResponses, e4 as FireConnectorData, e5 as FireConnectorError, e6 as FireConnectorErrors, e7 as FireConnectorRequest, e8 as FireConnectorResponse, e9 as FireConnectorResponse2, ea as FireConnectorResponses, eb as Folder, ec as GateApiRow, ed as GateTemplate, ee as GateTemplateRule, ef as GateTemplateRuleResponse, eg as GateWhitelist, eh as GateWhitelistAttr, ei as GetAttributeData, ej as GetAttributeError, ek as GetAttributeErrors, el as GetAttributeResponse, em as GetAttributeResponse2, en as GetAttributeResponses, eo as GetConfigData, ep as GetConfigError, eq as GetConfigErrors, er as GetConfigResponse, es as GetConfigResponse2, et as GetConfigResponses, eu as GetConnectorData, ev as GetConnectorError, ew as GetConnectorErrors, ex as GetConnectorResponse, ey as GetConnectorResponses, ez as GetCurrentProjectData, eA as GetCurrentProjectError, eB as GetCurrentProjectErrors, eC as GetCurrentProjectResponse, eD as GetCurrentProjectResponse2, eE as GetCurrentProjectResponses, eF as GetErrorData, eG as GetErrorError, eH as GetErrorErrors, eI as GetErrorResponse, eJ as GetErrorResponses, eK as GetErrorSeriesData, eL as GetErrorSeriesError, eM as GetErrorSeriesErrors, eN as GetErrorSeriesResponse, eO as GetErrorSeriesResponses, eP as GetEventData, eQ as GetEventError, eR as GetEventErrors, eS as GetEventResponse, eT as GetEventResponse2, eU as GetEventResponses, eV as GetExperimentData, eW as GetExperimentError, eX as GetExperimentErrors, eY as GetExperimentReadoutData, eZ as GetExperimentReadoutError, e_ as GetExperimentReadoutErrors, e$ as GetExperimentReadoutResponse, f0 as GetExperimentReadoutResponses, f1 as GetExperimentResponse, f2 as GetExperimentResponses, f3 as GetExperimentResultsData, f4 as GetExperimentResultsError, f5 as GetExperimentResultsErrors, f6 as GetExperimentResultsResponse, f7 as GetExperimentResultsResponse2, f8 as GetExperimentResultsResponses, f9 as GetExperimentTimeseriesData, fa as GetExperimentTimeseriesError, fb as GetExperimentTimeseriesErrors, fc as GetExperimentTimeseriesResponse, fd as GetExperimentTimeseriesResponse2, fe as GetExperimentTimeseriesResponses, ff as GetGateData, fg as GetGateError, fh as GetGateErrors, fi as GetGateResponse, fj as GetGateResponses, fk as GetGateTemplateData, fl as GetGateTemplateError, fm as GetGateTemplateErrors, fn as GetGateTemplateResponse, fo as GetGateTemplateResponses, fp as GetGateWhitelistData, fq as GetGateWhitelistError, fr as GetGateWhitelistErrors, fs as GetGateWhitelistResponse, ft as GetGateWhitelistResponses, fu as GetKillswitchData, fv as GetKillswitchError, fw as GetKillswitchErrors, fx as GetKillswitchResponse, fy as GetKillswitchResponse2, fz as GetKillswitchResponses, fA as GetMetricData, fB as GetMetricError, fC as GetMetricErrors, fD as GetMetricResponse, fE as GetMetricResponse2, fF as GetMetricResponses, fG as GetMetricSeriesData, fH as GetMetricSeriesError, fI as GetMetricSeriesErrors, fJ as GetMetricSeriesRequest, fK as GetMetricSeriesResponse, fL as GetMetricSeriesResponse2, fM as GetMetricSeriesResponses, fN as GetOpsItemData, fO as GetOpsItemError, fP as GetOpsItemErrors, fQ as GetOpsItemResponse, fR as GetOpsItemResponse2, fS as GetOpsItemResponses, fT as GetProjectData, fU as GetProjectError, fV as GetProjectErrors, fW as GetProjectResponse, fX as GetProjectResponses, fY as GithubConnectorData, fZ as GithubPrLink, f_ as I18nDraft, f$ as JulesTriggerConfig, g0 as KeyRecord, g1 as KillswitchValue, g2 as LinkPrToOpsItemData, g3 as LinkPrToOpsItemError, g4 as LinkPrToOpsItemErrors, g5 as LinkPrToOpsItemRequest, g6 as LinkPrToOpsItemResponse, g7 as LinkPrToOpsItemResponse2, g8 as LinkPrToOpsItemResponses, g9 as ListAlertRulesData, ga as ListAlertRulesError, gb as ListAlertRulesErrors, gc as ListAlertRulesResponse, gd as ListAlertRulesResponse2, ge as ListAlertRulesResponses, gf as ListAlertsData, gg as ListAlertsError, gh as ListAlertsErrors, gi as ListAlertsResponse, gj as ListAlertsResponse2, gk as ListAlertsResponses, gl as ListAttributesData, gm as ListAttributesError, gn as ListAttributesErrors, go as ListAttributesResponse, gp as ListAttributesResponse2, gq as ListAttributesResponses, gr as ListConfigActivityData, gs as ListConfigActivityError, gt as ListConfigActivityErrors, gu as ListConfigActivityResponse, gv as ListConfigActivityResponse2, gw as ListConfigActivityResponses, gx as ListConfigVersionsData, gy as ListConfigVersionsError, gz as ListConfigVersionsErrors, gA as ListConfigVersionsResponse, gB as ListConfigVersionsResponse2, gC as ListConfigVersionsResponses, gD as ListConfigsData, gE as ListConfigsError, gF as ListConfigsErrors, gG as ListConfigsResponse, gH as ListConfigsResponse2, gI as ListConfigsResponses, gJ as ListConnectorsData, gK as ListConnectorsError, gL as ListConnectorsErrors, gM as ListConnectorsResponse, gN as ListConnectorsResponse2, gO as ListConnectorsResponses, gP as ListErrorsData, gQ as ListErrorsError, gR as ListErrorsErrors, gS as ListErrorsResponse, gT as ListErrorsResponse2, gU as ListErrorsResponses, gV as ListEventsData, gW as ListEventsError, gX as ListEventsErrors, gY as ListEventsResponse, gZ as ListEventsResponse2, g_ as ListEventsResponses, g$ as ListExperimentsData, h0 as ListExperimentsError, h1 as ListExperimentsErrors, h2 as ListExperimentsResponse, h3 as ListExperimentsResponse2, h4 as ListExperimentsResponses, h5 as ListGateActivityData, h6 as ListGateActivityError, h7 as ListGateActivityErrors, h8 as ListGateActivityResponse, h9 as ListGateActivityResponse2, ha as ListGateActivityResponses, hb as ListGateTemplatesData, hc as ListGateTemplatesError, hd as ListGateTemplatesErrors, he as ListGateTemplatesResponse, hf as ListGateTemplatesResponse2, hg as ListGateTemplatesResponses, hh as ListGatesData, hi as ListGatesError, hj as ListGatesErrors, hk as ListGatesResponse, hl as ListGatesResponse2, hm as ListGatesResponses, hn as ListI18nDraftKeysData, ho as ListI18nDraftKeysError, hp as ListI18nDraftKeysErrors, hq as ListI18nDraftKeysResponse, hr as ListI18nDraftKeysResponse2, hs as ListI18nDraftKeysResponses, ht as ListI18nDraftsData, hu as ListI18nDraftsError, hv as ListI18nDraftsErrors, hw as ListI18nDraftsResponse, hx as ListI18nDraftsResponse2, hy as ListI18nDraftsResponses, hz as ListI18nKeysData, hA as ListI18nKeysError, hB as ListI18nKeysErrors, hC as ListI18nKeysResponse, hD as ListI18nKeysResponse2, hE as ListI18nKeysResponses, hF as ListI18nProfilesData, hG as ListI18nProfilesError, hH as ListI18nProfilesErrors, hI as ListI18nProfilesResponse, hJ as ListI18nProfilesResponse2, hK as ListI18nProfilesResponses, hL as ListKeysData, hM as ListKeysError, hN as ListKeysErrors, hO as ListKeysResponse, hP as ListKeysResponse2, hQ as ListKeysResponses, hR as ListKillswitchesData, hS as ListKillswitchesError, hT as ListKillswitchesErrors, hU as ListKillswitchesResponse, hV as ListKillswitchesResponse2, hW as ListKillswitchesResponses, hX as ListMetricExperimentsData, hY as ListMetricExperimentsError, hZ as ListMetricExperimentsErrors, h_ as ListMetricExperimentsResponse, h$ as ListMetricExperimentsResponse2, i0 as ListMetricExperimentsResponses, i1 as ListMetricsData, i2 as ListMetricsError, i3 as ListMetricsErrors, i4 as ListMetricsResponse, i5 as ListMetricsResponse2, i6 as ListMetricsResponses, i7 as ListOpsAgentsData, i8 as ListOpsAgentsError, i9 as ListOpsAgentsErrors, ia as ListOpsAgentsResponse, ib as ListOpsAgentsResponse2, ic as ListOpsAgentsResponses, id as ListOpsCommentsData, ie as ListOpsCommentsError, ig as ListOpsCommentsErrors, ih as ListOpsCommentsResponse, ii as ListOpsCommentsResponse2, ij as ListOpsCommentsResponses, ik as ListOpsInvestigationsData, il as ListOpsInvestigationsError, im as ListOpsInvestigationsErrors, io as ListOpsInvestigationsResponse, ip as ListOpsInvestigationsResponse2, iq as ListOpsInvestigationsResponses, ir as ListOpsItemsData, is as ListOpsItemsError, it as ListOpsItemsErrors, iu as ListOpsItemsResponse, iv as ListOpsItemsResponse2, iw as ListOpsItemsResponses, ix as ListSlackChannelsData, iy as ListSlackChannelsError, iz as ListSlackChannelsErrors, iA as ListSlackChannelsResponse, iB as ListSlackChannelsResponse2, iC as ListSlackChannelsResponses, iD as ListUniversesData, iE as ListUniversesError, iF as ListUniversesErrors, iG as ListUniversesResponse, iH as ListUniversesResponse2, iI as ListUniversesResponses, iJ as MeasurePlanResource, iK as MeasurePlanStep, iL as MetricDefaultMinEffectOfInterest, iM as MetricDirection, iN as MetricDisplayUnit, iO as MetricEventName, iP as MetricName, iQ as MetricQueryDsl, iR as MetricWinsorizePct, iS as NotificationTarget, iT as NotifyOpsData, iU as NotifyOpsError, iV as NotifyOpsErrors, iW as NotifyOpsRequest, iX as NotifyOpsResponse, iY as NotifyOpsResponse2, iZ as NotifyOpsResponses, i_ as OkResponse, i$ as OpsAgentProfile, j0 as OpsAlertContext, j1 as OpsAlertMetricSummary, j2 as OpsAlertRuleSummary, j3 as OpsBrowserContext, j4 as OpsComment, j5 as OpsCommentAuthorType, j6 as OpsErrorContext, j7 as OpsInvestigation, j8 as OpsInvestigationState, j9 as OpsItemAttachment, ja as OpsItemContext, jb as OpsItemNotifyOrNull, jc as OpsItemOwner, jd as OpsItemPriority, je as OpsItemPriorityOrNull, jf as OpsItemRelated, jg as OpsItemStatus, jh as OpsMeasurePlanContext, ji as OpsRun, jj as OpsRunAction, jk as OpsRunActionOrNull, jl as Options, jm as PaginationCursor, jn as PaginationLimit, jo as ProjectId, jp as PublishConfigDraftData, jq as PublishConfigDraftError, jr as PublishConfigDraftErrors, js as PublishConfigDraftRequest, jt as PublishConfigDraftResponse, ju as PublishConfigDraftResponse2, jv as PublishConfigDraftResponses, jw as PublishI18nProfileData, jx as PublishI18nProfileError, jy as PublishI18nProfileErrors, jz as PublishI18nProfileRequest, jA as PublishI18nProfileResponse, jB as PublishI18nProfileResponse2, jC as PublishI18nProfileResponses, jD as PushI18nKeysData, jE as PushI18nKeysError, jF as PushI18nKeysErrors, jG as PushI18nKeysRequest, jH as PushI18nKeysResponse, jI as PushI18nKeysResponse2, jJ as PushI18nKeysResponses, jK as Q, jL as QueryIr, jM as ReanalyzeExperimentData, jN as ReanalyzeExperimentError, jO as ReanalyzeExperimentErrors, jP as ReanalyzeExperimentResponse, jQ as ReanalyzeExperimentResponse2, jR as ReanalyzeExperimentResponses, jS as RemoveFromGateWhitelistData, jT as RemoveFromGateWhitelistError, jU as RemoveFromGateWhitelistErrors, jV as RemoveFromGateWhitelistRequest, jW as RemoveFromGateWhitelistResponse, jX as RemoveFromGateWhitelistResponses, jY as RequestResult, jZ as ResolveErrorData, j_ as ResolveErrorError, j$ as ResolveErrorErrors, k0 as ResolveErrorResponse, k1 as ResolveErrorResponses, k2 as ResourceId, k3 as RevokeKeyData, k4 as RevokeKeyError, k5 as RevokeKeyErrors, k6 as RevokeKeyResponse, k7 as RevokeKeyResponse2, k8 as RevokeKeyResponses, k9 as SaveConfigDraftData, ka as SaveConfigDraftError, kb as SaveConfigDraftErrors, kc as SaveConfigDraftRequest, kd as SaveConfigDraftResponse, ke as SaveConfigDraftResponse2, kf as SaveConfigDraftResponses, kg as SearchHit, kh as SearchResourcesData, ki as SearchResourcesError, kj as SearchResourcesErrors, kk as SearchResourcesResponse, kl as SearchResourcesResponses, km as SearchResponse, kn as SetExperimentMetricsData, ko as SetExperimentMetricsError, kp as SetExperimentMetricsErrors, kq as SetExperimentMetricsRequest, kr as SetExperimentMetricsResponse, ks as SetExperimentMetricsResponse2, kt as SetExperimentMetricsResponses, ku as SetExperimentStatusData, kv as SetExperimentStatusError, kw as SetExperimentStatusErrors, kx as SetExperimentStatusRequest, ky as SetExperimentStatusResponse, kz as SetExperimentStatusResponse2, kA as SetExperimentStatusResponses, kB as SetGateWhitelistData, kC as SetGateWhitelistError, kD as SetGateWhitelistErrors, kE as SetGateWhitelistRequest, kF as SetGateWhitelistResponse, kG as SetGateWhitelistResponses, kH as SetI18nLabelData, kI as SetI18nLabelError, kJ as SetI18nLabelErrors, kK as SetI18nLabelRequest, kL as SetI18nLabelResponse, kM as SetI18nLabelResponse2, kN as SetI18nLabelResponses, kO as SetKillswitchSwitchData, kP as SetKillswitchSwitchError, kQ as SetKillswitchSwitchErrors, kR as SetKillswitchSwitchRequest, kS as SetKillswitchSwitchResponse, kT as SetKillswitchSwitchResponse2, kU as SetKillswitchSwitchResponses, kV as SetKillswitchValueData, kW as SetKillswitchValueError, kX as SetKillswitchValueErrors, kY as SetKillswitchValueRequest, kZ as SetKillswitchValueResponse, k_ as SetKillswitchValueResponse2, k$ as SetKillswitchValueResponses, l0 as SlackConnectorData, l1 as TestConnectorData, l2 as TestConnectorError, l3 as TestConnectorErrors, l4 as TestConnectorResponse, l5 as TestConnectorResponse2, l6 as TestConnectorResponses, l7 as ToggleKillswitchData, l8 as ToggleKillswitchError, l9 as ToggleKillswitchErrors, la as ToggleKillswitchRequest, lb as ToggleKillswitchResponse, lc as ToggleKillswitchResponse2, ld as ToggleKillswitchResponses, le as UnarchiveMetricData, lf as UnarchiveMetricError, lg as UnarchiveMetricErrors, lh as UnarchiveMetricResponse, li as UnarchiveMetricResponse2, lj as UnarchiveMetricResponses, lk as UniverseParam, ll as UniverseParamSchema, lm as UnsetKillswitchSwitchData, ln as UnsetKillswitchSwitchError, lo as UnsetKillswitchSwitchErrors, lp as UnsetKillswitchSwitchRequest, lq as UnsetKillswitchSwitchResponse, lr as UnsetKillswitchSwitchResponse2, ls as UnsetKillswitchSwitchResponses, lt as UpdateAlertData, lu as UpdateAlertError, lv as UpdateAlertErrors, lw as UpdateAlertRequest, lx as UpdateAlertResponse, ly as UpdateAlertResponses, lz as UpdateAlertRuleData, lA as UpdateAlertRuleError, lB as UpdateAlertRuleErrors, lC as UpdateAlertRuleRequest, lD as UpdateAlertRuleResponse, lE as UpdateAlertRuleResponse2, lF as UpdateAlertRuleResponses, lG as UpdateAttributeData, lH as UpdateAttributeError, lI as UpdateAttributeErrors, lJ as UpdateAttributeRequest, lK as UpdateAttributeResponse, lL as UpdateAttributeResponse2, lM as UpdateAttributeResponses, lN as UpdateBugRequest, lO as UpdateClaudeTriggerRequest, lP as UpdateConfigData, lQ as UpdateConfigError, lR as UpdateConfigErrors, lS as UpdateConfigRequest, lT as UpdateConfigResponse, lU as UpdateConfigResponse2, lV as UpdateConfigResponses, lW as UpdateConfigSchemaData, lX as UpdateConfigSchemaError, lY as UpdateConfigSchemaErrors, lZ as UpdateConfigSchemaRequest, l_ as UpdateConfigSchemaResponse, l$ as UpdateConfigSchemaResponse2, m0 as UpdateConfigSchemaResponses, m1 as UpdateConnectorData, m2 as UpdateConnectorError, m3 as UpdateConnectorErrors, m4 as UpdateConnectorRequest, m5 as UpdateConnectorResponse, m6 as UpdateConnectorResponse2, m7 as UpdateConnectorResponses, m8 as UpdateCopilotTriggerRequest, m9 as UpdateCursorTriggerRequest, ma as UpdateErrorStatusData, mb as UpdateErrorStatusError, mc as UpdateErrorStatusErrors, md as UpdateErrorStatusRequest, me as UpdateErrorStatusResponse, mf as UpdateErrorStatusResponses, mg as UpdateEventData, mh as UpdateEventError, mi as UpdateEventErrors, mj as UpdateEventRequest, mk as UpdateEventResponse, ml as UpdateEventResponse2, mm as UpdateEventResponses, mn as UpdateExperimentData, mo as UpdateExperimentError, mp as UpdateExperimentErrors, mq as UpdateExperimentRequest, mr as UpdateExperimentResponse, ms as UpdateExperimentResponse2, mt as UpdateExperimentResponses, mu as UpdateFeatureRequestRequest, mv as UpdateGateData, mw as UpdateGateError, mx as UpdateGateErrors, my as UpdateGateRequest, mz as UpdateGateResponse, mA as UpdateGateResponse2, mB as UpdateGateResponses, mC as UpdateGateTemplateData, mD as UpdateGateTemplateError, mE as UpdateGateTemplateErrors, mF as UpdateGateTemplateRequest, mG as UpdateGateTemplateResponse, mH as UpdateGateTemplateResponse2, mI as UpdateGateTemplateResponses, mJ as UpdateI18nDraftData, mK as UpdateI18nDraftError, mL as UpdateI18nDraftErrors, mM as UpdateI18nDraftRequest, mN as UpdateI18nDraftResponse, mO as UpdateI18nDraftResponses, mP as UpdateI18nKeyData, mQ as UpdateI18nKeyError, mR as UpdateI18nKeyErrors, mS as UpdateI18nKeyRequest, mT as UpdateI18nKeyResponse, mU as UpdateI18nKeyResponse2, mV as UpdateI18nKeyResponses, mW as UpdateJulesTriggerRequest, mX as UpdateKillswitchData, mY as UpdateKillswitchError, mZ as UpdateKillswitchErrors, m_ as UpdateKillswitchRequest, m$ as UpdateKillswitchResponse, n0 as UpdateKillswitchResponse2, n1 as UpdateKillswitchResponses, n2 as UpdateMetricData, n3 as UpdateMetricError, n4 as UpdateMetricErrors, n5 as UpdateMetricFields, n6 as UpdateMetricRequest, n7 as UpdateMetricResponse, n8 as UpdateMetricResponses, n9 as UpdateMetricWithQuery, na as UpdateMetricWithQueryIr, nb as UpdateOpsInvestigationData, nc as UpdateOpsInvestigationError, nd as UpdateOpsInvestigationErrors, ne as UpdateOpsInvestigationRequest, nf as UpdateOpsInvestigationResponse, ng as UpdateOpsInvestigationResponses, nh as UpdateOpsItemData, ni as UpdateOpsItemError, nj as UpdateOpsItemErrors, nk as UpdateOpsItemRequest, nl as UpdateOpsItemResponse, nm as UpdateOpsItemResponse2, nn as UpdateOpsItemResponses, no as UpdateOpsItemStatusRequest, np as UpdateProjectData, nq as UpdateProjectError, nr as UpdateProjectErrors, ns as UpdateProjectRequest, nt as UpdateProjectResponse, nu as UpdateProjectResponses, nv as UpdateTriggerConnectorData, nw as UpdateTriggerConnectorError, nx as UpdateTriggerConnectorErrors, ny as UpdateTriggerConnectorRequest, nz as UpdateTriggerConnectorResponse, nA as UpdateTriggerConnectorResponses, nB as UpdateUniverseData, nC as UpdateUniverseError, nD as UpdateUniverseErrors, nE as UpdateUniverseRequest, nF as UpdateUniverseResponse, nG as UpdateUniverseResponse2, nH as UpdateUniverseResponses, nI as UpsertI18nDraftKeyData, nJ as UpsertI18nDraftKeyError, nK as UpsertI18nDraftKeyErrors, nL as UpsertI18nDraftKeyRequest, nM as UpsertI18nDraftKeyResponse, nN as UpsertI18nDraftKeyResponses, nO as UpsertI18nKeysData, nP as UpsertI18nKeysError, nQ as UpsertI18nKeysErrors, nR as UpsertI18nKeysRequest, nS as UpsertI18nKeysResponse, nT as UpsertI18nKeysResponse2, nU as UpsertI18nKeysResponses, nV as UpsertProjectData, nW as UpsertProjectError, nX as UpsertProjectErrors, nY as UpsertProjectRequest, nZ as UpsertProjectResponse, n_ as UpsertProjectResponse2, n$ as UpsertProjectResponses, o0 as ackOpsItem, o1 as addToGateWhitelist, o2 as approveEvent, o3 as client, o4 as configure, o5 as createAlertRule, o6 as createAttribute, o7 as createClient, o8 as createClientConfig, o9 as createConfig, oa as createConnector, ob as createEvent, oc as createExperiment, od as createExperimentReadout, oe as createGate, of as createGateTemplate, og as createI18nDraft, oh as createI18nProfile, oi as createKey, oj as createKillswitch, ok as createMetric, ol as createOpsComment, om as createOpsInvestigation, on as createOpsItem, oo as createPublicBug, op as createPublicFeatureRequest, oq as createTriggerConnector, or as createUniverse, os as deleteAlertRule, ot as deleteAttribute, ou as deleteConfig, ov as deleteConnector, ow as deleteEvent, ox as deleteExperiment, oy as deleteGate, oz as deleteGateTemplate, oA as deleteI18nDraft, oB as deleteI18nKey, oC as deleteI18nProfile, oD as deleteKillswitch, oE as deleteMetric, oF as deleteOpsItem, oG as deleteUniverse, oH as disableGate, oI as discardConfigDraft, oJ as enableGate, oK as fileErrorTicket, oL as fireConnector, oM as getAttribute, oN as getConfig, oO as getConnector, oP as getCurrentProject, oQ as getError, oR as getErrorSeries, oS as getEvent, oT as getExperiment, oU as getExperimentReadout, oV as getExperimentResults, oW as getExperimentTimeseries, oX as getGate, oY as getGateTemplate, oZ as getGateWhitelist, o_ as getKillswitch, o$ as getMetric, p0 as getMetricSeries, p1 as getOpsItem, p2 as getProject, p3 as linkPrToOpsItem, p4 as listAlertRules, p5 as listAlerts, p6 as listAttributes, p7 as listConfigActivity, p8 as listConfigVersions, p9 as listConfigs, pa as listConnectors, pb as listErrors, pc as listEvents, pd as listExperiments, pe as listGateActivity, pf as listGateTemplates, pg as listGates, ph as listI18nDraftKeys, pi as listI18nDrafts, pj as listI18nKeys, pk as listI18nProfiles, pl as listKeys, pm as listKillswitches, pn as listMetricExperiments, po as listMetrics, pp as listOpsAgents, pq as listOpsComments, pr as listOpsInvestigations, ps as listOpsItems, pt as listSlackChannels, pu as listUniverses, pv as notifyOps, pw as publishConfigDraft, px as publishI18nProfile, py as pushI18nKeys, pz as reanalyzeExperiment, pA as removeFromGateWhitelist, pB as resolveError, pC as revokeKey, pD as saveConfigDraft, pE as searchResources, pF as setExperimentMetrics, pG as setExperimentStatus, pH as setGateWhitelist, pI as setI18nLabel, pJ as setKillswitchSwitch, pK as setKillswitchValue, pL as testConnector, pM as toggleKillswitch, pN as unarchiveMetric, pO as unsetKillswitchSwitch, pP as updateAlert, pQ as updateAlertRule, pR as updateAttribute, pS as updateConfig, pT as updateConfigSchema, pU as updateConnector, pV as updateErrorStatus, pW as updateEvent, pX as updateExperiment, pY as updateGate, pZ as updateGateTemplate, p_ as updateI18nDraft, p$ as updateI18nKey, q0 as updateKillswitch, q1 as updateMetric, q2 as updateOpsInvestigation, q3 as updateOpsItem, q4 as updateProject, q5 as updateTriggerConnector, q6 as updateUniverse, q7 as upsertI18nDraftKey, q8 as upsertI18nKeys, q9 as upsertProject } from './client-BPVn4hMC.js';

@@ -4,0 +4,0 @@ /**

import {
ackOpsItem,
addToGateWhitelist,
approveEvent,

@@ -25,2 +26,4 @@ client,

createOpsItem,
createPublicBug,
createPublicFeatureRequest,
createTriggerConnector,

@@ -61,2 +64,3 @@ createUniverse,

getGateTemplate,
getGateWhitelist,
getKillswitch,

@@ -100,2 +104,3 @@ getMetric,

reanalyzeExperiment,
removeFromGateWhitelist,
resolveError,

@@ -107,2 +112,3 @@ revokeKey,

setExperimentStatus,
setGateWhitelist,
setI18nLabel,

@@ -112,2 +118,3 @@ setKillswitchSwitch,

testConnector,
toggleKillswitch,
unarchiveMetric,

@@ -138,6 +145,6 @@ unsetKillswitchSwitch,

upsertProject
} from "./chunk-V4ZESAIF.js";
} from "./chunk-RTN572TI.js";
import {
zErrorCode
} from "./chunk-UV333BIK.js";
} from "./chunk-DW33MG4B.js";

@@ -186,2 +193,3 @@ // src/errors.ts

ackOpsItem,
addToGateWhitelist,
approveEvent,

@@ -209,2 +217,4 @@ client,

createOpsItem,
createPublicBug,
createPublicFeatureRequest,
createTriggerConnector,

@@ -247,2 +257,3 @@ createUniverse,

getGateTemplate,
getGateWhitelist,
getKillswitch,

@@ -287,2 +298,3 @@ getMetric,

reanalyzeExperiment,
removeFromGateWhitelist,
resolveError,

@@ -294,2 +306,3 @@ revokeKey,

setExperimentStatus,
setGateWhitelist,
setI18nLabel,

@@ -299,2 +312,3 @@ setKillswitchSwitch,

testConnector,
toggleKillswitch,
unarchiveMetric,

@@ -301,0 +315,0 @@ unsetKillswitchSwitch,

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/errors.ts"],"sourcesContent":["import { zErrorCode } from \"./generated/zod.gen.js\";\nimport type { Error as ApiErrorBody, ErrorCode } from \"./generated/types.gen.js\";\n\nexport type { ErrorCode };\nexport type { ApiErrorBody };\n\n/**\n * The canonical `ErrorCode` catalogue as a runtime array — derived from the\n * generated Zod enum so it can never drift from the spec. Mirrors\n * `@shipeasy/core`'s `ErrorCode`; the parity test (`scripts/check-drift.mjs`)\n * asserts every `x-error-codes` entry in the spec is one of these.\n */\nexport const ERROR_CODES = zErrorCode.options as readonly ErrorCode[];\n\n/** Type guard for the uniform `{ error, code?, detail? }` error envelope. */\nexport function isApiErrorBody(value: unknown): value is ApiErrorBody {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"error\" in value &&\n typeof (value as { error: unknown }).error === \"string\"\n );\n}\n\n/** Narrow an error body to a known `ErrorCode`, or `undefined` if uncatalogued. */\nexport function errorCodeOf(value: unknown): ErrorCode | undefined {\n if (!isApiErrorBody(value)) return undefined;\n const code = value.code;\n return code && (ERROR_CODES as readonly string[]).includes(code) ? code : undefined;\n}\n\n/** Which binary is reporting the failure — determines which command to tell the caller to run. */\nexport type AuthSurface = \"cli\" | \"mcp\";\n\nconst REAUTH_COMMAND: Record<AuthSurface, string> = {\n cli: \"shipeasy login --force\",\n mcp: \"shipeasy-mcp install --force\",\n};\n\n/**\n * Structured, agent-parseable remediation text for an admin-API auth failure\n * (401/403) — shared by the CLI's and MCP's error printers so every command\n * and every tool call reports auth failures the same way. The leading\n * `AUTH_REQUIRED:` / `AUTH_FORBIDDEN:` token is a stable marker a calling\n * agent can grep for; everything after it is human-readable remediation.\n *\n * Returns `undefined` for non-auth statuses so callers fall back to their\n * normal error formatting.\n */\nexport function formatAuthFailure(\n surface: AuthSurface,\n status: number,\n message: string,\n): string | undefined {\n const reauth = REAUTH_COMMAND[surface];\n if (status === 401) {\n return [\n `AUTH_REQUIRED: ${message} (401)`,\n ``,\n `Cause: the request's Shipeasy credentials are missing, invalid, or expired.`,\n `Fix:`,\n ` 1. Run: ${reauth}`,\n ` 2. Retry the command that failed.`,\n ].join(\"\\n\");\n }\n if (status === 403) {\n return [\n `AUTH_FORBIDDEN: ${message} (403)`,\n ``,\n `Cause: the credentials are valid but don't have access to this project or resource.`,\n `Fix:`,\n ` 1. Confirm the bound project is correct (check the .shipeasy file, or run: shipeasy root --json).`,\n ` 2. If it's the wrong project, run: shipeasy bind <project_id>.`,\n ` 3. If it's the right project, ask a workspace admin to grant access — retrying will not help.`,\n ].join(\"\\n\");\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,IAAM,cAAc,WAAW;AAG/B,SAAS,eAAe,OAAuC;AACpE,SACE,OAAO,UAAU,YACjB,UAAU,QACV,WAAW,SACX,OAAQ,MAA6B,UAAU;AAEnD;AAGO,SAAS,YAAY,OAAuC;AACjE,MAAI,CAAC,eAAe,KAAK,EAAG,QAAO;AACnC,QAAM,OAAO,MAAM;AACnB,SAAO,QAAS,YAAkC,SAAS,IAAI,IAAI,OAAO;AAC5E;AAKA,IAAM,iBAA8C;AAAA,EAClD,KAAK;AAAA,EACL,KAAK;AACP;AAYO,SAAS,kBACd,SACA,QACA,SACoB;AACpB,QAAM,SAAS,eAAe,OAAO;AACrC,MAAI,WAAW,KAAK;AAClB,WAAO;AAAA,MACL,kBAAkB,OAAO;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,MAAM;AAAA,MACnB;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACA,MAAI,WAAW,KAAK;AAClB,WAAO;AAAA,MACL,mBAAmB,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACA,SAAO;AACT;","names":[]}
{"version":3,"sources":["../src/errors.ts"],"sourcesContent":["import { zErrorCode } from \"./generated/zod.gen.js\";\nimport type { Error as ApiErrorBody, ErrorCode } from \"./generated/types.gen.js\";\n\nexport type { ErrorCode };\nexport type { ApiErrorBody };\n\n/**\n * The canonical `ErrorCode` catalogue as a runtime array — derived from the\n * generated Zod enum so it can never drift from the spec. Mirrors\n * `@shipeasy/core`'s `ErrorCode`; the parity test (`scripts/check-drift.mjs`)\n * asserts every `x-error-codes` entry in the spec is one of these.\n */\nexport const ERROR_CODES = zErrorCode.options as readonly ErrorCode[];\n\n/** Type guard for the uniform `{ error, code?, detail? }` error envelope. */\nexport function isApiErrorBody(value: unknown): value is ApiErrorBody {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"error\" in value &&\n typeof (value as { error: unknown }).error === \"string\"\n );\n}\n\n/** Narrow an error body to a known `ErrorCode`, or `undefined` if uncatalogued. */\nexport function errorCodeOf(value: unknown): ErrorCode | undefined {\n if (!isApiErrorBody(value)) return undefined;\n const code = value.code;\n return code && (ERROR_CODES as readonly string[]).includes(code) ? code : undefined;\n}\n\n/** Which binary is reporting the failure — determines which command to tell the caller to run. */\nexport type AuthSurface = \"cli\" | \"mcp\";\n\nconst REAUTH_COMMAND: Record<AuthSurface, string> = {\n cli: \"shipeasy login --force\",\n mcp: \"shipeasy-mcp install --force\",\n};\n\n/**\n * Structured, agent-parseable remediation text for an admin-API auth failure\n * (401/403) — shared by the CLI's and MCP's error printers so every command\n * and every tool call reports auth failures the same way. The leading\n * `AUTH_REQUIRED:` / `AUTH_FORBIDDEN:` token is a stable marker a calling\n * agent can grep for; everything after it is human-readable remediation.\n *\n * Returns `undefined` for non-auth statuses so callers fall back to their\n * normal error formatting.\n */\nexport function formatAuthFailure(\n surface: AuthSurface,\n status: number,\n message: string,\n): string | undefined {\n const reauth = REAUTH_COMMAND[surface];\n if (status === 401) {\n return [\n `AUTH_REQUIRED: ${message} (401)`,\n ``,\n `Cause: the request's Shipeasy credentials are missing, invalid, or expired.`,\n `Fix:`,\n ` 1. Run: ${reauth}`,\n ` 2. Retry the command that failed.`,\n ].join(\"\\n\");\n }\n if (status === 403) {\n return [\n `AUTH_FORBIDDEN: ${message} (403)`,\n ``,\n `Cause: the credentials are valid but don't have access to this project or resource.`,\n `Fix:`,\n ` 1. Confirm the bound project is correct (check the .shipeasy file, or run: shipeasy root --json).`,\n ` 2. If it's the wrong project, run: shipeasy bind <project_id>.`,\n ` 3. If it's the right project, ask a workspace admin to grant access — retrying will not help.`,\n ].join(\"\\n\");\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,IAAM,cAAc,WAAW;AAG/B,SAAS,eAAe,OAAuC;AACpE,SACE,OAAO,UAAU,YACjB,UAAU,QACV,WAAW,SACX,OAAQ,MAA6B,UAAU;AAEnD;AAGO,SAAS,YAAY,OAAuC;AACjE,MAAI,CAAC,eAAe,KAAK,EAAG,QAAO;AACnC,QAAM,OAAO,MAAM;AACnB,SAAO,QAAS,YAAkC,SAAS,IAAI,IAAI,OAAO;AAC5E;AAKA,IAAM,iBAA8C;AAAA,EAClD,KAAK;AAAA,EACL,KAAK;AACP;AAYO,SAAS,kBACd,SACA,QACA,SACoB;AACpB,QAAM,SAAS,eAAe,OAAO;AACrC,MAAI,WAAW,KAAK;AAClB,WAAO;AAAA,MACL,kBAAkB,OAAO;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,MAAM;AAAA,MACnB;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACA,MAAI,WAAW,KAAK;AAClB,WAAO;AAAA,MACL,mBAAmB,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACA,SAAO;AACT;","names":[]}

@@ -8,2 +8,7 @@ import {

zAckOpsItemResponse2,
zAddToGateWhitelistBody,
zAddToGateWhitelistHeaders,
zAddToGateWhitelistPath,
zAddToGateWhitelistRequest,
zAddToGateWhitelistResponse,
zAlertApiRow,

@@ -119,2 +124,9 @@ zApproveEventBody,

zCreateOpsItemResponse2,
zCreatePublicBugBody,
zCreatePublicBugRequest,
zCreatePublicBugResponse,
zCreatePublicFeatureRequestBody,
zCreatePublicFeatureRequestRequest,
zCreatePublicFeatureRequestResponse,
zCreatePublicTicketResponse,
zCreateTriggerConnectorBody,

@@ -230,2 +242,4 @@ zCreateTriggerConnectorHeaders,

zGateTemplateRuleResponse,
zGateWhitelist,
zGateWhitelistAttr,
zGetAttributeHeaders,

@@ -277,2 +291,5 @@ zGetAttributePath,

zGetGateTemplateResponse,
zGetGateWhitelistHeaders,
zGetGateWhitelistPath,
zGetGateWhitelistResponse,
zGetKillswitchHeaders,

@@ -482,2 +499,7 @@ zGetKillswitchPath,

zReanalyzeExperimentResponse2,
zRemoveFromGateWhitelistBody,
zRemoveFromGateWhitelistHeaders,
zRemoveFromGateWhitelistPath,
zRemoveFromGateWhitelistRequest,
zRemoveFromGateWhitelistResponse,
zResolveErrorHeaders,

@@ -514,2 +536,7 @@ zResolveErrorPath,

zSetExperimentStatusResponse2,
zSetGateWhitelistBody,
zSetGateWhitelistHeaders,
zSetGateWhitelistPath,
zSetGateWhitelistRequest,
zSetGateWhitelistResponse,
zSetI18nLabelBody,

@@ -537,2 +564,8 @@ zSetI18nLabelHeaders,

zTestConnectorResponse2,
zToggleKillswitchBody,
zToggleKillswitchHeaders,
zToggleKillswitchPath,
zToggleKillswitchRequest,
zToggleKillswitchResponse,
zToggleKillswitchResponse2,
zUnarchiveMetricHeaders,

@@ -688,3 +721,3 @@ zUnarchiveMetricPath,

zUpsertProjectResponse2
} from "./chunk-UV333BIK.js";
} from "./chunk-DW33MG4B.js";
export {

@@ -697,2 +730,7 @@ zAckOpsItemBody,

zAckOpsItemResponse2,
zAddToGateWhitelistBody,
zAddToGateWhitelistHeaders,
zAddToGateWhitelistPath,
zAddToGateWhitelistRequest,
zAddToGateWhitelistResponse,
zAlertApiRow,

@@ -808,2 +846,9 @@ zApproveEventBody,

zCreateOpsItemResponse2,
zCreatePublicBugBody,
zCreatePublicBugRequest,
zCreatePublicBugResponse,
zCreatePublicFeatureRequestBody,
zCreatePublicFeatureRequestRequest,
zCreatePublicFeatureRequestResponse,
zCreatePublicTicketResponse,
zCreateTriggerConnectorBody,

@@ -919,2 +964,4 @@ zCreateTriggerConnectorHeaders,

zGateTemplateRuleResponse,
zGateWhitelist,
zGateWhitelistAttr,
zGetAttributeHeaders,

@@ -966,2 +1013,5 @@ zGetAttributePath,

zGetGateTemplateResponse,
zGetGateWhitelistHeaders,
zGetGateWhitelistPath,
zGetGateWhitelistResponse,
zGetKillswitchHeaders,

@@ -1171,2 +1221,7 @@ zGetKillswitchPath,

zReanalyzeExperimentResponse2,
zRemoveFromGateWhitelistBody,
zRemoveFromGateWhitelistHeaders,
zRemoveFromGateWhitelistPath,
zRemoveFromGateWhitelistRequest,
zRemoveFromGateWhitelistResponse,
zResolveErrorHeaders,

@@ -1203,2 +1258,7 @@ zResolveErrorPath,

zSetExperimentStatusResponse2,
zSetGateWhitelistBody,
zSetGateWhitelistHeaders,
zSetGateWhitelistPath,
zSetGateWhitelistRequest,
zSetGateWhitelistResponse,
zSetI18nLabelBody,

@@ -1226,2 +1286,8 @@ zSetI18nLabelHeaders,

zTestConnectorResponse2,
zToggleKillswitchBody,
zToggleKillswitchHeaders,
zToggleKillswitchPath,
zToggleKillswitchRequest,
zToggleKillswitchResponse,
zToggleKillswitchResponse2,
zUnarchiveMetricHeaders,

@@ -1228,0 +1294,0 @@ zUnarchiveMetricPath,

{
"name": "@shipeasy/openapi",
"version": "3.1.0",
"version": "3.2.0",
"description": "Shipeasy admin OpenAPI 3.2 spec (hand-authored, single source of truth) + the generated TypeScript client, Zod schemas, and types. Consumed by @shipeasy/cli and @shipeasy/mcp.",

@@ -43,3 +43,4 @@ "type": "module",

"./openapi.yaml": "./openapi.yaml",
"./openapi.json": "./openapi.json"
"./openapi.json": "./openapi.json",
"./openapi-sdk.json": "./openapi-sdk.json"
},

@@ -50,7 +51,8 @@ "files": [

"openapi.json",
"openapi-sdk.json",
"spec/"
],
"scripts": {
"lint:spec": "redocly lint spec/openapi.yaml",
"bundle": "redocly bundle spec/openapi.yaml -o openapi.yaml && redocly bundle spec/openapi.yaml -o openapi.json",
"lint:spec": "redocly lint spec/openapi.yaml && redocly lint spec/openapi-sdk.yaml",
"bundle": "redocly bundle spec/openapi.yaml -o openapi.yaml && redocly bundle spec/openapi.yaml -o openapi.json && redocly bundle spec/openapi-sdk.yaml -o openapi-sdk.json",
"gen:sdk": "openapi-ts",

@@ -57,0 +59,0 @@ "gen": "pnpm bundle && pnpm gen:sdk",

@@ -123,1 +123,40 @@ BadRequest:

error: "GitHub API responded 403: resource not accessible by integration."
PayloadTooLarge:
description: The request body exceeded the intake's fixed size cap (16 KB).
content:
application/json:
schema:
$ref: ./errors.yaml#/Error
examples:
BAD_REQUEST:
summary: Body too large
value:
error: Body too large
code: BAD_REQUEST
TooManyRequests:
description: |-
The public intake is rate-limited per (project, client IP). Back off and retry;
the limit is a burst guard, not a quota, so a modest delay clears it.
content:
application/json:
schema:
$ref: ./errors.yaml#/Error
examples:
BAD_REQUEST:
summary: Rate limited
value:
error: Too many requests
code: BAD_REQUEST
ServiceUnavailable:
description: |-
A backing store the endpoint needs is not bound in this environment. Transient
and infrastructural — no stable `ErrorCode` is assigned, so `code` is omitted.
content:
application/json:
schema:
$ref: ./errors.yaml#/Error
examples:
UNAVAILABLE:
summary: Storage unbound
value:
error: Unavailable

@@ -983,1 +983,88 @@ # The single wire shape for a gate row, shared by `ListGatesResponse`

description: Recent audit rows for one gate, newest first.
GateWhitelistAttr:
type: string
enum:
- email
- user_id
description: Which identity attribute the whitelist matches on. `email` compares the caller's `email`; `user_id` compares the caller's `userID`. A whitelist matches on exactly one of the two at a time.
GateWhitelist:
type: object
properties:
id:
type: string
description: Resolved gate id.
name:
type: string
description: The gate's stable `name`.
attr:
$ref: "#/GateWhitelistAttr"
entries:
type: array
items:
type: string
minLength: 1
description: The whitelisted identities, in the order they are stored. Deduplicated case-sensitively; an empty array means the gate has no whitelist.
required:
- id
- name
- attr
- entries
additionalProperties: false
description: A gate's whitelist — the always-first allowlist that admits the listed identities before any targeting rule or rollout runs. Backed by the pinned `whitelist` entry at the head of the gate's `stack`, so it is the same list the dashboard's Whitelist block edits.
SetGateWhitelistRequest:
type: object
properties:
attr:
anyOf:
- $ref: "#/GateWhitelistAttr"
description: Identity attribute to match on. Defaults to the whitelist's current attribute, or `email` when the gate has no whitelist yet.
entries:
type: array
items:
type: string
minLength: 1
description: The complete whitelist after the call. Pass `[]` to remove the whitelist from the gate entirely.
required:
- entries
additionalProperties: false
description: Body for `PUT /api/admin/gates/{id}/whitelist`. Replaces the whole list — idempotent, and the only call that can switch `attr` or clear the whitelist.
AddToGateWhitelistRequest:
type: object
properties:
attr:
anyOf:
- $ref: "#/GateWhitelistAttr"
description: Identity attribute to match on. Only honoured when the gate has no whitelist yet (this call creates it); passing an attribute that disagrees with an existing whitelist is a 409 rather than a silent re-key of the entries already there.
entries:
type: array
minItems: 1
items:
type: string
minLength: 1
description: Identities to admit. Already-listed entries are skipped, so the call is idempotent.
required:
- entries
additionalProperties: false
description: Body for `POST /api/admin/gates/{id}/whitelist`. Adds entries to the whitelist, creating it if the gate doesn't have one.
RemoveFromGateWhitelistRequest:
type: object
properties:
entries:
type: array
minItems: 1
items:
type: string
minLength: 1
description: Identities to stop admitting. Entries that aren't listed are skipped, so the call is idempotent.
required:
- entries
additionalProperties: false
description: "Body for `DELETE /api/admin/gates/{id}/whitelist`. Removes entries from the whitelist. Removing the last entry leaves an empty whitelist in place — use `PUT` with `entries: []` to drop the block itself."
GetGateWhitelistResponse:
$ref: "#/GateWhitelist"
SetGateWhitelistResponse:
$ref: "#/GateWhitelist"
AddToGateWhitelistResponse:
$ref: "#/GateWhitelist"
RemoveFromGateWhitelistResponse:
$ref: "#/GateWhitelist"

@@ -105,4 +105,4 @@ ListKeysResponse:

minLength: 1
maxLength: 80
description: Optional human label. Programmatic (API) mints that omit it get an auto-generated descriptive name; dashboard mints may leave it blank.
maxLength: 160
description: "Optional human label. Programmatic (API) mints that omit it get an auto-generated descriptive name; dashboard mints may leave it blank. The cap is generous because provenance labels are composed, not typed — `shipeasy setup` mints keys named with the stack, package, date, and operator that produced them, which does not fit in a one-line-input budget."
scopes:

@@ -109,0 +109,0 @@ type: array

@@ -346,1 +346,65 @@ ListKillswitchesResponse:

additionalProperties: false
ToggleKillswitchRequest:
type: object
properties:
switchKey:
anyOf:
- type: string
maxLength: 64
pattern: ^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$
- type: "null"
description: Which target to flip. Omit (or `null`) to flip the killswitch's own flat `value`; name a switch key to flip that nested sub-switch instead, creating the entry if it doesn't exist yet.
value:
anyOf:
- type: boolean
- type: "null"
description: The value to publish. Omit (or `null`) to flip whatever is stored now — read-modify-write in one call. Pass an explicit `true`/`false` to make the call idempotent, so a retry can't undo the first attempt.
env:
anyOf:
- $ref: ./common.yaml#/Env
description: Environment to publish on. Defaults to `prod` — the environment an incident response means when it says "kill it".
additionalProperties: false
description: |-
Body for `POST /api/admin/killswitches/{id}/toggle`. Every field is optional, so the four useful calls read as one method with a widening argument list:
- `{}` — flip the flat value on prod.
- `{ "switchKey": "eu_region" }` — flip that sub-switch on prod.
- `{ "switchKey": "eu_region", "value": true }` — set that sub-switch on prod, idempotently.
- `{ "switchKey": "eu_region", "value": true, "env": "staging" }` — the same, on a chosen env.
ToggleKillswitchResponse:
type: object
properties:
id:
type: string
description: Resolved killswitch id.
env:
$ref: ./common.yaml#/Env
switchKey:
anyOf:
- type: string
maxLength: 64
pattern: ^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$
- type: "null"
description: The sub-switch that was flipped, or `null` when the flat `value` was.
previous:
type: boolean
description: The value that was in effect before this call. Equal to `value` when an idempotent `value` matched what was already stored.
value:
type: boolean
description: The value now in effect on `env`.
version:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: Newly published version on `env`.
published:
$ref: ./common.yaml#/KillswitchValue
required:
- id
- env
- switchKey
- previous
- value
- version
- published
additionalProperties: false

@@ -285,2 +285,4 @@ openapi: 3.2.0

$ref: ./paths/gates.yaml#/~1api~1admin~1gates~1{id}~1activity
/api/admin/gates/{id}/whitelist:
$ref: ./paths/gates.yaml#/~1api~1admin~1gates~1{id}~1whitelist
/api/admin/experiments:

@@ -326,2 +328,4 @@ $ref: ./paths/experiments.yaml#/~1api~1admin~1experiments

$ref: ./paths/killswitches.yaml#/~1api~1admin~1killswitches~1{id}~1value
/api/admin/killswitches/{id}/toggle:
$ref: ./paths/killswitches.yaml#/~1api~1admin~1killswitches~1{id}~1toggle
/api/admin/universes:

@@ -357,2 +361,6 @@ $ref: ./paths/universes.yaml#/~1api~1admin~1universes

$ref: ./paths/ops.yaml#/~1api~1admin~1ops
/ops/bug:
$ref: ./paths/ops.yaml#/~1ops~1bug
/ops/feature-request:
$ref: ./paths/ops.yaml#/~1ops~1feature-request
/api/admin/ops/{handle}:

@@ -443,1 +451,11 @@ $ref: ./paths/ops.yaml#/~1api~1admin~1ops~1{handle}

description: 'Pass an admin SDK key as `Authorization: Bearer sdk_admin_…`. Mint via `POST /api/admin/keys` with `type: "admin"`.'
clientSdkKey:
type: apiKey
in: header
name: X-SDK-Key
description: |-
Pass a **client** SDK key as `X-SDK-Key: sdk_client_…`. Used only by the public ticket intake (`POST /ops/bug`, `POST /ops/feature-request`), which is served by the edge worker rather than the admin API.
Client keys are designed to be embedded in shipped code — a CLI, an installer, a browser bundle — so presenting one here is safe by construction: it can do nothing but file a rate-limited ticket into its own project, in a state a human must approve. It carries no read access and cannot reach any other operation in this contract.
The key must additionally carry the `tickets:public_create` scope, and its project must have public ticket creation enabled.

@@ -604,1 +604,283 @@ /api/admin/gates:

- id
/api/admin/gates/{id}/whitelist:
get:
operationId: getGateWhitelist
summary: Read a gate's whitelist
description: |-
Returns the gate's whitelist — the always-first allowlist that admits the listed identities before any targeting rule or percentage rollout is evaluated.
A gate with no whitelist returns `entries: []` (and the default `attr`), never a 404 — so a caller can read-then-write without special-casing the empty gate.
**Use case:** Check whether an account is already let through before adding it.
tags:
- Flags
parameters:
- $ref: ../components/parameters.yaml#/ProjectId
- name: id
in: path
required: true
description: Stable opaque gate id (`gate_…`) or the gate's `name`.
schema:
$ref: ../components/schemas/common.yaml#/ResourceId
responses:
"200":
description: Read a gate's whitelist
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/GetGateWhitelistResponse
example:
id: gate_01j7w8a1b2c3d4e5f6g7h8i9j0
name: new_checkout
attr: email
entries:
- alice@acme.dev
- bob@acme.dev
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"404":
$ref: ../components/responses.yaml#/NotFound
"409":
$ref: ../components/responses.yaml#/Conflict
"422":
$ref: ../components/responses.yaml#/UnprocessableEntity
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
x-cli:
name: whitelist
positional:
- id
put:
operationId: setGateWhitelist
summary: Replace a gate's whitelist
description: |-
Replaces the gate's whole whitelist with `entries`, creating the block if the gate didn't have one. Idempotent — the same call twice leaves the same list.
This is the only whitelist call that can switch `attr` (`email` ⇄ `user_id`) or clear the block: `entries: []` removes the whitelist from the gate entirely.
**Use cases**
- **Pin an exact list** — `{ "entries": ["alice@acme.dev", "bob@acme.dev"] }`.
- **Switch to user ids** — `{ "attr": "user_id", "entries": ["usr_123"] }`.
- **Drop the whitelist** — `{ "entries": [] }`.
tags:
- Flags
parameters:
- $ref: ../components/parameters.yaml#/ProjectId
- name: id
in: path
required: true
description: Stable opaque gate id (`gate_…`) or the gate's `name`.
schema:
$ref: ../components/schemas/common.yaml#/ResourceId
requestBody:
required: true
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/SetGateWhitelistRequest
examples:
pinList:
summary: Pin an exact list of emails
value:
entries:
- alice@acme.dev
- bob@acme.dev
switchToUserIds:
summary: Re-key the whitelist onto user ids
description: Switching `attr` replaces the entries wholesale — the old emails are not translated.
value:
attr: user_id
entries:
- usr_01j7w8a1b2c3d4e5f6g7h8i9j0
clear:
summary: Remove the whitelist
description: An empty list drops the pinned block from the gate's stack.
value:
entries: []
responses:
"200":
description: Replace a gate's whitelist
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/SetGateWhitelistResponse
example:
id: gate_01j7w8a1b2c3d4e5f6g7h8i9j0
name: new_checkout
attr: email
entries:
- alice@acme.dev
- bob@acme.dev
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"404":
$ref: ../components/responses.yaml#/NotFound
"409":
$ref: ../components/responses.yaml#/Conflict
"422":
$ref: ../components/responses.yaml#/UnprocessableEntity
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- VALIDATION
x-cli:
name: whitelist-set
positional:
- id
post:
operationId: addToGateWhitelist
summary: Add entries to a gate's whitelist
description: |-
Adds identities to the gate's whitelist, creating the block if the gate doesn't have one yet. Entries already on the list are skipped, so the call is idempotent and safe to retry.
Adding to a gate that already has a whitelist keyed on the other attribute is rejected (409) rather than silently re-keying the entries already there — use `PUT` to switch `attr` deliberately.
**Use case:** Let one more customer into a private beta without reading the current list first.
tags:
- Flags
parameters:
- $ref: ../components/parameters.yaml#/ProjectId
- name: id
in: path
required: true
description: Stable opaque gate id (`gate_…`) or the gate's `name`.
schema:
$ref: ../components/schemas/common.yaml#/ResourceId
requestBody:
required: true
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/AddToGateWhitelistRequest
examples:
addOne:
summary: Admit one more email
value:
entries:
- carol@acme.dev
createOnUserIds:
summary: Start a whitelist keyed on user ids
description: "`attr` is honoured only because this gate has no whitelist yet."
value:
attr: user_id
entries:
- usr_01j7w8a1b2c3d4e5f6g7h8i9j0
responses:
"200":
description: Add entries to a gate's whitelist
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/AddToGateWhitelistResponse
example:
id: gate_01j7w8a1b2c3d4e5f6g7h8i9j0
name: new_checkout
attr: email
entries:
- alice@acme.dev
- bob@acme.dev
- carol@acme.dev
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"404":
$ref: ../components/responses.yaml#/NotFound
"409":
$ref: ../components/responses.yaml#/Conflict
"422":
$ref: ../components/responses.yaml#/UnprocessableEntity
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- IMMUTABLE_FIELD
- VALIDATION
x-cli:
name: whitelist-add
positional:
- id
delete:
operationId: removeFromGateWhitelist
summary: Remove entries from a gate's whitelist
description: |-
Removes identities from the gate's whitelist. Entries that aren't on the list are skipped, so the call is idempotent.
Removing the last entry leaves an empty whitelist block in place; to drop the block itself use `PUT` with `entries: []`.
**Use case:** Revoke one beta tester's access without touching anyone else's.
tags:
- Flags
parameters:
- $ref: ../components/parameters.yaml#/ProjectId
- name: id
in: path
required: true
description: Stable opaque gate id (`gate_…`) or the gate's `name`.
schema:
$ref: ../components/schemas/common.yaml#/ResourceId
requestBody:
required: true
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/RemoveFromGateWhitelistRequest
examples:
removeOne:
summary: Revoke one email
value:
entries:
- carol@acme.dev
responses:
"200":
description: Remove entries from a gate's whitelist
content:
application/json:
schema:
$ref: ../components/schemas/gates.yaml#/RemoveFromGateWhitelistResponse
example:
id: gate_01j7w8a1b2c3d4e5f6g7h8i9j0
name: new_checkout
attr: email
entries:
- alice@acme.dev
- bob@acme.dev
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"404":
$ref: ../components/responses.yaml#/NotFound
"409":
$ref: ../components/responses.yaml#/Conflict
"422":
$ref: ../components/responses.yaml#/UnprocessableEntity
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- VALIDATION
x-cli:
name: whitelist-remove
positional:
- id

@@ -582,1 +582,97 @@ /api/admin/killswitches:

- id
/api/admin/killswitches/{id}/toggle:
post:
operationId: toggleKillswitch
summary: Toggle a killswitch or one of its switches
description: |-
Flips a killswitch on one environment and publishes a new version there. This is the one-call incident verb: it reads the current value, flips it, and publishes, so you don't have to fetch the killswitch first.
Every body field is optional, which is what makes the call widen cleanly:
- **Flip the killswitch** — `{}`. Flips the flat `value` on `prod`.
- **Flip one sub-switch** — `{ "switchKey": "eu_region" }`. Flips that entry on `prod`, creating it (from `false`) if it isn't in the map yet.
- **Set it idempotently** — `{ "switchKey": "eu_region", "value": true }`. Publishes exactly that value, so a retried call can't undo the first one. A `null` `value` means "flip", not "set to null".
- **Choose the environment** — add `"env": "staging"`. Omitted, `env` is `prod`.
The response reports both `previous` and `value`, so a caller that asked for a flip can see what it actually changed.
Prefer this over `PUT /{id}/value` and `PUT /{id}/switch` unless you specifically need those endpoints' unconditional set semantics.
tags:
- Killswitch
parameters:
- $ref: ../components/parameters.yaml#/ProjectId
- name: id
in: path
required: true
description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
schema:
$ref: ../components/schemas/common.yaml#/ResourceId
requestBody:
required: false
content:
application/json:
schema:
$ref: ../components/schemas/killswitches.yaml#/ToggleKillswitchRequest
examples:
flipOnProd:
summary: Flip the killswitch on prod
description: No body fields — reads the flat `value` on prod and publishes its opposite.
value: {}
flipOneSwitch:
summary: Flip one sub-switch on prod
description: Flips `switches.eu_region` on prod, leaving the flat `value` and every other key alone.
value:
switchKey: eu_region
setOneSwitch:
summary: Trip one sub-switch idempotently
description: Publishes `switches.eu_region = true` on prod whatever it was before — safe to retry.
value:
switchKey: eu_region
value: true
setOneSwitchOnStaging:
summary: Trip one sub-switch on a chosen env
description: The same idempotent set, published on staging instead of prod.
value:
switchKey: eu_region
value: true
env: staging
responses:
"200":
description: Toggle a killswitch or one of its switches
content:
application/json:
schema:
$ref: ../components/schemas/killswitches.yaml#/ToggleKillswitchResponse
example:
id: ksw_01j7w9d8h2k4m6n8p0q2r4s6t8
env: prod
switchKey: eu_region
previous: false
value: true
version: 7
published:
value: false
switches:
eu_region: true
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"404":
$ref: ../components/responses.yaml#/NotFound
"409":
$ref: ../components/responses.yaml#/Conflict
"422":
$ref: ../components/responses.yaml#/UnprocessableEntity
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- VALIDATION
x-cli:
name: toggle
positional:
- id

@@ -183,2 +183,181 @@ /api/admin/ops:

type: feature_request
/ops/bug:
post:
operationId: createPublicBug
summary: File a bug
description: |-
Files one bug onto a project's queue, awaiting human approval. This is the **public** intake: it authenticates with a *client* SDK key rather than an admin key, so it can be called from a CLI, an installer script, a devtools overlay, or any shipped code — the same places a client key already lives.
Three gates decide whether a ticket is filed, and nothing else the caller sends can widen them:
1. the key is a `client` key carrying the `tickets:public_create` scope,
2. the key's project has public ticket creation enabled, and
3. the item is filed as `pending_approval` — parked out of the work queue until a human promotes it in the dashboard.
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.
This endpoint is served by the Shipeasy **edge worker** (`api.shipeasy.ai`), not the admin API — see `servers` below.
**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": "…" }`.
tags:
- Ops
servers:
- url: https://api.shipeasy.ai
description: Shipeasy edge worker (production)
- url: http://localhost:8787
description: Local `wrangler dev`
security:
- clientSdkKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: ../components/schemas/ops.yaml#/CreatePublicBugRequest
examples:
minimal:
summary: Just a title
description: Every other field is optional — the queue triages from `open` at default priority.
value:
title: Checkout button misaligned on mobile
full:
summary: A full report
value:
title: Checkout button misaligned on mobile
stepsToReproduce: Open the cart on iOS Safari and tap the price row.
actualResult: The primary CTA overlaps the price.
expectedResult: The CTA sits below the price with clear spacing.
priority: high
reporterEmail: alice@acme.dev
pageUrl: https://acme.dev/cart
responses:
"200":
description: An open ticket already tracks this report; nothing was filed
content:
application/json:
schema:
$ref: ../components/schemas/ops.yaml#/CreatePublicTicketResponse
example:
number: 7
deduped: true
"201":
description: File a bug
content:
application/json:
schema:
$ref: ../components/schemas/ops.yaml#/CreatePublicTicketResponse
example:
id: fb_01j7w8a1b2c3d4e5f6g7h8i9j0
number: 7
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"413":
$ref: ../components/responses.yaml#/PayloadTooLarge
"429":
$ref: ../components/responses.yaml#/TooManyRequests
"503":
$ref: ../components/responses.yaml#/ServiceUnavailable
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- VALIDATION
x-cli:
hidden: true
# Spec- and SDK-only. The generated CLI/MCP client resolves ONE base URL
# and ONE credential for the whole contract, so it cannot honour this
# operation's own `servers` (the edge worker) or its `clientSdkKey`
# security — it would POST to the admin host with an admin bearer and 404.
# Both surfaces are authenticated admin tools anyway: `shipeasy ops bug`
# and the `ops_bug` MCP tool file through `createOpsItem`, which lands an
# `open` item with the full field set rather than a `pending_approval` one.
/ops/feature-request:
post:
operationId: createPublicFeatureRequest
summary: File a feature request
description: |-
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.
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.
This endpoint is served by the Shipeasy **edge worker** (`api.shipeasy.ai`), not the admin API — see `servers` below.
**Use case:** An in-product "request a feature" form posts what the user asked for — `{ "title": "Dark mode", "useCase": "Reduce eye strain at night" }`.
tags:
- Ops
servers:
- url: https://api.shipeasy.ai
description: Shipeasy edge worker (production)
- url: http://localhost:8787
description: Local `wrangler dev`
security:
- clientSdkKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: ../components/schemas/ops.yaml#/CreatePublicFeatureRequestRequest
examples:
minimal:
summary: Just a title
value:
title: Dark mode for the dashboard
full:
summary: A full request
value:
title: Dark mode for the dashboard
description: Add a theme toggle that persists per user.
useCase: Reduce eye strain for users working at night.
priority: nice_to_have
reporterEmail: alice@acme.dev
responses:
"200":
description: An open ticket already tracks this report; nothing was filed
content:
application/json:
schema:
$ref: ../components/schemas/ops.yaml#/CreatePublicTicketResponse
example:
number: 7
deduped: true
"201":
description: File a feature request
content:
application/json:
schema:
$ref: ../components/schemas/ops.yaml#/CreatePublicTicketResponse
example:
id: fb_01j7w8a1b2c3d4e5f6g7h8i9j0
number: 8
"400":
$ref: ../components/responses.yaml#/BadRequest
"401":
$ref: ../components/responses.yaml#/Unauthorized
"403":
$ref: ../components/responses.yaml#/Forbidden
"413":
$ref: ../components/responses.yaml#/PayloadTooLarge
"429":
$ref: ../components/responses.yaml#/TooManyRequests
"503":
$ref: ../components/responses.yaml#/ServiceUnavailable
x-error-codes:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- VALIDATION
x-cli:
hidden: true
# Spec- and SDK-only. The generated CLI/MCP client resolves ONE base URL
# and ONE credential for the whole contract, so it cannot honour this
# operation's own `servers` (the edge worker) or its `clientSdkKey`
# security — it would POST to the admin host with an admin bearer and 404.
# Both surfaces are authenticated admin tools anyway: `shipeasy ops bug`
# and the `ops_bug` MCP tool file through `createOpsItem`, which lands an
# `open` item with the full field set rather than a `pending_approval` one.
/api/admin/ops/{handle}:

@@ -185,0 +364,0 @@ get:

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

// src/generated/core/bodySerializer.gen.ts
var jsonBodySerializer = {
bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
};
// src/generated/core/params.gen.ts
var extraPrefixesMap = {
$body_: "body",
$headers_: "headers",
$path_: "path",
$query_: "query"
};
var extraPrefixes = Object.entries(extraPrefixesMap);
// src/generated/core/serverSentEvents.gen.ts
function createSseClient({
onRequest,
onSseError,
onSseEvent,
responseTransformer,
responseValidator,
sseDefaultRetryDelay,
sseMaxRetryAttempts,
sseMaxRetryDelay,
sseSleepFn,
url,
...options
}) {
let lastEventId;
const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
const createStream = async function* () {
let retryDelay = sseDefaultRetryDelay ?? 3e3;
let attempt = 0;
const signal = options.signal ?? new AbortController().signal;
while (true) {
if (signal.aborted) break;
attempt++;
const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
if (lastEventId !== void 0) {
headers.set("Last-Event-ID", lastEventId);
}
try {
const requestInit = {
redirect: "follow",
...options,
body: options.serializedBody,
headers,
signal
};
let request = new Request(url, requestInit);
if (onRequest) {
request = await onRequest(url, requestInit);
}
const _fetch = options.fetch ?? globalThis.fetch;
const response = await _fetch(request);
if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
if (!response.body) throw new Error("No body in SSE response");
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = "";
const abortHandler = () => {
try {
reader.cancel();
} catch {
}
};
signal.addEventListener("abort", abortHandler);
try {
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += value;
buffer = buffer.replace(/\r\n?/g, "\n");
const chunks = buffer.split("\n\n");
buffer = chunks.pop() ?? "";
for (const chunk of chunks) {
const lines = chunk.split("\n");
const dataLines = [];
let eventName;
for (const line of lines) {
if (line.startsWith("data:")) {
dataLines.push(line.replace(/^data:\s*/, ""));
} else if (line.startsWith("event:")) {
eventName = line.replace(/^event:\s*/, "");
} else if (line.startsWith("id:")) {
lastEventId = line.replace(/^id:\s*/, "");
} else if (line.startsWith("retry:")) {
const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
if (!Number.isNaN(parsed)) {
retryDelay = parsed;
}
}
}
let data;
let parsedJson = false;
if (dataLines.length) {
const rawData = dataLines.join("\n");
try {
data = JSON.parse(rawData);
parsedJson = true;
} catch {
data = rawData;
}
}
if (parsedJson) {
if (responseValidator) {
await responseValidator(data);
}
if (responseTransformer) {
data = await responseTransformer(data);
}
}
onSseEvent?.({
data,
event: eventName,
id: lastEventId,
retry: retryDelay
});
if (dataLines.length) {
yield data;
}
}
}
} finally {
signal.removeEventListener("abort", abortHandler);
reader.releaseLock();
}
break;
} catch (error) {
onSseError?.(error);
if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {
break;
}
const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4);
await sleep(backoff);
}
}
};
const stream = createStream();
return { stream };
}
// src/generated/core/pathSerializer.gen.ts
var separatorArrayExplode = (style) => {
switch (style) {
case "label":
return ".";
case "matrix":
return ";";
case "simple":
return ",";
default:
return "&";
}
};
var separatorArrayNoExplode = (style) => {
switch (style) {
case "form":
return ",";
case "pipeDelimited":
return "|";
case "spaceDelimited":
return "%20";
default:
return ",";
}
};
var separatorObjectExplode = (style) => {
switch (style) {
case "label":
return ".";
case "matrix":
return ";";
case "simple":
return ",";
default:
return "&";
}
};
var serializeArrayParam = ({
allowReserved,
explode,
name,
style,
value
}) => {
if (!explode) {
const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
switch (style) {
case "label":
return `.${joinedValues2}`;
case "matrix":
return `;${name}=${joinedValues2}`;
case "simple":
return joinedValues2;
default:
return `${name}=${joinedValues2}`;
}
}
const separator = separatorArrayExplode(style);
const joinedValues = value.map((v) => {
if (style === "label" || style === "simple") {
return allowReserved ? v : encodeURIComponent(v);
}
return serializePrimitiveParam({
allowReserved,
name,
value: v
});
}).join(separator);
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
};
var serializePrimitiveParam = ({
allowReserved,
name,
value
}) => {
if (value === void 0 || value === null) {
return "";
}
if (typeof value === "object") {
throw new Error(
"Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these."
);
}
return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
};
var serializeObjectParam = ({
allowReserved,
explode,
name,
style,
value,
valueOnly
}) => {
if (value instanceof Date) {
return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
}
if (style !== "deepObject" && !explode) {
let values = [];
Object.entries(value).forEach(([key, v]) => {
values = [...values, key, allowReserved ? v : encodeURIComponent(v)];
});
const joinedValues2 = values.join(",");
switch (style) {
case "form":
return `${name}=${joinedValues2}`;
case "label":
return `.${joinedValues2}`;
case "matrix":
return `;${name}=${joinedValues2}`;
default:
return joinedValues2;
}
}
const separator = separatorObjectExplode(style);
const joinedValues = Object.entries(value).map(
([key, v]) => serializePrimitiveParam({
allowReserved,
name: style === "deepObject" ? `${name}[${key}]` : key,
value: v
})
).join(separator);
return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
};
// src/generated/core/utils.gen.ts
var PATH_PARAM_RE = /\{[^{}]+\}/g;
var defaultPathSerializer = ({ path, url: _url }) => {
let url = _url;
const matches = _url.match(PATH_PARAM_RE);
if (matches) {
for (const match of matches) {
let explode = false;
let name = match.substring(1, match.length - 1);
let style = "simple";
if (name.endsWith("*")) {
explode = true;
name = name.substring(0, name.length - 1);
}
if (name.startsWith(".")) {
name = name.substring(1);
style = "label";
} else if (name.startsWith(";")) {
name = name.substring(1);
style = "matrix";
}
const value = path[name];
if (value === void 0 || value === null) {
continue;
}
if (Array.isArray(value)) {
url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
continue;
}
if (typeof value === "object") {
url = url.replace(
match,
serializeObjectParam({
explode,
name,
style,
value,
valueOnly: true
})
);
continue;
}
if (style === "matrix") {
url = url.replace(
match,
`;${serializePrimitiveParam({
name,
value
})}`
);
continue;
}
const replaceValue = encodeURIComponent(
style === "label" ? `.${value}` : value
);
url = url.replace(match, replaceValue);
}
}
return url;
};
var getUrl = ({
baseUrl,
path,
query,
querySerializer,
url: _url
}) => {
const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
let url = (baseUrl ?? "") + pathUrl;
if (path) {
url = defaultPathSerializer({ path, url });
}
let search = query ? querySerializer(query) : "";
if (search.startsWith("?")) {
search = search.substring(1);
}
if (search) {
url += `?${search}`;
}
return url;
};
function getValidRequestBody(options) {
const hasBody = options.body !== void 0;
const isSerializedBody = hasBody && options.bodySerializer;
if (isSerializedBody) {
if ("serializedBody" in options) {
const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== "";
return hasSerializedBody ? options.serializedBody : null;
}
return options.body !== "" ? options.body : null;
}
if (hasBody) {
return options.body;
}
return void 0;
}
// src/generated/core/auth.gen.ts
var getAuthToken = async (auth, callback) => {
const token = typeof callback === "function" ? await callback(auth) : callback;
if (!token) {
return;
}
if (auth.scheme === "bearer") {
return `Bearer ${token}`;
}
if (auth.scheme === "basic") {
return `Basic ${btoa(token)}`;
}
return token;
};
// src/generated/client/utils.gen.ts
var createQuerySerializer = ({
parameters = {},
...args
} = {}) => {
const querySerializer = (queryParams) => {
const search = [];
if (queryParams && typeof queryParams === "object") {
for (const name in queryParams) {
const value = queryParams[name];
if (value === void 0 || value === null) {
continue;
}
const options = parameters[name] || args;
if (Array.isArray(value)) {
const serializedArray = serializeArrayParam({
allowReserved: options.allowReserved,
explode: true,
name,
style: "form",
value,
...options.array
});
if (serializedArray) search.push(serializedArray);
} else if (typeof value === "object") {
const serializedObject = serializeObjectParam({
allowReserved: options.allowReserved,
explode: true,
name,
style: "deepObject",
value,
...options.object
});
if (serializedObject) search.push(serializedObject);
} else {
const serializedPrimitive = serializePrimitiveParam({
allowReserved: options.allowReserved,
name,
value
});
if (serializedPrimitive) search.push(serializedPrimitive);
}
}
}
return search.join("&");
};
return querySerializer;
};
var getParseAs = (contentType) => {
if (!contentType) {
return "stream";
}
const cleanContent = contentType.split(";")[0]?.trim();
if (!cleanContent) {
return;
}
if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
return "json";
}
if (cleanContent === "multipart/form-data") {
return "formData";
}
if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
return "blob";
}
if (cleanContent.startsWith("text/")) {
return "text";
}
return;
};
var checkForExistence = (options, name) => {
if (!name) {
return false;
}
if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
return true;
}
return false;
};
async function setAuthParams(options) {
for (const auth of options.security ?? []) {
if (checkForExistence(options, auth.name)) {
continue;
}
const token = await getAuthToken(auth, options.auth);
if (!token) {
continue;
}
const name = auth.name ?? "Authorization";
switch (auth.in) {
case "query":
if (!options.query) {
options.query = {};
}
options.query[name] = token;
break;
case "cookie":
options.headers.append("Cookie", `${name}=${token}`);
break;
case "header":
default:
options.headers.set(name, token);
break;
}
}
}
var buildUrl = (options) => getUrl({
baseUrl: options.baseUrl,
path: options.path,
query: options.query,
querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
url: options.url
});
var mergeConfigs = (a, b) => {
const config = { ...a, ...b };
if (config.baseUrl?.endsWith("/")) {
config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
}
config.headers = mergeHeaders(a.headers, b.headers);
return config;
};
var headersEntries = (headers) => {
const entries = [];
headers.forEach((value, key) => {
entries.push([key, value]);
});
return entries;
};
var mergeHeaders = (...headers) => {
const mergedHeaders = new Headers();
for (const header of headers) {
if (!header) {
continue;
}
const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);
for (const [key, value] of iterator) {
if (value === null) {
mergedHeaders.delete(key);
} else if (Array.isArray(value)) {
for (const v of value) {
mergedHeaders.append(key, v);
}
} else if (value !== void 0) {
mergedHeaders.set(
key,
typeof value === "object" ? JSON.stringify(value) : value
);
}
}
}
return mergedHeaders;
};
var Interceptors = class {
fns = [];
clear() {
this.fns = [];
}
eject(id) {
const index = this.getInterceptorIndex(id);
if (this.fns[index]) {
this.fns[index] = null;
}
}
exists(id) {
const index = this.getInterceptorIndex(id);
return Boolean(this.fns[index]);
}
getInterceptorIndex(id) {
if (typeof id === "number") {
return this.fns[id] ? id : -1;
}
return this.fns.indexOf(id);
}
update(id, fn) {
const index = this.getInterceptorIndex(id);
if (this.fns[index]) {
this.fns[index] = fn;
return id;
}
return false;
}
use(fn) {
this.fns.push(fn);
return this.fns.length - 1;
}
};
var createInterceptors = () => ({
error: new Interceptors(),
request: new Interceptors(),
response: new Interceptors()
});
var defaultQuerySerializer = createQuerySerializer({
allowReserved: false,
array: {
explode: true,
style: "form"
},
object: {
explode: true,
style: "deepObject"
}
});
var defaultHeaders = {
"Content-Type": "application/json"
};
var createConfig = (override = {}) => ({
...jsonBodySerializer,
headers: defaultHeaders,
parseAs: "auto",
querySerializer: defaultQuerySerializer,
...override
});
// src/generated/client/client.gen.ts
var createClient = (config = {}) => {
let _config = mergeConfigs(createConfig(), config);
const getConfig2 = () => ({ ..._config });
const setConfig = (config2) => {
_config = mergeConfigs(_config, config2);
return getConfig2();
};
const interceptors = createInterceptors();
const beforeRequest = async (options) => {
const opts = {
..._config,
...options,
fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
headers: mergeHeaders(_config.headers, options.headers),
serializedBody: void 0
};
if (opts.security) {
await setAuthParams(opts);
}
if (opts.requestValidator) {
await opts.requestValidator(opts);
}
if (opts.body !== void 0 && opts.bodySerializer) {
opts.serializedBody = opts.bodySerializer(opts.body);
}
if (opts.body === void 0 || opts.serializedBody === "") {
opts.headers.delete("Content-Type");
}
const resolvedOpts = opts;
const url = buildUrl(resolvedOpts);
return { opts: resolvedOpts, url };
};
const request = async (options) => {
const throwOnError = options.throwOnError ?? _config.throwOnError;
const responseStyle = options.responseStyle ?? _config.responseStyle;
let request2;
let response;
try {
const { opts, url } = await beforeRequest(options);
const requestInit = {
redirect: "follow",
...opts,
body: getValidRequestBody(opts)
};
request2 = new Request(url, requestInit);
for (const fn of interceptors.request.fns) {
if (fn) {
request2 = await fn(request2, opts);
}
}
const _fetch = opts.fetch;
response = await _fetch(request2);
for (const fn of interceptors.response.fns) {
if (fn) {
response = await fn(response, request2, opts);
}
}
const result = {
request: request2,
response
};
if (response.ok) {
const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
if (response.status === 204 || response.headers.get("Content-Length") === "0") {
let emptyData;
switch (parseAs) {
case "arrayBuffer":
case "blob":
case "text":
emptyData = await response[parseAs]();
break;
case "formData":
emptyData = new FormData();
break;
case "stream":
emptyData = response.body;
break;
case "json":
default:
emptyData = {};
break;
}
return opts.responseStyle === "data" ? emptyData : {
data: emptyData,
...result
};
}
let data;
switch (parseAs) {
case "arrayBuffer":
case "blob":
case "formData":
case "text":
data = await response[parseAs]();
break;
case "json": {
const text = await response.text();
data = text ? JSON.parse(text) : {};
break;
}
case "stream":
return opts.responseStyle === "data" ? response.body : {
data: response.body,
...result
};
}
if (parseAs === "json") {
if (opts.responseValidator) {
await opts.responseValidator(data);
}
if (opts.responseTransformer) {
data = await opts.responseTransformer(data);
}
}
return opts.responseStyle === "data" ? data : {
data,
...result
};
}
const textError = await response.text();
let jsonError;
try {
jsonError = JSON.parse(textError);
} catch {
}
throw jsonError ?? textError;
} catch (error) {
let finalError = error;
for (const fn of interceptors.error.fns) {
if (fn) {
finalError = await fn(finalError, response, request2, options);
}
}
finalError = finalError || {};
if (throwOnError) {
throw finalError;
}
return responseStyle === "data" ? void 0 : {
error: finalError,
request: request2,
response
};
}
};
const makeMethodFn = (method) => (options) => request({ ...options, method });
const makeSseFn = (method) => async (options) => {
const { opts, url } = await beforeRequest(options);
return createSseClient({
...opts,
body: opts.body,
method,
onRequest: async (url2, init) => {
let request2 = new Request(url2, init);
for (const fn of interceptors.request.fns) {
if (fn) {
request2 = await fn(request2, opts);
}
}
return request2;
},
serializedBody: getValidRequestBody(opts),
url
});
};
const _buildUrl = (options) => buildUrl({ ..._config, ...options });
return {
buildUrl: _buildUrl,
connect: makeMethodFn("CONNECT"),
delete: makeMethodFn("DELETE"),
get: makeMethodFn("GET"),
getConfig: getConfig2,
head: makeMethodFn("HEAD"),
interceptors,
options: makeMethodFn("OPTIONS"),
patch: makeMethodFn("PATCH"),
post: makeMethodFn("POST"),
put: makeMethodFn("PUT"),
request,
setConfig,
sse: {
connect: makeSseFn("CONNECT"),
delete: makeSseFn("DELETE"),
get: makeSseFn("GET"),
head: makeSseFn("HEAD"),
options: makeSseFn("OPTIONS"),
patch: makeSseFn("PATCH"),
post: makeSseFn("POST"),
put: makeSseFn("PUT"),
trace: makeSseFn("TRACE")
},
trace: makeMethodFn("TRACE")
};
};
// src/generated/client.gen.ts
var client = createClient(createConfig({ baseUrl: "https://shipeasy.ai" }));
// src/generated/sdk.gen.ts
var listGates = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates",
...options
});
var createGate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteGate = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}",
...options
});
var getGate = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}",
...options
});
var updateGate = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var enableGate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/enable",
...options
});
var disableGate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/disable",
...options
});
var listGateActivity = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/{id}/activity",
...options
});
var listExperiments = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments",
...options
});
var createExperiment = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteExperiment = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}",
...options
});
var getExperiment = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}",
...options
});
var updateExperiment = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setExperimentStatus = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/status",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setExperimentMetrics = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/metrics",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getExperimentResults = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/results",
...options
});
var getExperimentTimeseries = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/timeseries",
...options
});
var reanalyzeExperiment = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/reanalyze",
...options
});
var createExperimentReadout = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/readouts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getExperimentReadout = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/experiments/{id}/readouts/{readoutId}",
...options
});
var listConfigs = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs",
...options
});
var createConfig2 = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteConfig = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}",
...options
});
var getConfig = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}",
...options
});
var updateConfig = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var discardConfigDraft = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/drafts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var saveConfigDraft = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/drafts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var publishConfigDraft = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/publish",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listConfigActivity = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/activity",
...options
});
var updateConfigSchema = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/schema",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listConfigVersions = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/configs/{id}/versions",
...options
});
var listKillswitches = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches",
...options
});
var createKillswitch = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteKillswitch = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}",
...options
});
var getKillswitch = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}",
...options
});
var updateKillswitch = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var unsetKillswitchSwitch = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/switch",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setKillswitchSwitch = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/switch",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setKillswitchValue = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/killswitches/{id}/value",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listUniverses = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes",
...options
});
var createUniverse = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteUniverse = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes/{id}",
...options
});
var updateUniverse = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/universes/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listGateTemplates = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates",
...options
});
var createGateTemplate = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteGateTemplate = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates/{id}",
...options
});
var getGateTemplate = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates/{id}",
...options
});
var updateGateTemplate = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/gates/templates/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listAttributes = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes",
...options
});
var createAttribute = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteAttribute = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes/{id}",
...options
});
var getAttribute = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes/{id}",
...options
});
var updateAttribute = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/attributes/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listMetrics = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics",
...options
});
var createMetric = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteMetric = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}",
...options
});
var getMetric = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}",
...options
});
var updateMetric = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listMetricExperiments = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}/experiments",
...options
});
var unarchiveMetric = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}/unarchive",
...options
});
var getMetricSeries = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/metrics/{id}/series",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listEvents = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events",
...options
});
var createEvent = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteEvent = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}",
...options
});
var getEvent = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}",
...options
});
var updateEvent = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var approveEvent = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/events/{id}/approve",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listOpsItems = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops",
...options
});
var createOpsItem = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteOpsItem = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}",
...options
});
var getOpsItem = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}",
...options
});
var updateOpsItem = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var linkPrToOpsItem = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/link-pr",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var ackOpsItem = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/ack",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listOpsInvestigations = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/investigation",
...options
});
var createOpsInvestigation = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/investigation",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var updateOpsInvestigation = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/investigation/{investigationId}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listOpsAgents = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/agent-profiles",
...options
});
var listOpsComments = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/comments",
...options
});
var createOpsComment = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/ops/{handle}/comments",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var notifyOps = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/notifications",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listSlackChannels = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/slack/channels",
...options
});
var listAlertRules = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules",
...options
});
var createAlertRule = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteAlertRule = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules/{id}",
...options
});
var updateAlertRule = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alert-rules/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listAlerts = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alerts",
...options
});
var updateAlert = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/alerts/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getCurrentProject = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/current",
...options
});
var upsertProject = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/upsert",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var getProject = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/{id}",
...options
});
var updateProject = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/projects/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listI18nProfiles = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles",
...options
});
var createI18nProfile = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listI18nKeys = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys",
...options
});
var pushI18nKeys = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var upsertI18nKeys = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteI18nKey = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys/{id}",
...options
});
var updateI18nKey = (options) => (options.client ?? client).put({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/keys/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listI18nDrafts = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts",
...options
});
var createI18nDraft = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteI18nDraft = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}",
...options
});
var updateI18nDraft = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteI18nProfile = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles/{profileId}",
...options
});
var listI18nDraftKeys = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}/keys",
...options
});
var upsertI18nDraftKey = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/drafts/{draftId}/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var publishI18nProfile = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/profiles/{profileId}/publish",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var setI18nLabel = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/i18n/set",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listErrors = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors",
...options
});
var getError = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}",
...options
});
var updateErrorStatus = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var fileErrorTicket = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}/file",
...options
});
var resolveError = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}/resolve",
...options
});
var getErrorSeries = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/errors/{id}/series",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listConnectors = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors",
...options
});
var createConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var deleteConnector = (options) => (options.client ?? client).delete({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}",
...options
});
var getConnector = (options) => (options.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}",
...options
});
var updateConnector = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var fireConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}/fire",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var testConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}/test",
...options
});
var updateTriggerConnector = (options) => (options.client ?? client).patch({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/{id}/trigger",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var createTriggerConnector = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/connectors/trigger",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var listKeys = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/keys",
...options
});
var createKey = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/keys",
...options,
headers: {
"Content-Type": "application/json",
...options.headers
}
});
var revokeKey = (options) => (options.client ?? client).post({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/keys/{id}/revoke",
...options
});
var searchResources = (options) => (options?.client ?? client).get({
security: [{ scheme: "bearer", type: "http" }],
url: "/api/admin/search",
...options
});
// src/client.ts
function configure({ apiKey, projectId, baseUrl }) {
client.setConfig({
...baseUrl ? { baseUrl } : {},
auth: () => apiKey,
headers: projectId ? { "X-Project-Id": projectId } : {}
});
}
export {
createConfig,
createClient,
client,
listGates,
createGate,
deleteGate,
getGate,
updateGate,
enableGate,
disableGate,
listGateActivity,
listExperiments,
createExperiment,
deleteExperiment,
getExperiment,
updateExperiment,
setExperimentStatus,
setExperimentMetrics,
getExperimentResults,
getExperimentTimeseries,
reanalyzeExperiment,
createExperimentReadout,
getExperimentReadout,
listConfigs,
createConfig2,
deleteConfig,
getConfig,
updateConfig,
discardConfigDraft,
saveConfigDraft,
publishConfigDraft,
listConfigActivity,
updateConfigSchema,
listConfigVersions,
listKillswitches,
createKillswitch,
deleteKillswitch,
getKillswitch,
updateKillswitch,
unsetKillswitchSwitch,
setKillswitchSwitch,
setKillswitchValue,
listUniverses,
createUniverse,
deleteUniverse,
updateUniverse,
listGateTemplates,
createGateTemplate,
deleteGateTemplate,
getGateTemplate,
updateGateTemplate,
listAttributes,
createAttribute,
deleteAttribute,
getAttribute,
updateAttribute,
listMetrics,
createMetric,
deleteMetric,
getMetric,
updateMetric,
listMetricExperiments,
unarchiveMetric,
getMetricSeries,
listEvents,
createEvent,
deleteEvent,
getEvent,
updateEvent,
approveEvent,
listOpsItems,
createOpsItem,
deleteOpsItem,
getOpsItem,
updateOpsItem,
linkPrToOpsItem,
ackOpsItem,
listOpsInvestigations,
createOpsInvestigation,
updateOpsInvestigation,
listOpsAgents,
listOpsComments,
createOpsComment,
notifyOps,
listSlackChannels,
listAlertRules,
createAlertRule,
deleteAlertRule,
updateAlertRule,
listAlerts,
updateAlert,
getCurrentProject,
upsertProject,
getProject,
updateProject,
listI18nProfiles,
createI18nProfile,
listI18nKeys,
pushI18nKeys,
upsertI18nKeys,
deleteI18nKey,
updateI18nKey,
listI18nDrafts,
createI18nDraft,
deleteI18nDraft,
updateI18nDraft,
deleteI18nProfile,
listI18nDraftKeys,
upsertI18nDraftKey,
publishI18nProfile,
setI18nLabel,
listErrors,
getError,
updateErrorStatus,
fileErrorTicket,
resolveError,
getErrorSeries,
listConnectors,
createConnector,
deleteConnector,
getConnector,
updateConnector,
fireConnector,
testConnector,
updateTriggerConnector,
createTriggerConnector,
listKeys,
createKey,
revokeKey,
searchResources,
configure
};
//# sourceMappingURL=chunk-V4ZESAIF.js.map

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display