@simmit/sdk 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1700 -1467
- package/dist/index.d.ts +1700 -1467
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -46,615 +46,818 @@ interface paths {
|
|
|
46
46
|
* List your recent SimC jobs
|
|
47
47
|
* @description Returns your recent SimC jobs, newest first. Older jobs fall outside the retention window and are not returned.
|
|
48
48
|
*/
|
|
49
|
-
get:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
get: operations["listJobs"];
|
|
50
|
+
put?: never;
|
|
51
|
+
/**
|
|
52
|
+
* Submit a new SimC sim
|
|
53
|
+
* @description Submits a new SimC sim to the queue. Returns immediately with a job ID; the sim runs asynchronously. Use the ID to poll status, fetch the final result, and download any artifacts.
|
|
54
|
+
*
|
|
55
|
+
* Credits are reserved against your balance at submission based on the job's maximum possible cost (`maxRuntimeSeconds` × vCPU) and reconciled against actual usage on completion. See "Credits → Reservation" in the documentation for details.
|
|
56
|
+
*/
|
|
57
|
+
post: operations["createJob"];
|
|
58
|
+
delete?: never;
|
|
59
|
+
options?: never;
|
|
60
|
+
head?: never;
|
|
61
|
+
patch?: never;
|
|
62
|
+
trace?: never;
|
|
63
|
+
};
|
|
64
|
+
"/v1/simc/builds": {
|
|
65
|
+
parameters: {
|
|
66
|
+
query?: never;
|
|
67
|
+
header?: never;
|
|
68
|
+
path?: never;
|
|
69
|
+
cookie?: never;
|
|
70
|
+
};
|
|
71
|
+
/** List available SimC builds */
|
|
72
|
+
get: operations["listBuilds"];
|
|
73
|
+
put?: never;
|
|
74
|
+
post?: never;
|
|
75
|
+
delete?: never;
|
|
76
|
+
options?: never;
|
|
77
|
+
head?: never;
|
|
78
|
+
patch?: never;
|
|
79
|
+
trace?: never;
|
|
80
|
+
};
|
|
81
|
+
"/v1/simc/builds/{id}": {
|
|
82
|
+
parameters: {
|
|
83
|
+
query?: never;
|
|
84
|
+
header?: never;
|
|
85
|
+
path?: never;
|
|
86
|
+
cookie?: never;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Get a SimC build
|
|
90
|
+
* @description Returns a SimC build by ID, including older builds no longer current on any channel. `GET /v1/simc/builds` lists only the current build per channel. Returns `404` once the build has been removed from retention.
|
|
91
|
+
*/
|
|
92
|
+
get: operations["getBuild"];
|
|
93
|
+
put?: never;
|
|
94
|
+
post?: never;
|
|
95
|
+
delete?: never;
|
|
96
|
+
options?: never;
|
|
97
|
+
head?: never;
|
|
98
|
+
patch?: never;
|
|
99
|
+
trace?: never;
|
|
100
|
+
};
|
|
101
|
+
"/v1/simc/jobs/{id}": {
|
|
102
|
+
parameters: {
|
|
103
|
+
query?: never;
|
|
104
|
+
header?: never;
|
|
105
|
+
path?: never;
|
|
106
|
+
cookie?: never;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Get a SimC job record
|
|
110
|
+
* @description Returns the full record for a SimC job, including timestamps, runtime details, metadata, and build info. For lightweight polling while a sim runs, use `GET /v1/simc/jobs/{id}/status` instead.
|
|
111
|
+
*/
|
|
112
|
+
get: operations["getJob"];
|
|
113
|
+
put?: never;
|
|
114
|
+
post?: never;
|
|
115
|
+
delete?: never;
|
|
116
|
+
options?: never;
|
|
117
|
+
head?: never;
|
|
118
|
+
patch?: never;
|
|
119
|
+
trace?: never;
|
|
120
|
+
};
|
|
121
|
+
"/v1/simc/jobs/{id}/result": {
|
|
122
|
+
parameters: {
|
|
123
|
+
query?: never;
|
|
124
|
+
header?: never;
|
|
125
|
+
path?: never;
|
|
126
|
+
cookie?: never;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Get a SimC job result
|
|
130
|
+
* @description Returns the full result payload for a finished SimC job — summary metrics, runtime info, and artifact references. Available once the job reaches a terminal status (`completed`, `failed`, `cancelled`, or `timed_out`).
|
|
131
|
+
*/
|
|
132
|
+
get: operations["getJobResult"];
|
|
133
|
+
put?: never;
|
|
134
|
+
post?: never;
|
|
135
|
+
delete?: never;
|
|
136
|
+
options?: never;
|
|
137
|
+
head?: never;
|
|
138
|
+
patch?: never;
|
|
139
|
+
trace?: never;
|
|
140
|
+
};
|
|
141
|
+
"/v1/simc/jobs/{id}/status": {
|
|
142
|
+
parameters: {
|
|
143
|
+
query?: never;
|
|
144
|
+
header?: never;
|
|
145
|
+
path?: never;
|
|
146
|
+
cookie?: never;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Poll a SimC job status
|
|
150
|
+
* @description Returns the current status, queue position, and progress for a SimC job. Designed for polling while a sim runs. Use `include` to add optional fields like `logEntries`.
|
|
151
|
+
*/
|
|
152
|
+
get: operations["getJobStatus"];
|
|
153
|
+
put?: never;
|
|
154
|
+
post?: never;
|
|
155
|
+
delete?: never;
|
|
156
|
+
options?: never;
|
|
157
|
+
head?: never;
|
|
158
|
+
patch?: never;
|
|
159
|
+
trace?: never;
|
|
160
|
+
};
|
|
161
|
+
"/v1/simc/artifacts/{id}/url": {
|
|
162
|
+
parameters: {
|
|
163
|
+
query?: never;
|
|
164
|
+
header?: never;
|
|
165
|
+
path?: never;
|
|
166
|
+
cookie?: never;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Get a SimC artifact URL
|
|
170
|
+
* @description Returns a stable public URL for a SimC job artifact (HTML report, JSON report, raw log, etc.), valid for the artifact's full retention window. Use this when you need to control the final fetch URL yourself — for example, browser flows that need explicit cross-origin handling.
|
|
171
|
+
*/
|
|
172
|
+
get: operations["getArtifactUrl"];
|
|
173
|
+
put?: never;
|
|
174
|
+
post?: never;
|
|
175
|
+
delete?: never;
|
|
176
|
+
options?: never;
|
|
177
|
+
head?: never;
|
|
178
|
+
patch?: never;
|
|
179
|
+
trace?: never;
|
|
180
|
+
};
|
|
181
|
+
"/v1/simc/jobs/{id}/cancel": {
|
|
182
|
+
parameters: {
|
|
183
|
+
query?: never;
|
|
184
|
+
header?: never;
|
|
185
|
+
path?: never;
|
|
186
|
+
cookie?: never;
|
|
187
|
+
};
|
|
188
|
+
get?: never;
|
|
189
|
+
put?: never;
|
|
190
|
+
/**
|
|
191
|
+
* Cancel a SimC job
|
|
192
|
+
* @description Cancels one of your SimC jobs. Jobs that have not started running end immediately. Jobs already in flight are signaled to stop; poll `GET /v1/simc/jobs/{id}/status` to observe the transition to `cancelled`. Repeat calls return the same response.
|
|
193
|
+
*/
|
|
194
|
+
post: operations["cancelJob"];
|
|
195
|
+
delete?: never;
|
|
196
|
+
options?: never;
|
|
197
|
+
head?: never;
|
|
198
|
+
patch?: never;
|
|
199
|
+
trace?: never;
|
|
200
|
+
};
|
|
201
|
+
"/v1/simc/usage": {
|
|
202
|
+
parameters: {
|
|
203
|
+
query?: never;
|
|
204
|
+
header?: never;
|
|
205
|
+
path?: never;
|
|
206
|
+
cookie?: never;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Get your usage summary
|
|
210
|
+
* @description Returns your usage for the current period along with a live snapshot of queued and in-flight jobs. For your credit balance, see `GET /v1/simc/credits`.
|
|
211
|
+
*/
|
|
212
|
+
get: operations["getUsage"];
|
|
213
|
+
put?: never;
|
|
214
|
+
post?: never;
|
|
215
|
+
delete?: never;
|
|
216
|
+
options?: never;
|
|
217
|
+
head?: never;
|
|
218
|
+
patch?: never;
|
|
219
|
+
trace?: never;
|
|
220
|
+
};
|
|
221
|
+
"/v1/simc/credits": {
|
|
222
|
+
parameters: {
|
|
223
|
+
query?: never;
|
|
224
|
+
header?: never;
|
|
225
|
+
path?: never;
|
|
226
|
+
cookie?: never;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Get your credit balance and active grants
|
|
230
|
+
* @description Returns your credit balance, split between purchased credits and any active grants. Total available credits equal `purchased + sum(grants[].remaining)`. `reserved` reports credits currently held against in-flight jobs and is already excluded from both `purchased` and `grants[].remaining`.
|
|
231
|
+
*
|
|
232
|
+
* Consumption order: grants are spent before purchased credits, with the earliest-expiring grant spent first. Grants without an expiry are spent last.
|
|
233
|
+
*
|
|
234
|
+
* For transaction history and lifetime totals, see the dashboard.
|
|
235
|
+
*/
|
|
236
|
+
get: operations["getCredits"];
|
|
237
|
+
put?: never;
|
|
238
|
+
post?: never;
|
|
239
|
+
delete?: never;
|
|
240
|
+
options?: never;
|
|
241
|
+
head?: never;
|
|
242
|
+
patch?: never;
|
|
243
|
+
trace?: never;
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
interface components {
|
|
247
|
+
schemas: {
|
|
248
|
+
WebhookEvent: {
|
|
249
|
+
/**
|
|
250
|
+
* @description Event type.
|
|
251
|
+
* @enum {string}
|
|
252
|
+
*/
|
|
253
|
+
kind: "job.terminal";
|
|
254
|
+
/**
|
|
255
|
+
* @description Payload schema version.
|
|
256
|
+
* @enum {string}
|
|
257
|
+
*/
|
|
258
|
+
version: "v1";
|
|
259
|
+
/**
|
|
260
|
+
* Format: date-time
|
|
261
|
+
* @description ISO 8601 timestamp of when the event was created.
|
|
262
|
+
* @example 2026-03-25T12:00:00.000Z
|
|
263
|
+
*/
|
|
264
|
+
timestamp: string;
|
|
265
|
+
payload: {
|
|
266
|
+
/**
|
|
267
|
+
* @description The job ID.
|
|
268
|
+
* @example 519253542012420096
|
|
269
|
+
*/
|
|
270
|
+
id: string;
|
|
271
|
+
/**
|
|
272
|
+
* @description Terminal job status.
|
|
273
|
+
* @enum {string}
|
|
274
|
+
*/
|
|
275
|
+
status: "completed" | "failed" | "cancelled" | "timed_out";
|
|
276
|
+
/** @description Human-readable reason string, or null. */
|
|
277
|
+
statusReason: string | null;
|
|
60
278
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
279
|
+
};
|
|
280
|
+
JobLinks: {
|
|
281
|
+
/**
|
|
282
|
+
* Format: uri
|
|
283
|
+
* @description URL to a hosted page for this job. Shows a state-aware page (queued, running, failed) while the job is pre-terminal and the full HTML summary once it completes. The page does not auto-refresh today; reload to see the latest state. Returns `404` after retention expires.
|
|
284
|
+
*/
|
|
285
|
+
share: string;
|
|
286
|
+
/**
|
|
287
|
+
* Format: uri
|
|
288
|
+
* @description URL to the manifest JSON for the latest attempt. Only present once the job reaches a terminal status. Returns `404` after retention expires. May change between responses if the job is retried.
|
|
289
|
+
*/
|
|
290
|
+
manifest?: string;
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
responses: never;
|
|
294
|
+
parameters: never;
|
|
295
|
+
requestBodies: never;
|
|
296
|
+
headers: never;
|
|
297
|
+
pathItems: never;
|
|
298
|
+
}
|
|
299
|
+
interface operations {
|
|
300
|
+
listJobs: {
|
|
301
|
+
parameters: {
|
|
302
|
+
query?: {
|
|
303
|
+
/** @description Maximum number of jobs to return. Defaults to 25, max 100. */
|
|
304
|
+
limit?: number;
|
|
305
|
+
/** @description Opaque pagination cursor from a previous list response (`page.nextCursor`). */
|
|
306
|
+
cursor?: string;
|
|
307
|
+
};
|
|
308
|
+
header?: never;
|
|
309
|
+
path?: never;
|
|
310
|
+
cookie?: never;
|
|
311
|
+
};
|
|
312
|
+
requestBody?: never;
|
|
313
|
+
responses: {
|
|
314
|
+
/** @description Your recent SimC jobs, newest first. */
|
|
315
|
+
200: {
|
|
316
|
+
headers: {
|
|
317
|
+
/** @description Your in-flight job count at the time of this response. */
|
|
318
|
+
"X-Active-Jobs": string;
|
|
319
|
+
/** @description Your account ceiling for in-flight jobs. */
|
|
320
|
+
"X-Max-Active-Jobs": string;
|
|
321
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
322
|
+
"X-Request-Id": string;
|
|
323
|
+
[name: string]: unknown;
|
|
104
324
|
};
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
325
|
+
content: {
|
|
326
|
+
"application/json": {
|
|
327
|
+
jobs: {
|
|
328
|
+
id: string;
|
|
329
|
+
/** @enum {string} */
|
|
330
|
+
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
331
|
+
/** Format: date-time */
|
|
332
|
+
createdAt: string | null;
|
|
333
|
+
/** Format: date-time */
|
|
334
|
+
completedAt: string | null;
|
|
335
|
+
/** @enum {string|null} */
|
|
336
|
+
errorCode: "execution_interrupted" | "execution_timeout" | "execution_failed" | "build_unavailable" | "simulation_error" | "queue_timeout" | "input_invalid" | "insufficient_credits" | "user_cancelled" | "internal" | null;
|
|
337
|
+
/** @description Opaque metadata echoed back exactly as submitted. Not used for scheduling or sim execution. */
|
|
338
|
+
metadata: {
|
|
339
|
+
[key: string]: unknown;
|
|
118
340
|
} | null;
|
|
341
|
+
/** @description Build identifier. Use `GET /v1/simc/builds/{id}` for the full build record. */
|
|
342
|
+
buildId: string | null;
|
|
343
|
+
links: components["schemas"]["JobLinks"];
|
|
344
|
+
}[];
|
|
345
|
+
page: {
|
|
346
|
+
limit: number;
|
|
347
|
+
hasMore: boolean;
|
|
348
|
+
nextCursor: string | null;
|
|
349
|
+
/**
|
|
350
|
+
* Format: date-time
|
|
351
|
+
* @description Earliest timestamp included in this response. Jobs before this time are not returned.
|
|
352
|
+
*/
|
|
353
|
+
since: string;
|
|
119
354
|
};
|
|
120
355
|
};
|
|
121
356
|
};
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
357
|
+
};
|
|
358
|
+
/** @description Invalid cursor or query parameter. */
|
|
359
|
+
400: {
|
|
360
|
+
headers: {
|
|
361
|
+
[name: string]: unknown;
|
|
362
|
+
};
|
|
363
|
+
content: {
|
|
364
|
+
"application/json": {
|
|
365
|
+
error: string;
|
|
366
|
+
code: string;
|
|
367
|
+
meta: {
|
|
368
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
369
|
+
[key: string]: string | number | boolean | null;
|
|
370
|
+
}[] | null;
|
|
371
|
+
} | null;
|
|
372
|
+
/**
|
|
373
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
374
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
375
|
+
*/
|
|
376
|
+
requestId?: string;
|
|
126
377
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
378
|
+
};
|
|
379
|
+
};
|
|
380
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
381
|
+
401: {
|
|
382
|
+
headers: {
|
|
383
|
+
[name: string]: unknown;
|
|
384
|
+
};
|
|
385
|
+
content: {
|
|
386
|
+
"application/json": {
|
|
387
|
+
error: string;
|
|
388
|
+
/** @enum {string} */
|
|
389
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
390
|
+
meta: {
|
|
391
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
392
|
+
[key: string]: string | number | boolean | null;
|
|
393
|
+
}[] | null;
|
|
394
|
+
} | null;
|
|
395
|
+
/**
|
|
396
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
397
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
398
|
+
*/
|
|
399
|
+
requestId?: string;
|
|
138
400
|
};
|
|
139
401
|
};
|
|
140
402
|
};
|
|
141
403
|
};
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
post: {
|
|
150
|
-
parameters: {
|
|
151
|
-
query?: never;
|
|
152
|
-
header?: {
|
|
153
|
-
/** @description Optional client-supplied key (≤255 printable-ASCII chars) for safe retries. Reusing the same key with the same payload returns the original job; reusing with a different payload returns 409. */
|
|
154
|
-
"idempotency-key"?: string;
|
|
155
|
-
};
|
|
156
|
-
path?: never;
|
|
157
|
-
cookie?: never;
|
|
404
|
+
};
|
|
405
|
+
createJob: {
|
|
406
|
+
parameters: {
|
|
407
|
+
query?: never;
|
|
408
|
+
header?: {
|
|
409
|
+
/** @description Optional client-supplied key (≤255 printable-ASCII chars) for safe retries. Reusing the same key with the same payload returns the original job; reusing it with a different payload returns 409. `metadata` is excluded from the payload comparison, so you can change it across retries. Keys are scoped to your API key and this endpoint, and do not expire. */
|
|
410
|
+
"idempotency-key"?: string;
|
|
158
411
|
};
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
412
|
+
path?: never;
|
|
413
|
+
cookie?: never;
|
|
414
|
+
};
|
|
415
|
+
requestBody?: {
|
|
416
|
+
content: {
|
|
417
|
+
"application/json": {
|
|
418
|
+
build: {
|
|
419
|
+
/**
|
|
420
|
+
* @description SimC build channel to run.
|
|
421
|
+
* @enum {string}
|
|
422
|
+
*/
|
|
423
|
+
channel: "nightly" | "weekly" | "latest";
|
|
424
|
+
/**
|
|
425
|
+
* @description Optional SimC git branch to override the channel's default.
|
|
426
|
+
* @enum {string}
|
|
427
|
+
*/
|
|
428
|
+
gitBranch?: "midnight";
|
|
429
|
+
};
|
|
430
|
+
profile: {
|
|
431
|
+
/** @description SimC profile text to execute (the content you would normally paste into a local simc run). Maximum 2 MB (UTF-8 encoded). */
|
|
432
|
+
text: string;
|
|
433
|
+
};
|
|
434
|
+
/**
|
|
435
|
+
* @description Execution options for this job. Multistage execution is skipped if your input contains unsupported patterns or directives.
|
|
436
|
+
* @example {
|
|
437
|
+
* "multiStage": true,
|
|
438
|
+
* "maxRuntimeSeconds": 5400
|
|
439
|
+
* }
|
|
440
|
+
*/
|
|
441
|
+
runtime?: {
|
|
442
|
+
/** @description Opt-in to multistage execution with automatic culling between stages. When false or omitted, the sim runs in a single pass. */
|
|
443
|
+
multiStage?: boolean;
|
|
444
|
+
/** @description Maximum runtime for this job in seconds. Defaults to 300 seconds when omitted. Jobs that exceed this runtime time out mid-run and are billed for what ran. Determines credit reservation. The ceiling applied is returned in the response as `runtime.ceiling.runtimeSeconds`. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
445
|
+
maxRuntimeSeconds?: number;
|
|
446
|
+
/** @description Maximum time this job may wait in the queue before being auto-cancelled, in seconds. Defaults to 1800 seconds when omitted. The ceiling applied is returned in the response as `runtime.ceiling.queueSeconds`. */
|
|
447
|
+
maxQueueSeconds?: number;
|
|
448
|
+
};
|
|
449
|
+
/**
|
|
450
|
+
* @description Queue priority for this job. Allowed values: `standard`, `high`. Higher priority runs first; same-priority jobs run in submission order.
|
|
451
|
+
* @default standard
|
|
452
|
+
* @enum {string}
|
|
453
|
+
*/
|
|
454
|
+
priority?: "background" | "standard" | "high";
|
|
455
|
+
/**
|
|
456
|
+
* @description Opaque metadata echoed back unchanged for your own correlation or labels (for example `profileSource`, `characterRef`). Not used for scheduling or sim execution.
|
|
457
|
+
* @example {
|
|
458
|
+
* "requestId": "req_12345",
|
|
459
|
+
* "profileSource": "addon-export",
|
|
460
|
+
* "characterRef": "us-illidan-niike"
|
|
461
|
+
* }
|
|
462
|
+
*/
|
|
463
|
+
metadata?: {
|
|
464
|
+
[key: string]: string;
|
|
465
|
+
};
|
|
466
|
+
/** @description Optional per-job credentials. These values are used only for this job and are never persisted. */
|
|
467
|
+
credentials?: {
|
|
468
|
+
/** @description Battle.net API client ID. Must be provided together with `bnetClientSecret`. Used only for this job to allow SimC armory/guild imports; never persisted with your job data. */
|
|
469
|
+
bnetClientId?: string;
|
|
470
|
+
/** @description Battle.net API client secret. Must be provided together with `bnetClientId`. Used only for this job to allow SimC armory/guild imports; never persisted with your job data. */
|
|
471
|
+
bnetClientSecret?: string;
|
|
472
|
+
};
|
|
473
|
+
/** @description Optional webhook subscription settings for this job. Delivery URL and signing secret come from your webhook configuration. */
|
|
474
|
+
webhook?: {
|
|
475
|
+
/**
|
|
476
|
+
* @description Webhook event types to subscribe to for this job.
|
|
477
|
+
* @example [
|
|
478
|
+
* "job.terminal"
|
|
479
|
+
* ]
|
|
480
|
+
*/
|
|
481
|
+
events: "job.terminal"[];
|
|
482
|
+
};
|
|
483
|
+
/**
|
|
484
|
+
* @description Controls which output formats are produced. Omit for the default (JSON v2 only, no HTML). Logs and input artifacts are always produced regardless. For multistage runs, HTML is generated only for the final stage.
|
|
485
|
+
* @example {
|
|
486
|
+
* "html": true,
|
|
487
|
+
* "json": {
|
|
488
|
+
* "version": "2"
|
|
489
|
+
* }
|
|
490
|
+
* }
|
|
491
|
+
*/
|
|
492
|
+
artifacts?: {
|
|
493
|
+
/** @description Whether to generate an HTML report. Defaults to `false`. */
|
|
494
|
+
html?: boolean;
|
|
495
|
+
/** @description JSON report options. A JSON report is always generated; use this to select the schema version. */
|
|
496
|
+
json?: {
|
|
163
497
|
/**
|
|
164
|
-
* @description
|
|
498
|
+
* @description JSON report schema version. `2` = stable v2.0.0, `3` = v3.0.0-alpha1 (experimental). Defaults to `2`.
|
|
165
499
|
* @enum {string}
|
|
166
500
|
*/
|
|
167
|
-
|
|
501
|
+
version?: "2" | "3";
|
|
502
|
+
};
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
};
|
|
506
|
+
};
|
|
507
|
+
responses: {
|
|
508
|
+
/** @description Sim accepted and queued. The returned job ID is your handle for polling, fetching the result, and downloading artifacts. */
|
|
509
|
+
200: {
|
|
510
|
+
headers: {
|
|
511
|
+
/** @description Your in-flight job count at the time of this response. */
|
|
512
|
+
"X-Active-Jobs": string;
|
|
513
|
+
/** @description Your account ceiling for in-flight jobs. */
|
|
514
|
+
"X-Max-Active-Jobs": string;
|
|
515
|
+
/** @description Your account ceiling for job submissions per minute. */
|
|
516
|
+
"X-RateLimit-Limit": string;
|
|
517
|
+
/** @description Submissions you can still make in the current minute. */
|
|
518
|
+
"X-RateLimit-Remaining": string;
|
|
519
|
+
/** @description Unix epoch seconds when your remaining submissions refill. */
|
|
520
|
+
"X-RateLimit-Reset": string;
|
|
521
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
522
|
+
"X-Request-Id": string;
|
|
523
|
+
/** @description Present and equal to `true` only when the response is a replay of an earlier submission with the same `idempotency-key`. Absent on fresh submissions, including the first request that consumed the key. */
|
|
524
|
+
"X-Idempotent-Replay"?: "true";
|
|
525
|
+
[name: string]: unknown;
|
|
526
|
+
};
|
|
527
|
+
content: {
|
|
528
|
+
"application/json": {
|
|
529
|
+
success: boolean;
|
|
530
|
+
id: string;
|
|
531
|
+
runtime: {
|
|
532
|
+
ceiling: {
|
|
533
|
+
/** @description The runtime ceiling that applied to this run, in seconds. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
534
|
+
runtimeSeconds: number | null;
|
|
535
|
+
/** @description The queue timeout ceiling that applied to this run, in seconds. Jobs that wait in the queue longer than this are auto-cancelled with `errorCode` `queue_timeout`. View the maximum at `GET /v1/simc/usage` under `limits.maxQueueSeconds`. */
|
|
536
|
+
queueSeconds: number | null;
|
|
537
|
+
};
|
|
538
|
+
};
|
|
539
|
+
links: components["schemas"]["JobLinks"];
|
|
540
|
+
/** @description Warnings about your input. Omitted when there are none. Covers `iterations=` values above the platform safety cap and `target_error=` values below the platform safety floor. The job still runs at the clamped or floored value. */
|
|
541
|
+
warnings?: {
|
|
168
542
|
/**
|
|
169
|
-
* @description
|
|
543
|
+
* @description Machine-readable warning category. `iterations_clamped` for `iterations=` values above the platform safety cap; `target_error_floored` for `target_error=` values below the platform safety floor.
|
|
170
544
|
* @enum {string}
|
|
171
545
|
*/
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
/** @description
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
546
|
+
kind: "iterations_clamped" | "target_error_floored";
|
|
547
|
+
/** @description 1-indexed line number in your input. */
|
|
548
|
+
line: number;
|
|
549
|
+
/** @description The value as written in your input. */
|
|
550
|
+
requested: number;
|
|
551
|
+
/** @description The clamped or floored value the sim runs with. */
|
|
552
|
+
applied: number;
|
|
553
|
+
/** @description Human-readable explanation paired with `kind`. */
|
|
554
|
+
message: string;
|
|
555
|
+
}[];
|
|
556
|
+
};
|
|
557
|
+
};
|
|
558
|
+
};
|
|
559
|
+
/** @description Your request was missing required input or failed validation. See `error` for the specific issue. */
|
|
560
|
+
400: {
|
|
561
|
+
headers: {
|
|
562
|
+
[name: string]: unknown;
|
|
563
|
+
};
|
|
564
|
+
content: {
|
|
565
|
+
"application/json": {
|
|
566
|
+
error: string;
|
|
567
|
+
code: string;
|
|
568
|
+
meta: {
|
|
569
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
570
|
+
[key: string]: string | number | boolean | null;
|
|
571
|
+
}[] | null;
|
|
572
|
+
} | null;
|
|
193
573
|
/**
|
|
194
|
-
* @description
|
|
195
|
-
* @
|
|
196
|
-
* @enum {string}
|
|
574
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
575
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
197
576
|
*/
|
|
198
|
-
|
|
577
|
+
requestId?: string;
|
|
578
|
+
};
|
|
579
|
+
};
|
|
580
|
+
};
|
|
581
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
582
|
+
401: {
|
|
583
|
+
headers: {
|
|
584
|
+
[name: string]: unknown;
|
|
585
|
+
};
|
|
586
|
+
content: {
|
|
587
|
+
"application/json": {
|
|
588
|
+
error: string;
|
|
589
|
+
/** @enum {string} */
|
|
590
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
591
|
+
meta: {
|
|
592
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
593
|
+
[key: string]: string | number | boolean | null;
|
|
594
|
+
}[] | null;
|
|
595
|
+
} | null;
|
|
199
596
|
/**
|
|
200
|
-
* @description
|
|
201
|
-
* @example
|
|
202
|
-
* "requestId": "req_12345",
|
|
203
|
-
* "profileSource": "addon-export",
|
|
204
|
-
* "characterRef": "us-illidan-niike"
|
|
205
|
-
* }
|
|
597
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
598
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
206
599
|
*/
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
600
|
+
requestId?: string;
|
|
601
|
+
};
|
|
602
|
+
};
|
|
603
|
+
};
|
|
604
|
+
/** @description The request was rejected because your account has insufficient credits or is inactive. See `code` and `meta` for details. For credit shortfalls, `meta.maxAffordableRuntimeSeconds` indicates the largest job your current balance can cover. */
|
|
605
|
+
402: {
|
|
606
|
+
headers: {
|
|
607
|
+
[name: string]: unknown;
|
|
608
|
+
};
|
|
609
|
+
content: {
|
|
610
|
+
"application/json": {
|
|
611
|
+
error: string;
|
|
612
|
+
code: string;
|
|
613
|
+
meta: {
|
|
614
|
+
reason: string;
|
|
615
|
+
ceilingRuntimeSeconds?: number;
|
|
616
|
+
maxAffordableRuntimeSeconds?: number;
|
|
219
617
|
/**
|
|
220
|
-
*
|
|
221
|
-
* @
|
|
222
|
-
* "job.terminal"
|
|
223
|
-
* ]
|
|
618
|
+
* Format: uri
|
|
619
|
+
* @description Link to the relevant credits/billing docs for this rejection.
|
|
224
620
|
*/
|
|
225
|
-
|
|
226
|
-
};
|
|
621
|
+
docsUrl?: string;
|
|
622
|
+
} | null;
|
|
227
623
|
/**
|
|
228
|
-
* @description
|
|
229
|
-
* @example
|
|
230
|
-
* "html": true,
|
|
231
|
-
* "json": {
|
|
232
|
-
* "version": "2"
|
|
233
|
-
* }
|
|
234
|
-
* }
|
|
624
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
625
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
235
626
|
*/
|
|
236
|
-
|
|
237
|
-
/** @description Whether to generate an HTML report. Defaults to `false`. */
|
|
238
|
-
html?: boolean;
|
|
239
|
-
/** @description JSON report options. A JSON report is always generated; use this to select the schema version. */
|
|
240
|
-
json?: {
|
|
241
|
-
/**
|
|
242
|
-
* @description JSON report schema version. `2` = stable v2.0.0, `3` = v3.0.0-alpha1 (experimental). Defaults to `2`.
|
|
243
|
-
* @enum {string}
|
|
244
|
-
*/
|
|
245
|
-
version?: "2" | "3";
|
|
246
|
-
};
|
|
247
|
-
};
|
|
627
|
+
requestId?: string;
|
|
248
628
|
};
|
|
249
629
|
};
|
|
250
630
|
};
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
/** @description Your in-flight job count at the time of this response. */
|
|
256
|
-
"X-Active-Jobs": string;
|
|
257
|
-
/** @description Your account ceiling for in-flight jobs. */
|
|
258
|
-
"X-Max-Active-Jobs": string;
|
|
259
|
-
/** @description Your account ceiling for job submissions per minute. */
|
|
260
|
-
"X-RateLimit-Limit": string;
|
|
261
|
-
/** @description Submissions you can still make in the current minute. */
|
|
262
|
-
"X-RateLimit-Remaining": string;
|
|
263
|
-
/** @description Unix epoch seconds when your remaining submissions refill. */
|
|
264
|
-
"X-RateLimit-Reset": string;
|
|
265
|
-
/** @description Present and equal to `true` only when the response is a replay of an earlier submission with the same `idempotency-key`. Absent on fresh submissions, including the first request that consumed the key. */
|
|
266
|
-
"X-Idempotent-Replay"?: "true";
|
|
267
|
-
[name: string]: unknown;
|
|
268
|
-
};
|
|
269
|
-
content: {
|
|
270
|
-
"application/json": {
|
|
271
|
-
success: boolean;
|
|
272
|
-
id: string;
|
|
273
|
-
runtime: {
|
|
274
|
-
ceiling: {
|
|
275
|
-
/** @description The runtime ceiling that applied to this run, in seconds. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
276
|
-
runtimeSeconds: number | null;
|
|
277
|
-
/** @description The queue timeout ceiling that applied to this run, in seconds. Jobs that wait in the queue longer than this are auto-cancelled with `errorCode` `queue_timeout`. View the maximum at `GET /v1/simc/usage` under `limits.maxQueueSeconds`. */
|
|
278
|
-
queueSeconds: number | null;
|
|
279
|
-
};
|
|
280
|
-
};
|
|
281
|
-
links: components["schemas"]["JobLinks"];
|
|
282
|
-
/** @description Warnings about your input. Omitted when there are none. Covers `iterations=` values above the platform safety cap and `target_error=` values below the platform safety floor. The job still runs at the clamped or floored value. */
|
|
283
|
-
warnings?: {
|
|
284
|
-
/**
|
|
285
|
-
* @description Machine-readable warning category. `iterations_clamped` for `iterations=` values above the platform safety cap; `target_error_floored` for `target_error=` values below the platform safety floor.
|
|
286
|
-
* @enum {string}
|
|
287
|
-
*/
|
|
288
|
-
kind: "iterations_clamped" | "target_error_floored";
|
|
289
|
-
/** @description 1-indexed line number in your input. */
|
|
290
|
-
line: number;
|
|
291
|
-
/** @description The value as written in your input. */
|
|
292
|
-
requested: number;
|
|
293
|
-
/** @description The clamped or floored value the sim runs with. */
|
|
294
|
-
applied: number;
|
|
295
|
-
/** @description Human-readable explanation paired with `kind`. */
|
|
296
|
-
message: string;
|
|
297
|
-
}[];
|
|
298
|
-
};
|
|
299
|
-
};
|
|
300
|
-
};
|
|
301
|
-
/** @description Your request was missing required input or failed validation. See `message` for the specific issue. */
|
|
302
|
-
400: {
|
|
303
|
-
headers: {
|
|
304
|
-
[name: string]: unknown;
|
|
305
|
-
};
|
|
306
|
-
content: {
|
|
307
|
-
"application/json": {
|
|
308
|
-
error: string;
|
|
309
|
-
code: string;
|
|
310
|
-
meta: {
|
|
311
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
312
|
-
[key: string]: string | number | boolean | null;
|
|
313
|
-
}[] | null;
|
|
314
|
-
} | null;
|
|
315
|
-
};
|
|
316
|
-
};
|
|
631
|
+
/** @description The supplied `idempotency-key` was previously used with a different request payload. `meta.originalJobId` is the id of the job that originally consumed the key. */
|
|
632
|
+
409: {
|
|
633
|
+
headers: {
|
|
634
|
+
[name: string]: unknown;
|
|
317
635
|
};
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
"application/json": {
|
|
325
|
-
error: string;
|
|
636
|
+
content: {
|
|
637
|
+
"application/json": {
|
|
638
|
+
error: string;
|
|
639
|
+
/** @enum {string} */
|
|
640
|
+
code: "idempotency_key_reuse";
|
|
641
|
+
meta: {
|
|
326
642
|
/** @enum {string} */
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
} | null;
|
|
643
|
+
reason: "idempotency_key_reuse";
|
|
644
|
+
/** @description ID of the job that originally consumed this idempotency key. */
|
|
645
|
+
originalJobId: string;
|
|
646
|
+
/** Format: uri */
|
|
647
|
+
docsUrl?: string;
|
|
333
648
|
};
|
|
649
|
+
/**
|
|
650
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
651
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
652
|
+
*/
|
|
653
|
+
requestId?: string;
|
|
334
654
|
};
|
|
335
655
|
};
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
content: {
|
|
342
|
-
"application/json": {
|
|
343
|
-
error: string;
|
|
344
|
-
code: string;
|
|
345
|
-
meta: {
|
|
346
|
-
reason: string;
|
|
347
|
-
ceilingRuntimeSeconds?: number;
|
|
348
|
-
maxAffordableRuntimeSeconds?: number;
|
|
349
|
-
/**
|
|
350
|
-
* Format: uri
|
|
351
|
-
* @description Link to the relevant credits/billing docs for this rejection.
|
|
352
|
-
*/
|
|
353
|
-
docsUrl?: string;
|
|
354
|
-
} | null;
|
|
355
|
-
};
|
|
356
|
-
};
|
|
656
|
+
};
|
|
657
|
+
/** @description Your request body exceeds the 3 MB maximum. A profile over 2 MB returns code `profile_too_large` instead. */
|
|
658
|
+
413: {
|
|
659
|
+
headers: {
|
|
660
|
+
[name: string]: unknown;
|
|
357
661
|
};
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
originalJobId: string;
|
|
373
|
-
/** Format: uri */
|
|
374
|
-
docsUrl?: string;
|
|
375
|
-
};
|
|
376
|
-
};
|
|
662
|
+
content: {
|
|
663
|
+
"application/json": {
|
|
664
|
+
error: string;
|
|
665
|
+
code: string;
|
|
666
|
+
meta: {
|
|
667
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
668
|
+
[key: string]: string | number | boolean | null;
|
|
669
|
+
}[] | null;
|
|
670
|
+
} | null;
|
|
671
|
+
/**
|
|
672
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
673
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
674
|
+
*/
|
|
675
|
+
requestId?: string;
|
|
377
676
|
};
|
|
378
677
|
};
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
content: {
|
|
385
|
-
"application/json": {
|
|
386
|
-
error: string;
|
|
387
|
-
code: string;
|
|
388
|
-
meta: {
|
|
389
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
390
|
-
[key: string]: string | number | boolean | null;
|
|
391
|
-
}[] | null;
|
|
392
|
-
} | null;
|
|
393
|
-
};
|
|
394
|
-
};
|
|
678
|
+
};
|
|
679
|
+
/** @description Your SimC profile contains directives Simmit does not allow. `meta.message` explains the rejection and `meta.docsUrl` links to the SimC directives reference. */
|
|
680
|
+
422: {
|
|
681
|
+
headers: {
|
|
682
|
+
[name: string]: unknown;
|
|
395
683
|
};
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
"application/json": {
|
|
403
|
-
error: string;
|
|
684
|
+
content: {
|
|
685
|
+
"application/json": {
|
|
686
|
+
error: string;
|
|
687
|
+
/** @enum {string} */
|
|
688
|
+
code: "input_sanitized_rejected";
|
|
689
|
+
meta: {
|
|
404
690
|
/** @enum {string} */
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
blockedCount: number;
|
|
423
|
-
/** @description `true` when more lines were rejected than included in `blocked`. */
|
|
424
|
-
blockedTruncated: boolean;
|
|
425
|
-
};
|
|
691
|
+
reason: "input_sanitized_rejected";
|
|
692
|
+
/** @description Human-readable explanation of why the input was rejected. */
|
|
693
|
+
message: string;
|
|
694
|
+
/**
|
|
695
|
+
* Format: uri
|
|
696
|
+
* @description Link to the SimC directives reference.
|
|
697
|
+
*/
|
|
698
|
+
docsUrl: string;
|
|
699
|
+
/** @description A sample of rejected lines. The full count may exceed the sample — see `blockedCount` and `blockedTruncated`. */
|
|
700
|
+
blocked: {
|
|
701
|
+
line: number;
|
|
702
|
+
text: string;
|
|
703
|
+
}[];
|
|
704
|
+
/** @description Total number of rejected lines. */
|
|
705
|
+
blockedCount: number;
|
|
706
|
+
/** @description `true` when more lines were rejected than included in `blocked`. */
|
|
707
|
+
blockedTruncated: boolean;
|
|
426
708
|
};
|
|
709
|
+
/**
|
|
710
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
711
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
712
|
+
*/
|
|
713
|
+
requestId?: string;
|
|
427
714
|
};
|
|
428
715
|
};
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
716
|
+
};
|
|
717
|
+
/** @description Your account has exceeded its request rate or in-flight job limit. See `code` and `meta` for the specific cause. `Retry-After` carries the next-attempt time. */
|
|
718
|
+
429: {
|
|
719
|
+
headers: {
|
|
720
|
+
/** @description Seconds to wait before retrying. */
|
|
721
|
+
"Retry-After": string;
|
|
722
|
+
/** @description Your in-flight job count at the time of this response. */
|
|
723
|
+
"X-Active-Jobs"?: string;
|
|
724
|
+
/** @description Your account ceiling for in-flight jobs. */
|
|
725
|
+
"X-Max-Active-Jobs"?: string;
|
|
726
|
+
/** @description Your account ceiling for job submissions per minute. */
|
|
727
|
+
"X-RateLimit-Limit"?: string;
|
|
728
|
+
/** @description Submissions you can still make in the current minute. */
|
|
729
|
+
"X-RateLimit-Remaining"?: string;
|
|
730
|
+
/** @description Unix epoch seconds when your remaining submissions refill. */
|
|
731
|
+
"X-RateLimit-Reset"?: string;
|
|
732
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
733
|
+
"X-Request-Id": string;
|
|
734
|
+
[name: string]: unknown;
|
|
735
|
+
};
|
|
736
|
+
content: {
|
|
737
|
+
"application/json": {
|
|
738
|
+
error: string;
|
|
739
|
+
/** @enum {string} */
|
|
740
|
+
code: "rate_limit_exceeded";
|
|
741
|
+
meta: {
|
|
449
742
|
/** @enum {string} */
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
743
|
+
scope: "developer";
|
|
744
|
+
};
|
|
745
|
+
/**
|
|
746
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
747
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
748
|
+
*/
|
|
749
|
+
requestId?: string;
|
|
750
|
+
} | {
|
|
751
|
+
error: string;
|
|
752
|
+
/** @enum {string} */
|
|
753
|
+
code: "max_active_jobs_exceeded";
|
|
754
|
+
meta: {
|
|
457
755
|
/** @enum {string} */
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
maxActiveJobs: number;
|
|
464
|
-
/** @description Jobs your account had in flight when this request was rejected. */
|
|
465
|
-
activeJobs: number;
|
|
466
|
-
};
|
|
756
|
+
reason: "max_active_jobs_exceeded";
|
|
757
|
+
/** @description Maximum number of jobs your account can have in flight. */
|
|
758
|
+
maxActiveJobs: number;
|
|
759
|
+
/** @description Jobs your account had in flight when this request was rejected. */
|
|
760
|
+
activeJobs: number;
|
|
467
761
|
};
|
|
762
|
+
/**
|
|
763
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
764
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
765
|
+
*/
|
|
766
|
+
requestId?: string;
|
|
468
767
|
};
|
|
469
768
|
};
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
queueHealth: string;
|
|
487
|
-
};
|
|
488
|
-
} | {
|
|
489
|
-
error: string;
|
|
769
|
+
};
|
|
770
|
+
/** @description Your sim was not accepted right now. `code` indicates the cause: `queue_unavailable` when the queue is full or paused, `queue_health_unknown` when queue health cannot be confirmed, `secret_store_unavailable` when per-job credentials supplied with the request could not be stored, or `api_maintenance` during planned maintenance. `Retry-After` carries the next-attempt time. */
|
|
771
|
+
503: {
|
|
772
|
+
headers: {
|
|
773
|
+
/** @description Seconds to wait before retrying. */
|
|
774
|
+
"Retry-After": string;
|
|
775
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
776
|
+
"X-Request-Id": string;
|
|
777
|
+
[name: string]: unknown;
|
|
778
|
+
};
|
|
779
|
+
content: {
|
|
780
|
+
"application/json": {
|
|
781
|
+
error: string;
|
|
782
|
+
/** @enum {string} */
|
|
783
|
+
code: "queue_unavailable";
|
|
784
|
+
meta: {
|
|
490
785
|
/** @enum {string} */
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
786
|
+
reason: "queue_unavailable";
|
|
787
|
+
/** @description Reason the queue is currently rejecting submissions. */
|
|
788
|
+
queueHealth: string;
|
|
789
|
+
};
|
|
790
|
+
/**
|
|
791
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
792
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
793
|
+
*/
|
|
794
|
+
requestId?: string;
|
|
795
|
+
} | {
|
|
796
|
+
error: string;
|
|
797
|
+
/** @enum {string} */
|
|
798
|
+
code: "queue_health_unknown";
|
|
799
|
+
meta: {
|
|
499
800
|
/** @enum {string} */
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
801
|
+
reason: "queue_health_unknown";
|
|
802
|
+
laneId: string;
|
|
803
|
+
};
|
|
804
|
+
/**
|
|
805
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
806
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
807
|
+
*/
|
|
808
|
+
requestId?: string;
|
|
809
|
+
} | {
|
|
810
|
+
error: string;
|
|
811
|
+
/** @enum {string} */
|
|
812
|
+
code: "secret_store_unavailable";
|
|
813
|
+
meta: {
|
|
507
814
|
/** @enum {string} */
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
815
|
+
reason: "secret_store_unavailable";
|
|
816
|
+
};
|
|
817
|
+
/**
|
|
818
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
819
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
820
|
+
*/
|
|
821
|
+
requestId?: string;
|
|
822
|
+
} | {
|
|
823
|
+
error: string;
|
|
824
|
+
/** @enum {string} */
|
|
825
|
+
code: "api_maintenance";
|
|
826
|
+
meta: {
|
|
827
|
+
/** @description Seconds to wait before retrying. */
|
|
828
|
+
retryAfterSeconds: number;
|
|
513
829
|
};
|
|
830
|
+
/**
|
|
831
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
832
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
833
|
+
*/
|
|
834
|
+
requestId?: string;
|
|
514
835
|
};
|
|
515
836
|
};
|
|
516
837
|
};
|
|
517
838
|
};
|
|
518
|
-
delete?: never;
|
|
519
|
-
options?: never;
|
|
520
|
-
head?: never;
|
|
521
|
-
patch?: never;
|
|
522
|
-
trace?: never;
|
|
523
839
|
};
|
|
524
|
-
|
|
840
|
+
listBuilds: {
|
|
525
841
|
parameters: {
|
|
526
842
|
query?: never;
|
|
527
843
|
header?: never;
|
|
528
844
|
path?: never;
|
|
529
845
|
cookie?: never;
|
|
530
846
|
};
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
cookie?: never;
|
|
538
|
-
};
|
|
539
|
-
requestBody?: never;
|
|
540
|
-
responses: {
|
|
541
|
-
/** @description Available SimC builds, grouped by channel. */
|
|
542
|
-
200: {
|
|
543
|
-
headers: {
|
|
544
|
-
[name: string]: unknown;
|
|
545
|
-
};
|
|
546
|
-
content: {
|
|
547
|
-
"application/json": {
|
|
548
|
-
/** Format: date-time */
|
|
549
|
-
generatedAt: string;
|
|
550
|
-
builds: {
|
|
551
|
-
/** @enum {string} */
|
|
552
|
-
channel: "nightly" | "weekly" | "latest";
|
|
553
|
-
/** @description Git branch this build was produced from. */
|
|
554
|
-
gitBranch: string;
|
|
555
|
-
/** @description Source repository for this SimC build. */
|
|
556
|
-
repo: string;
|
|
557
|
-
/** @description Git commit hash of the SimC source used for this build. */
|
|
558
|
-
commit: string;
|
|
559
|
-
/**
|
|
560
|
-
* Format: uuid
|
|
561
|
-
* @description Unique identifier for this build.
|
|
562
|
-
*/
|
|
563
|
-
id: string;
|
|
564
|
-
/**
|
|
565
|
-
* Format: date-time
|
|
566
|
-
* @description When this build was created.
|
|
567
|
-
*/
|
|
568
|
-
createdAt: string;
|
|
569
|
-
/** @description Upstream CI status for this commit, with per-check details. Null when CI data is unavailable. */
|
|
570
|
-
ci: {
|
|
571
|
-
/**
|
|
572
|
-
* @description Computed from gate checks: pass = all gated checks green, partial = gate checks green but other failures exist, fail = gate checks failed (fallback build), unknown = CI data unavailable.
|
|
573
|
-
* @enum {string}
|
|
574
|
-
*/
|
|
575
|
-
status: "pass" | "partial" | "fail" | "unknown";
|
|
576
|
-
checks: {
|
|
577
|
-
total: number;
|
|
578
|
-
passed: number;
|
|
579
|
-
failed: number;
|
|
580
|
-
};
|
|
581
|
-
/** @description Names of check runs with non-success conclusions (failure, cancelled, timed_out, action_required). Full GitHub job names as-is. */
|
|
582
|
-
failures: string[];
|
|
583
|
-
/** @description Glob patterns describing which checks were used as the build gate. */
|
|
584
|
-
gatedOn: string[];
|
|
585
|
-
/**
|
|
586
|
-
* Format: date-time
|
|
587
|
-
* @description When CI state was fetched from GitHub.
|
|
588
|
-
*/
|
|
589
|
-
retrievedAt: string;
|
|
590
|
-
} | null;
|
|
591
|
-
/** @description Bundled profiles available for this build. See https://dashboard.simmit.com/docs/api/bundled-profiles for more. */
|
|
592
|
-
profiles: {
|
|
593
|
-
/** @description Profile filenames this build accepts in submitted profile text (e.g. `MID1_Mage_Arcane.simc`). Each file is verified at build time to parse and sim cleanly for one iteration. Reference one in your profile text on its own line or as `input=<filename>`. Sorted lexicographically. */
|
|
594
|
-
manifest: string[];
|
|
595
|
-
} | null;
|
|
596
|
-
}[];
|
|
597
|
-
};
|
|
598
|
-
};
|
|
847
|
+
requestBody?: never;
|
|
848
|
+
responses: {
|
|
849
|
+
/** @description Available SimC builds, grouped by channel. */
|
|
850
|
+
200: {
|
|
851
|
+
headers: {
|
|
852
|
+
[name: string]: unknown;
|
|
599
853
|
};
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
content: {
|
|
606
|
-
"application/json": {
|
|
607
|
-
error: string;
|
|
854
|
+
content: {
|
|
855
|
+
"application/json": {
|
|
856
|
+
/** Format: date-time */
|
|
857
|
+
generatedAt: string;
|
|
858
|
+
builds: {
|
|
608
859
|
/** @enum {string} */
|
|
609
|
-
|
|
610
|
-
meta: {
|
|
611
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
612
|
-
[key: string]: string | number | boolean | null;
|
|
613
|
-
}[] | null;
|
|
614
|
-
} | null;
|
|
615
|
-
};
|
|
616
|
-
};
|
|
617
|
-
};
|
|
618
|
-
};
|
|
619
|
-
};
|
|
620
|
-
put?: never;
|
|
621
|
-
post?: never;
|
|
622
|
-
delete?: never;
|
|
623
|
-
options?: never;
|
|
624
|
-
head?: never;
|
|
625
|
-
patch?: never;
|
|
626
|
-
trace?: never;
|
|
627
|
-
};
|
|
628
|
-
"/v1/simc/builds/{id}": {
|
|
629
|
-
parameters: {
|
|
630
|
-
query?: never;
|
|
631
|
-
header?: never;
|
|
632
|
-
path?: never;
|
|
633
|
-
cookie?: never;
|
|
634
|
-
};
|
|
635
|
-
/**
|
|
636
|
-
* Get a SimC build
|
|
637
|
-
* @description Returns a SimC build by ID, including older builds no longer current on any channel. `GET /v1/simc/builds` lists only the current build per channel. Returns `404` once the build has been removed from retention.
|
|
638
|
-
*/
|
|
639
|
-
get: {
|
|
640
|
-
parameters: {
|
|
641
|
-
query?: never;
|
|
642
|
-
header?: never;
|
|
643
|
-
path: {
|
|
644
|
-
/** @description Build ID, as returned in `build.id` on any job response. */
|
|
645
|
-
id: string;
|
|
646
|
-
};
|
|
647
|
-
cookie?: never;
|
|
648
|
-
};
|
|
649
|
-
requestBody?: never;
|
|
650
|
-
responses: {
|
|
651
|
-
/** @description Full SimC build details. */
|
|
652
|
-
200: {
|
|
653
|
-
headers: {
|
|
654
|
-
[name: string]: unknown;
|
|
655
|
-
};
|
|
656
|
-
content: {
|
|
657
|
-
"application/json": {
|
|
860
|
+
channel: "nightly" | "weekly" | "latest";
|
|
658
861
|
/** @description Git branch this build was produced from. */
|
|
659
862
|
gitBranch: string;
|
|
660
863
|
/** @description Source repository for this SimC build. */
|
|
@@ -698,1064 +901,1093 @@ interface paths {
|
|
|
698
901
|
/** @description Profile filenames this build accepts in submitted profile text (e.g. `MID1_Mage_Arcane.simc`). Each file is verified at build time to parse and sim cleanly for one iteration. Reference one in your profile text on its own line or as `input=<filename>`. Sorted lexicographically. */
|
|
699
902
|
manifest: string[];
|
|
700
903
|
} | null;
|
|
701
|
-
};
|
|
702
|
-
};
|
|
703
|
-
};
|
|
704
|
-
/** @description Invalid build ID format (must be a UUID). */
|
|
705
|
-
400: {
|
|
706
|
-
headers: {
|
|
707
|
-
[name: string]: unknown;
|
|
708
|
-
};
|
|
709
|
-
content: {
|
|
710
|
-
"application/json": {
|
|
711
|
-
error: string;
|
|
712
|
-
code: string;
|
|
713
|
-
meta: {
|
|
714
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
715
|
-
[key: string]: string | number | boolean | null;
|
|
716
|
-
}[] | null;
|
|
717
|
-
} | null;
|
|
718
|
-
};
|
|
904
|
+
}[];
|
|
719
905
|
};
|
|
720
906
|
};
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
content: {
|
|
727
|
-
"application/json": {
|
|
728
|
-
error: string;
|
|
729
|
-
/** @enum {string} */
|
|
730
|
-
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
731
|
-
meta: {
|
|
732
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
733
|
-
[key: string]: string | number | boolean | null;
|
|
734
|
-
}[] | null;
|
|
735
|
-
} | null;
|
|
736
|
-
};
|
|
737
|
-
};
|
|
907
|
+
};
|
|
908
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
909
|
+
401: {
|
|
910
|
+
headers: {
|
|
911
|
+
[name: string]: unknown;
|
|
738
912
|
};
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
913
|
+
content: {
|
|
914
|
+
"application/json": {
|
|
915
|
+
error: string;
|
|
916
|
+
/** @enum {string} */
|
|
917
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
918
|
+
meta: {
|
|
919
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
920
|
+
[key: string]: string | number | boolean | null;
|
|
921
|
+
}[] | null;
|
|
922
|
+
} | null;
|
|
923
|
+
/**
|
|
924
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
925
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
926
|
+
*/
|
|
927
|
+
requestId?: string;
|
|
754
928
|
};
|
|
755
929
|
};
|
|
756
930
|
};
|
|
757
931
|
};
|
|
758
|
-
put?: never;
|
|
759
|
-
post?: never;
|
|
760
|
-
delete?: never;
|
|
761
|
-
options?: never;
|
|
762
|
-
head?: never;
|
|
763
|
-
patch?: never;
|
|
764
|
-
trace?: never;
|
|
765
932
|
};
|
|
766
|
-
|
|
933
|
+
getBuild: {
|
|
767
934
|
parameters: {
|
|
768
935
|
query?: never;
|
|
769
936
|
header?: never;
|
|
770
|
-
path
|
|
937
|
+
path: {
|
|
938
|
+
/** @description Build ID, as returned in `build.id` on any job response. */
|
|
939
|
+
id: string;
|
|
940
|
+
};
|
|
771
941
|
cookie?: never;
|
|
772
942
|
};
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
/**
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
/** @enum {string} */
|
|
801
|
-
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
943
|
+
requestBody?: never;
|
|
944
|
+
responses: {
|
|
945
|
+
/** @description Full SimC build details. */
|
|
946
|
+
200: {
|
|
947
|
+
headers: {
|
|
948
|
+
[name: string]: unknown;
|
|
949
|
+
};
|
|
950
|
+
content: {
|
|
951
|
+
"application/json": {
|
|
952
|
+
/** @description Git branch this build was produced from. */
|
|
953
|
+
gitBranch: string;
|
|
954
|
+
/** @description Source repository for this SimC build. */
|
|
955
|
+
repo: string;
|
|
956
|
+
/** @description Git commit hash of the SimC source used for this build. */
|
|
957
|
+
commit: string;
|
|
958
|
+
/**
|
|
959
|
+
* Format: uuid
|
|
960
|
+
* @description Unique identifier for this build.
|
|
961
|
+
*/
|
|
962
|
+
id: string;
|
|
963
|
+
/**
|
|
964
|
+
* Format: date-time
|
|
965
|
+
* @description When this build was created.
|
|
966
|
+
*/
|
|
967
|
+
createdAt: string;
|
|
968
|
+
/** @description Upstream CI status for this commit, with per-check details. Null when CI data is unavailable. */
|
|
969
|
+
ci: {
|
|
802
970
|
/**
|
|
803
|
-
* @description
|
|
971
|
+
* @description Computed from gate checks: pass = all gated checks green, partial = gate checks green but other failures exist, fail = gate checks failed (fallback build), unknown = CI data unavailable.
|
|
804
972
|
* @enum {string}
|
|
805
973
|
*/
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
974
|
+
status: "pass" | "partial" | "fail" | "unknown";
|
|
975
|
+
checks: {
|
|
976
|
+
total: number;
|
|
977
|
+
passed: number;
|
|
978
|
+
failed: number;
|
|
979
|
+
};
|
|
980
|
+
/** @description Names of check runs with non-success conclusions (failure, cancelled, timed_out, action_required). Full GitHub job names as-is. */
|
|
981
|
+
failures: string[];
|
|
982
|
+
/** @description Glob patterns describing which checks were used as the build gate. */
|
|
983
|
+
gatedOn: string[];
|
|
809
984
|
/**
|
|
810
985
|
* Format: date-time
|
|
811
|
-
* @description When
|
|
986
|
+
* @description When CI state was fetched from GitHub.
|
|
812
987
|
*/
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
988
|
+
retrievedAt: string;
|
|
989
|
+
} | null;
|
|
990
|
+
/** @description Bundled profiles available for this build. See https://dashboard.simmit.com/docs/api/bundled-profiles for more. */
|
|
991
|
+
profiles: {
|
|
992
|
+
/** @description Profile filenames this build accepts in submitted profile text (e.g. `MID1_Mage_Arcane.simc`). Each file is verified at build time to parse and sim cleanly for one iteration. Reference one in your profile text on its own line or as `input=<filename>`. Sorted lexicographically. */
|
|
993
|
+
manifest: string[];
|
|
994
|
+
} | null;
|
|
995
|
+
};
|
|
996
|
+
};
|
|
997
|
+
};
|
|
998
|
+
/** @description Invalid build ID format (must be a UUID). */
|
|
999
|
+
400: {
|
|
1000
|
+
headers: {
|
|
1001
|
+
[name: string]: unknown;
|
|
1002
|
+
};
|
|
1003
|
+
content: {
|
|
1004
|
+
"application/json": {
|
|
1005
|
+
error: string;
|
|
1006
|
+
code: string;
|
|
1007
|
+
meta: {
|
|
1008
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1009
|
+
[key: string]: string | number | boolean | null;
|
|
1010
|
+
}[] | null;
|
|
1011
|
+
} | null;
|
|
1012
|
+
/**
|
|
1013
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1014
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1015
|
+
*/
|
|
1016
|
+
requestId?: string;
|
|
1017
|
+
};
|
|
1018
|
+
};
|
|
1019
|
+
};
|
|
1020
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1021
|
+
401: {
|
|
1022
|
+
headers: {
|
|
1023
|
+
[name: string]: unknown;
|
|
1024
|
+
};
|
|
1025
|
+
content: {
|
|
1026
|
+
"application/json": {
|
|
1027
|
+
error: string;
|
|
1028
|
+
/** @enum {string} */
|
|
1029
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1030
|
+
meta: {
|
|
1031
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1032
|
+
[key: string]: string | number | boolean | null;
|
|
1033
|
+
}[] | null;
|
|
1034
|
+
} | null;
|
|
1035
|
+
/**
|
|
1036
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1037
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1038
|
+
*/
|
|
1039
|
+
requestId?: string;
|
|
1040
|
+
};
|
|
1041
|
+
};
|
|
1042
|
+
};
|
|
1043
|
+
/** @description Build not found */
|
|
1044
|
+
404: {
|
|
1045
|
+
headers: {
|
|
1046
|
+
[name: string]: unknown;
|
|
1047
|
+
};
|
|
1048
|
+
content: {
|
|
1049
|
+
"application/json": {
|
|
1050
|
+
error: string;
|
|
1051
|
+
code: string;
|
|
1052
|
+
meta: {
|
|
1053
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1054
|
+
[key: string]: string | number | boolean | null;
|
|
1055
|
+
}[] | null;
|
|
1056
|
+
} | null;
|
|
1057
|
+
/**
|
|
1058
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1059
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1060
|
+
*/
|
|
1061
|
+
requestId?: string;
|
|
1062
|
+
};
|
|
1063
|
+
};
|
|
1064
|
+
};
|
|
1065
|
+
};
|
|
1066
|
+
};
|
|
1067
|
+
getJob: {
|
|
1068
|
+
parameters: {
|
|
1069
|
+
query?: never;
|
|
1070
|
+
header?: never;
|
|
1071
|
+
path: {
|
|
1072
|
+
id: string;
|
|
1073
|
+
};
|
|
1074
|
+
cookie?: never;
|
|
1075
|
+
};
|
|
1076
|
+
requestBody?: never;
|
|
1077
|
+
responses: {
|
|
1078
|
+
/** @description Full SimC job record. */
|
|
1079
|
+
200: {
|
|
1080
|
+
headers: {
|
|
1081
|
+
/** @description Your in-flight job count at the time of this response. */
|
|
1082
|
+
"X-Active-Jobs": string;
|
|
1083
|
+
/** @description Your account ceiling for in-flight jobs. */
|
|
1084
|
+
"X-Max-Active-Jobs": string;
|
|
1085
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
1086
|
+
"X-Request-Id": string;
|
|
1087
|
+
[name: string]: unknown;
|
|
1088
|
+
};
|
|
1089
|
+
content: {
|
|
1090
|
+
"application/json": {
|
|
1091
|
+
id: string;
|
|
1092
|
+
/** @enum {string} */
|
|
1093
|
+
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
1094
|
+
/**
|
|
1095
|
+
* @description Effective priority the job is running at.
|
|
1096
|
+
* @enum {string}
|
|
1097
|
+
*/
|
|
1098
|
+
priority: "background" | "standard" | "high";
|
|
1099
|
+
/** Format: date-time */
|
|
1100
|
+
createdAt: string | null;
|
|
1101
|
+
/**
|
|
1102
|
+
* Format: date-time
|
|
1103
|
+
* @description When this job began executing. Null when the job has not yet started.
|
|
1104
|
+
*/
|
|
1105
|
+
startedAt: string | null;
|
|
1106
|
+
/** Format: date-time */
|
|
1107
|
+
completedAt: string | null;
|
|
1108
|
+
/**
|
|
1109
|
+
* Format: date-time
|
|
1110
|
+
* @description When a cancel was requested. Null when no cancel has been requested.
|
|
1111
|
+
*/
|
|
1112
|
+
cancelRequestedAt: string | null;
|
|
1113
|
+
/** @enum {string|null} */
|
|
1114
|
+
errorCode: "execution_interrupted" | "execution_timeout" | "execution_failed" | "build_unavailable" | "simulation_error" | "queue_timeout" | "input_invalid" | "insufficient_credits" | "user_cancelled" | "internal" | null;
|
|
1115
|
+
/** @description Human-readable explanation for the terminal status, paired with `errorCode`. */
|
|
1116
|
+
statusReason: string | null;
|
|
1117
|
+
/** @description SimC process exit code. */
|
|
1118
|
+
simcExitCode: string | null;
|
|
1119
|
+
/** @description Number of days artifacts are retained after `completedAt`. After this window, artifact endpoints return `410`. */
|
|
1120
|
+
retentionDays: number | null;
|
|
1121
|
+
/** @description Opaque metadata echoed back exactly as submitted (for example `profileSource`, `characterRef`). Not used for scheduling or sim execution. */
|
|
1122
|
+
metadata: {
|
|
1123
|
+
[key: string]: unknown;
|
|
1124
|
+
} | null;
|
|
1125
|
+
runtime: {
|
|
1126
|
+
/** @description SimC process wall-clock time in milliseconds. Excludes setup and teardown time. Null if the job has not completed or the sim did not start. */
|
|
1127
|
+
simDurationMs: number | null;
|
|
1128
|
+
/** @description Total wall-clock time from job start to completion (milliseconds). Includes sim execution, artifact generation, and post-processing. Null when the job has not yet run. */
|
|
1129
|
+
totalDurationMs: number | null;
|
|
1130
|
+
/** @description Credits charged for this job, including any priority fee. `0` for terminal jobs with no billable work. Null until the job reaches a terminal state. */
|
|
1131
|
+
creditsConsumed: number | null;
|
|
1132
|
+
/** @description Priority surcharge included in `creditsConsumed`. `0` for jobs submitted at `standard` or `background`; otherwise the `high`-priority fee in effect at submission time. View the current fee from `GET /v1/simc/usage` under `limits.priorityFeeCredits.high`. */
|
|
1133
|
+
priorityFeeCredits: number;
|
|
1134
|
+
/** @description vCPUs used for this job. Null before execution. */
|
|
1135
|
+
vcpus: number | null;
|
|
1136
|
+
ceiling: {
|
|
1137
|
+
/** @description The runtime ceiling that applied to this run, in seconds. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
1138
|
+
runtimeSeconds: number | null;
|
|
1139
|
+
/** @description The queue timeout ceiling that applied to this run, in seconds. Jobs that wait in the queue longer than this are auto-cancelled with `errorCode` `queue_timeout`. View the maximum at `GET /v1/simc/usage` under `limits.maxQueueSeconds`. */
|
|
1140
|
+
queueSeconds: number | null;
|
|
1141
|
+
};
|
|
1142
|
+
};
|
|
1143
|
+
/** @description True if this job was retried automatically because of a platform error. The response reflects the latest retry attempt. */
|
|
1144
|
+
retried: boolean;
|
|
1145
|
+
build: {
|
|
816
1146
|
/**
|
|
817
|
-
* Format:
|
|
818
|
-
* @description
|
|
1147
|
+
* Format: uuid
|
|
1148
|
+
* @description Build ID. `GET /v1/simc/builds/{id}` returns the full build record.
|
|
819
1149
|
*/
|
|
820
|
-
|
|
821
|
-
/** @enum {string
|
|
822
|
-
|
|
823
|
-
/** @description
|
|
824
|
-
|
|
825
|
-
/** @description
|
|
826
|
-
|
|
827
|
-
/** @description Number of days artifacts are retained after `completedAt`. After this window, artifact endpoints return `410`. */
|
|
828
|
-
retentionDays: number | null;
|
|
829
|
-
/** @description Opaque metadata echoed back exactly as submitted (for example `profileSource`, `characterRef`). Not used for scheduling or sim execution. */
|
|
830
|
-
metadata: {
|
|
831
|
-
[key: string]: unknown;
|
|
832
|
-
} | null;
|
|
833
|
-
runtime: {
|
|
834
|
-
/** @description SimC process wall-clock time in milliseconds. Excludes setup and teardown time. Null if the job has not completed or the sim did not start. */
|
|
835
|
-
simDurationMs: number | null;
|
|
836
|
-
/** @description Total wall-clock time from job start to completion (milliseconds). Includes sim execution, artifact generation, and post-processing. Null when the job has not yet run. */
|
|
837
|
-
totalDurationMs: number | null;
|
|
838
|
-
/** @description Credits charged for this job, including any priority fee. `0` for terminal jobs with no billable work. Null until the job reaches a terminal state. */
|
|
839
|
-
creditsConsumed: number | null;
|
|
840
|
-
/** @description Priority surcharge included in `creditsConsumed`. `0` for jobs submitted at `standard` or `background`; otherwise the `high`-priority fee in effect at submission time. View the current fee from `GET /v1/simc/usage` under `limits.priorityFeeCredits.high`. */
|
|
841
|
-
priorityFeeCredits: number;
|
|
842
|
-
/** @description vCPUs used for this job. Null before execution. */
|
|
843
|
-
vcpus: number | null;
|
|
844
|
-
ceiling: {
|
|
845
|
-
/** @description The runtime ceiling that applied to this run, in seconds. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
846
|
-
runtimeSeconds: number | null;
|
|
847
|
-
/** @description The queue timeout ceiling that applied to this run, in seconds. Jobs that wait in the queue longer than this are auto-cancelled with `errorCode` `queue_timeout`. View the maximum at `GET /v1/simc/usage` under `limits.maxQueueSeconds`. */
|
|
848
|
-
queueSeconds: number | null;
|
|
849
|
-
};
|
|
850
|
-
};
|
|
851
|
-
/** @description True if this job was retried automatically because of a platform error. The response reflects the latest retry attempt. */
|
|
852
|
-
retried: boolean;
|
|
853
|
-
build: {
|
|
1150
|
+
id: string;
|
|
1151
|
+
/** @enum {string} */
|
|
1152
|
+
channel: "nightly" | "weekly" | "latest";
|
|
1153
|
+
/** @description Git commit hash of the SimC source used for this build. */
|
|
1154
|
+
commit: string;
|
|
1155
|
+
/** @description Compact upstream CI summary (status and failure count) for this commit. The full per-check breakdown is on `GET /v1/simc/builds/{id}`. Null when CI data is unavailable. */
|
|
1156
|
+
ci: {
|
|
854
1157
|
/**
|
|
855
|
-
*
|
|
856
|
-
* @
|
|
1158
|
+
* @description Computed CI status for the build commit. See GET /v1/simc/builds for full check details.
|
|
1159
|
+
* @enum {string}
|
|
857
1160
|
*/
|
|
858
|
-
|
|
859
|
-
/** @
|
|
860
|
-
|
|
861
|
-
/** @description Git commit hash of the SimC source used for this build. */
|
|
862
|
-
commit: string;
|
|
863
|
-
/** @description Compact upstream CI summary (status and failure count) for this commit. The full per-check breakdown is on `GET /v1/simc/builds/{id}`. Null when CI data is unavailable. */
|
|
864
|
-
ci: {
|
|
865
|
-
/**
|
|
866
|
-
* @description Computed CI status for the build commit. See GET /v1/simc/builds for full check details.
|
|
867
|
-
* @enum {string}
|
|
868
|
-
*/
|
|
869
|
-
status: "pass" | "partial" | "fail" | "unknown";
|
|
870
|
-
/** @description Number of CI checks with non-success conclusions (failure, cancelled, timed_out, action_required). See GET /v1/simc/builds for check names. */
|
|
871
|
-
failed: number;
|
|
872
|
-
} | null;
|
|
1161
|
+
status: "pass" | "partial" | "fail" | "unknown";
|
|
1162
|
+
/** @description Number of CI checks with non-success conclusions (failure, cancelled, timed_out, action_required). See GET /v1/simc/builds for check names. */
|
|
1163
|
+
failed: number;
|
|
873
1164
|
} | null;
|
|
874
|
-
|
|
875
|
-
|
|
1165
|
+
} | null;
|
|
1166
|
+
links: components["schemas"]["JobLinks"];
|
|
876
1167
|
};
|
|
877
1168
|
};
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
content: {
|
|
884
|
-
"application/json": {
|
|
885
|
-
error: string;
|
|
886
|
-
/** @enum {string} */
|
|
887
|
-
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
888
|
-
meta: {
|
|
889
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
890
|
-
[key: string]: string | number | boolean | null;
|
|
891
|
-
}[] | null;
|
|
892
|
-
} | null;
|
|
893
|
-
};
|
|
894
|
-
};
|
|
1169
|
+
};
|
|
1170
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1171
|
+
401: {
|
|
1172
|
+
headers: {
|
|
1173
|
+
[name: string]: unknown;
|
|
895
1174
|
};
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
1175
|
+
content: {
|
|
1176
|
+
"application/json": {
|
|
1177
|
+
error: string;
|
|
1178
|
+
/** @enum {string} */
|
|
1179
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1180
|
+
meta: {
|
|
1181
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1182
|
+
[key: string]: string | number | boolean | null;
|
|
1183
|
+
}[] | null;
|
|
1184
|
+
} | null;
|
|
1185
|
+
/**
|
|
1186
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1187
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1188
|
+
*/
|
|
1189
|
+
requestId?: string;
|
|
900
1190
|
};
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
1191
|
+
};
|
|
1192
|
+
};
|
|
1193
|
+
/** @description Job not found */
|
|
1194
|
+
404: {
|
|
1195
|
+
headers: {
|
|
1196
|
+
[name: string]: unknown;
|
|
1197
|
+
};
|
|
1198
|
+
content: {
|
|
1199
|
+
"application/json": {
|
|
1200
|
+
error: string;
|
|
1201
|
+
code: string;
|
|
1202
|
+
meta: {
|
|
1203
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1204
|
+
[key: string]: string | number | boolean | null;
|
|
1205
|
+
}[] | null;
|
|
1206
|
+
} | null;
|
|
1207
|
+
/**
|
|
1208
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1209
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1210
|
+
*/
|
|
1211
|
+
requestId?: string;
|
|
911
1212
|
};
|
|
912
1213
|
};
|
|
913
1214
|
};
|
|
914
1215
|
};
|
|
915
|
-
put?: never;
|
|
916
|
-
post?: never;
|
|
917
|
-
delete?: never;
|
|
918
|
-
options?: never;
|
|
919
|
-
head?: never;
|
|
920
|
-
patch?: never;
|
|
921
|
-
trace?: never;
|
|
922
1216
|
};
|
|
923
|
-
|
|
1217
|
+
getJobResult: {
|
|
924
1218
|
parameters: {
|
|
925
1219
|
query?: never;
|
|
926
1220
|
header?: never;
|
|
927
|
-
path
|
|
1221
|
+
path: {
|
|
1222
|
+
id: string;
|
|
1223
|
+
};
|
|
928
1224
|
cookie?: never;
|
|
929
1225
|
};
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
1226
|
+
requestBody?: never;
|
|
1227
|
+
responses: {
|
|
1228
|
+
/** @description Full result payload for a finished job — summary metrics, runtime info, and artifact references. */
|
|
1229
|
+
200: {
|
|
1230
|
+
headers: {
|
|
1231
|
+
[name: string]: unknown;
|
|
1232
|
+
};
|
|
1233
|
+
content: {
|
|
1234
|
+
"application/json": {
|
|
1235
|
+
id: string;
|
|
1236
|
+
/** @enum {string} */
|
|
1237
|
+
status: "completed" | "failed" | "cancelled" | "timed_out";
|
|
1238
|
+
/**
|
|
1239
|
+
* @description Effective priority the job is running at.
|
|
1240
|
+
* @enum {string}
|
|
1241
|
+
*/
|
|
1242
|
+
priority: "background" | "standard" | "high";
|
|
1243
|
+
/** Format: date-time */
|
|
1244
|
+
createdAt: string | null;
|
|
1245
|
+
/**
|
|
1246
|
+
* Format: date-time
|
|
1247
|
+
* @description When this job began executing. Null when the job has not yet started.
|
|
1248
|
+
*/
|
|
1249
|
+
startedAt: string | null;
|
|
1250
|
+
/** Format: date-time */
|
|
1251
|
+
completedAt: string | null;
|
|
1252
|
+
/**
|
|
1253
|
+
* Format: date-time
|
|
1254
|
+
* @description When a cancel was requested. Null when no cancel has been requested.
|
|
1255
|
+
*/
|
|
1256
|
+
cancelRequestedAt: string | null;
|
|
1257
|
+
/** @enum {string|null} */
|
|
1258
|
+
errorCode: "execution_interrupted" | "execution_timeout" | "execution_failed" | "build_unavailable" | "simulation_error" | "queue_timeout" | "input_invalid" | "insufficient_credits" | "user_cancelled" | "internal" | null;
|
|
1259
|
+
/** @description Human-readable explanation for the terminal status, paired with `errorCode`. */
|
|
1260
|
+
statusReason: string | null;
|
|
1261
|
+
/** @description SimC process exit code. */
|
|
1262
|
+
simcExitCode: string | null;
|
|
1263
|
+
/** @description Number of days artifacts are retained after `completedAt`. After this window, artifact endpoints return `410`. */
|
|
1264
|
+
retentionDays: number | null;
|
|
1265
|
+
/** @description Opaque metadata echoed back exactly as submitted (for example `profileSource`, `characterRef`). Not used for scheduling or sim execution. */
|
|
1266
|
+
metadata: {
|
|
1267
|
+
[key: string]: unknown;
|
|
1268
|
+
} | null;
|
|
1269
|
+
runtime: {
|
|
1270
|
+
/** @description SimC process wall-clock time in milliseconds. Excludes setup and teardown time. Null if the job has not completed or the sim did not start. */
|
|
1271
|
+
simDurationMs: number | null;
|
|
1272
|
+
/** @description Total wall-clock time from job start to completion (milliseconds). Includes sim execution, artifact generation, and post-processing. Null when the job has not yet run. */
|
|
1273
|
+
totalDurationMs: number | null;
|
|
1274
|
+
/** @description Credits charged for this job, including any priority fee. `0` for terminal jobs with no billable work. Null until the job reaches a terminal state. */
|
|
1275
|
+
creditsConsumed: number | null;
|
|
1276
|
+
/** @description Priority surcharge included in `creditsConsumed`. `0` for jobs submitted at `standard` or `background`; otherwise the `high`-priority fee in effect at submission time. View the current fee from `GET /v1/simc/usage` under `limits.priorityFeeCredits.high`. */
|
|
1277
|
+
priorityFeeCredits: number;
|
|
1278
|
+
/** @description vCPUs used for this job. Null before execution. */
|
|
1279
|
+
vcpus: number | null;
|
|
1280
|
+
ceiling: {
|
|
1281
|
+
/** @description The runtime ceiling that applied to this run, in seconds. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
1282
|
+
runtimeSeconds: number | null;
|
|
1283
|
+
/** @description The queue timeout ceiling that applied to this run, in seconds. Jobs that wait in the queue longer than this are auto-cancelled with `errorCode` `queue_timeout`. View the maximum at `GET /v1/simc/usage` under `limits.maxQueueSeconds`. */
|
|
1284
|
+
queueSeconds: number | null;
|
|
1285
|
+
};
|
|
1286
|
+
};
|
|
1287
|
+
/** @description True if this job was retried automatically because of a platform error. The response reflects the latest retry attempt. */
|
|
1288
|
+
retried: boolean;
|
|
1289
|
+
build: {
|
|
969
1290
|
/**
|
|
970
|
-
* Format:
|
|
971
|
-
* @description
|
|
1291
|
+
* Format: uuid
|
|
1292
|
+
* @description Build ID. `GET /v1/simc/builds/{id}` returns the full build record.
|
|
972
1293
|
*/
|
|
973
|
-
|
|
974
|
-
/** @enum {string
|
|
975
|
-
|
|
976
|
-
/** @description
|
|
977
|
-
|
|
978
|
-
/** @description
|
|
979
|
-
|
|
980
|
-
/** @description Number of days artifacts are retained after `completedAt`. After this window, artifact endpoints return `410`. */
|
|
981
|
-
retentionDays: number | null;
|
|
982
|
-
/** @description Opaque metadata echoed back exactly as submitted (for example `profileSource`, `characterRef`). Not used for scheduling or sim execution. */
|
|
983
|
-
metadata: {
|
|
984
|
-
[key: string]: unknown;
|
|
985
|
-
} | null;
|
|
986
|
-
runtime: {
|
|
987
|
-
/** @description SimC process wall-clock time in milliseconds. Excludes setup and teardown time. Null if the job has not completed or the sim did not start. */
|
|
988
|
-
simDurationMs: number | null;
|
|
989
|
-
/** @description Total wall-clock time from job start to completion (milliseconds). Includes sim execution, artifact generation, and post-processing. Null when the job has not yet run. */
|
|
990
|
-
totalDurationMs: number | null;
|
|
991
|
-
/** @description Credits charged for this job, including any priority fee. `0` for terminal jobs with no billable work. Null until the job reaches a terminal state. */
|
|
992
|
-
creditsConsumed: number | null;
|
|
993
|
-
/** @description Priority surcharge included in `creditsConsumed`. `0` for jobs submitted at `standard` or `background`; otherwise the `high`-priority fee in effect at submission time. View the current fee from `GET /v1/simc/usage` under `limits.priorityFeeCredits.high`. */
|
|
994
|
-
priorityFeeCredits: number;
|
|
995
|
-
/** @description vCPUs used for this job. Null before execution. */
|
|
996
|
-
vcpus: number | null;
|
|
997
|
-
ceiling: {
|
|
998
|
-
/** @description The runtime ceiling that applied to this run, in seconds. View the maximum at `GET /v1/simc/usage` under `limits.maxRuntimeSeconds`. */
|
|
999
|
-
runtimeSeconds: number | null;
|
|
1000
|
-
/** @description The queue timeout ceiling that applied to this run, in seconds. Jobs that wait in the queue longer than this are auto-cancelled with `errorCode` `queue_timeout`. View the maximum at `GET /v1/simc/usage` under `limits.maxQueueSeconds`. */
|
|
1001
|
-
queueSeconds: number | null;
|
|
1002
|
-
};
|
|
1003
|
-
};
|
|
1004
|
-
/** @description True if this job was retried automatically because of a platform error. The response reflects the latest retry attempt. */
|
|
1005
|
-
retried: boolean;
|
|
1006
|
-
build: {
|
|
1294
|
+
id: string;
|
|
1295
|
+
/** @enum {string} */
|
|
1296
|
+
channel: "nightly" | "weekly" | "latest";
|
|
1297
|
+
/** @description Git commit hash of the SimC source used for this build. */
|
|
1298
|
+
commit: string;
|
|
1299
|
+
/** @description Compact upstream CI summary (status and failure count) for this commit. The full per-check breakdown is on `GET /v1/simc/builds/{id}`. Null when CI data is unavailable. */
|
|
1300
|
+
ci: {
|
|
1007
1301
|
/**
|
|
1008
|
-
*
|
|
1009
|
-
* @
|
|
1302
|
+
* @description Computed CI status for the build commit. See GET /v1/simc/builds for full check details.
|
|
1303
|
+
* @enum {string}
|
|
1010
1304
|
*/
|
|
1011
|
-
|
|
1012
|
-
/** @
|
|
1013
|
-
|
|
1014
|
-
/** @description Git commit hash of the SimC source used for this build. */
|
|
1015
|
-
commit: string;
|
|
1016
|
-
/** @description Compact upstream CI summary (status and failure count) for this commit. The full per-check breakdown is on `GET /v1/simc/builds/{id}`. Null when CI data is unavailable. */
|
|
1017
|
-
ci: {
|
|
1018
|
-
/**
|
|
1019
|
-
* @description Computed CI status for the build commit. See GET /v1/simc/builds for full check details.
|
|
1020
|
-
* @enum {string}
|
|
1021
|
-
*/
|
|
1022
|
-
status: "pass" | "partial" | "fail" | "unknown";
|
|
1023
|
-
/** @description Number of CI checks with non-success conclusions (failure, cancelled, timed_out, action_required). See GET /v1/simc/builds for check names. */
|
|
1024
|
-
failed: number;
|
|
1025
|
-
} | null;
|
|
1305
|
+
status: "pass" | "partial" | "fail" | "unknown";
|
|
1306
|
+
/** @description Number of CI checks with non-success conclusions (failure, cancelled, timed_out, action_required). See GET /v1/simc/builds for check names. */
|
|
1307
|
+
failed: number;
|
|
1026
1308
|
} | null;
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
}[];
|
|
1062
|
-
};
|
|
1063
|
-
} | null;
|
|
1064
|
-
/** @description Multistage execution metadata. */
|
|
1065
|
-
multiStage: {
|
|
1066
|
-
/** @description Whether multistage execution ran. */
|
|
1067
|
-
enabled: boolean;
|
|
1068
|
-
/**
|
|
1069
|
-
* @description Why multistage execution did or did not run.
|
|
1070
|
-
* @enum {string}
|
|
1071
|
-
*/
|
|
1072
|
-
reason: "disabled_by_option" | "unsupported_stage_sensitive_directive" | "unsupported_copy_set_only" | "unsupported_mixed_profileset_copy_set" | "no_variants_in_input" | "unsupported_multi_actor" | "no_profileset_candidates" | "below_min_candidates" | "eligible_profileset_only";
|
|
1073
|
-
/** @description Per-stage funnel for multistage execution, in execution order. Empty for single-pass runs. */
|
|
1074
|
-
stages: {
|
|
1075
|
-
/** @description Stage number (1-indexed). */
|
|
1309
|
+
} | null;
|
|
1310
|
+
links: components["schemas"]["JobLinks"];
|
|
1311
|
+
result: {
|
|
1312
|
+
summary: {
|
|
1313
|
+
/**
|
|
1314
|
+
* @description Primary metric used for ranking.
|
|
1315
|
+
* @enum {string}
|
|
1316
|
+
*/
|
|
1317
|
+
metric: "dps";
|
|
1318
|
+
/** @description Result for the headline actor (selected by SimC's `profileset_main_actor_index` directive, default `0`). When profileset results are available, this object also carries a `profilesets` block (`{ count, results }`) for the sweep over this actor; the block is omitted when no results are available (the input declared no profilesets, or none were produced). For multi-player sims using `copy=` or `set=`, per-player results for the remaining actors are in the JSON artifact — that multi-player case is separate from the profileset sweep. */
|
|
1319
|
+
mainActor: {
|
|
1320
|
+
/** @description Actor name as defined in your profile. */
|
|
1321
|
+
name: string;
|
|
1322
|
+
/** @description Mean DPS across all iterations. */
|
|
1323
|
+
mean: number;
|
|
1324
|
+
/** @description The ± DPS error on `mean` — the half-width of its 95% confidence interval, equal to `mean_stddev` × 1.96. This is the same error SimC reports. */
|
|
1325
|
+
mean_error: number;
|
|
1326
|
+
/** @description Standard error of the mean DPS (the standard deviation of the mean estimate). */
|
|
1327
|
+
mean_stddev: number;
|
|
1328
|
+
/** @description Profileset sweep results scoped to this actor (mirrors SimC's `sim.profilesets` block shape). Omitted when no profileset results are available — either the input declared no profilesets, or none were produced. */
|
|
1329
|
+
profilesets?: {
|
|
1330
|
+
/** @description Total number of profilesets in the sim result. When this exceeds the length of `results`, the array was truncated to the top 200 entries by DPS. The full set is available in the JSON artifact. */
|
|
1331
|
+
count: number;
|
|
1332
|
+
/** @description Profileset sweep entries, ranked by DPS (highest first). Truncated to the top 200 entries — see `count` and the JSON artifact for the full set. */
|
|
1333
|
+
results: {
|
|
1334
|
+
/** @description Profileset name as defined in your input. */
|
|
1335
|
+
name: string;
|
|
1336
|
+
/** @description Mean DPS across all iterations. */
|
|
1337
|
+
mean: number;
|
|
1338
|
+
/** @description The ± DPS error on `mean` — the half-width of its 95% confidence interval, equal to `mean_stddev` × 1.96. This is the same error SimC reports. */
|
|
1339
|
+
mean_error: number;
|
|
1340
|
+
/** @description Standard error of the mean DPS (the standard deviation of the mean estimate). */
|
|
1341
|
+
mean_stddev: number;
|
|
1342
|
+
/** @description For multistage runs, the highest stage this profileset reached — it was culled after this stage, or it survived to the final stage. Earlier stages run at a coarser `target_error`, so a result from an earlier stage carries a larger `mean_error` than a final-stage result. `1` for single-pass runs. */
|
|
1076
1343
|
stage: number;
|
|
1077
|
-
/** @description Human-readable stage name (`initial`, `intermediate`, `final`). */
|
|
1078
|
-
label: string;
|
|
1079
|
-
/** @description Number of profilesets executed in this stage. */
|
|
1080
|
-
profilesets: number;
|
|
1081
|
-
/** @description Number of profilesets eliminated at the end of this stage based on ranking. These do not advance to the next stage. The last executed stage always reports `0` (no culling occurs after the last stage). */
|
|
1082
|
-
culled: number;
|
|
1083
1344
|
}[];
|
|
1084
1345
|
};
|
|
1085
1346
|
} | null;
|
|
1086
|
-
|
|
1087
|
-
|
|
1347
|
+
/** @description Multistage execution metadata. */
|
|
1348
|
+
multiStage: {
|
|
1349
|
+
/** @description Whether multistage execution ran. */
|
|
1350
|
+
enabled: boolean;
|
|
1088
1351
|
/**
|
|
1089
|
-
*
|
|
1090
|
-
* @
|
|
1352
|
+
* @description Why multistage execution did or did not run.
|
|
1353
|
+
* @enum {string}
|
|
1091
1354
|
*/
|
|
1092
|
-
|
|
1093
|
-
/** @description
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
401: {
|
|
1106
|
-
headers: {
|
|
1107
|
-
[name: string]: unknown;
|
|
1108
|
-
};
|
|
1109
|
-
content: {
|
|
1110
|
-
"application/json": {
|
|
1111
|
-
error: string;
|
|
1112
|
-
/** @enum {string} */
|
|
1113
|
-
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1114
|
-
meta: {
|
|
1115
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1116
|
-
[key: string]: string | number | boolean | null;
|
|
1117
|
-
}[] | null;
|
|
1355
|
+
reason: "disabled_by_option" | "unsupported_stage_sensitive_directive" | "unsupported_copy_set_only" | "unsupported_mixed_profileset_copy_set" | "no_variants_in_input" | "unsupported_multi_actor" | "no_profileset_candidates" | "below_min_candidates" | "eligible_profileset_only";
|
|
1356
|
+
/** @description Per-stage funnel for multistage execution, in execution order. Empty for single-pass runs. */
|
|
1357
|
+
stages: {
|
|
1358
|
+
/** @description Stage number (1-indexed). */
|
|
1359
|
+
stage: number;
|
|
1360
|
+
/** @description Human-readable stage name (`initial`, `intermediate`, `final`). */
|
|
1361
|
+
label: string;
|
|
1362
|
+
/** @description Number of profilesets executed in this stage. */
|
|
1363
|
+
profilesets: number;
|
|
1364
|
+
/** @description Number of profilesets eliminated at the end of this stage based on ranking. These do not advance to the next stage. The last executed stage always reports `0` (no culling occurs after the last stage). */
|
|
1365
|
+
culled: number;
|
|
1366
|
+
}[];
|
|
1367
|
+
};
|
|
1118
1368
|
} | null;
|
|
1369
|
+
artifacts: {
|
|
1370
|
+
id: string;
|
|
1371
|
+
/**
|
|
1372
|
+
* Format: uri
|
|
1373
|
+
* @description Stable public URL for downloading this artifact. Valid for the full retention window of the job.
|
|
1374
|
+
*/
|
|
1375
|
+
url: string;
|
|
1376
|
+
/**
|
|
1377
|
+
* @description Machine-readable artifact category. `html_report`: human-readable HTML report. `json_report`: machine-readable JSON results. `input`: the exact SimC input your job ran. `stdout_log` / `stderr_log`: raw SimC logs. Under multistage execution an artifact is identified by `kind` together with `stage` (the same `kind` appears once per stage); `stage` is null for single-run jobs.
|
|
1378
|
+
* @enum {string}
|
|
1379
|
+
*/
|
|
1380
|
+
kind: "html_report" | "json_report" | "input" | "stdout_log" | "stderr_log";
|
|
1381
|
+
/**
|
|
1382
|
+
* @description MIME type of the artifact content, drawn from a fixed set: `application/json`, `text/html`, or `text/plain`.
|
|
1383
|
+
* @enum {string}
|
|
1384
|
+
*/
|
|
1385
|
+
mimeType: "application/json" | "text/html" | "text/plain";
|
|
1386
|
+
/** @description Stage number for multistage execution artifacts (1-indexed). Null for single-run jobs or artifacts not associated with a specific multistage stage. */
|
|
1387
|
+
stage: number | null;
|
|
1388
|
+
}[];
|
|
1119
1389
|
};
|
|
1120
1390
|
};
|
|
1121
1391
|
};
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1392
|
+
};
|
|
1393
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1394
|
+
401: {
|
|
1395
|
+
headers: {
|
|
1396
|
+
[name: string]: unknown;
|
|
1397
|
+
};
|
|
1398
|
+
content: {
|
|
1399
|
+
"application/json": {
|
|
1400
|
+
error: string;
|
|
1401
|
+
/** @enum {string} */
|
|
1402
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1403
|
+
meta: {
|
|
1404
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1405
|
+
[key: string]: string | number | boolean | null;
|
|
1406
|
+
}[] | null;
|
|
1407
|
+
} | null;
|
|
1408
|
+
/**
|
|
1409
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1410
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1411
|
+
*/
|
|
1412
|
+
requestId?: string;
|
|
1137
1413
|
};
|
|
1138
1414
|
};
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1415
|
+
};
|
|
1416
|
+
/** @description Job not found */
|
|
1417
|
+
404: {
|
|
1418
|
+
headers: {
|
|
1419
|
+
[name: string]: unknown;
|
|
1420
|
+
};
|
|
1421
|
+
content: {
|
|
1422
|
+
"application/json": {
|
|
1423
|
+
error: string;
|
|
1424
|
+
code: string;
|
|
1425
|
+
meta: {
|
|
1426
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1427
|
+
[key: string]: string | number | boolean | null;
|
|
1428
|
+
}[] | null;
|
|
1429
|
+
} | null;
|
|
1430
|
+
/**
|
|
1431
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1432
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1433
|
+
*/
|
|
1434
|
+
requestId?: string;
|
|
1143
1435
|
};
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1436
|
+
};
|
|
1437
|
+
};
|
|
1438
|
+
/** @description Result not ready. The job has not reached a terminal status yet. */
|
|
1439
|
+
409: {
|
|
1440
|
+
headers: {
|
|
1441
|
+
[name: string]: unknown;
|
|
1442
|
+
};
|
|
1443
|
+
content: {
|
|
1444
|
+
"application/json": {
|
|
1445
|
+
error: string;
|
|
1446
|
+
/** @enum {string} */
|
|
1447
|
+
code: "result_not_ready";
|
|
1448
|
+
meta: {
|
|
1147
1449
|
/** @enum {string} */
|
|
1148
|
-
|
|
1149
|
-
meta: {
|
|
1150
|
-
/** @enum {string} */
|
|
1151
|
-
status: "pending" | "queued" | "starting" | "running";
|
|
1152
|
-
};
|
|
1450
|
+
status: "pending" | "queued" | "starting" | "running";
|
|
1153
1451
|
};
|
|
1452
|
+
/**
|
|
1453
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1454
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1455
|
+
*/
|
|
1456
|
+
requestId?: string;
|
|
1154
1457
|
};
|
|
1155
1458
|
};
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1459
|
+
};
|
|
1460
|
+
/** @description Result unavailable. The job is terminal but no result payload was produced. */
|
|
1461
|
+
422: {
|
|
1462
|
+
headers: {
|
|
1463
|
+
[name: string]: unknown;
|
|
1464
|
+
};
|
|
1465
|
+
content: {
|
|
1466
|
+
"application/json": {
|
|
1467
|
+
error: string;
|
|
1468
|
+
/** @enum {string} */
|
|
1469
|
+
code: "result_unavailable";
|
|
1470
|
+
meta: {
|
|
1164
1471
|
/** @enum {string} */
|
|
1165
|
-
|
|
1166
|
-
meta: {
|
|
1167
|
-
/** @enum {string} */
|
|
1168
|
-
status: "completed" | "failed" | "cancelled" | "timed_out";
|
|
1169
|
-
};
|
|
1472
|
+
status: "completed" | "failed" | "cancelled" | "timed_out";
|
|
1170
1473
|
};
|
|
1474
|
+
/**
|
|
1475
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1476
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1477
|
+
*/
|
|
1478
|
+
requestId?: string;
|
|
1171
1479
|
};
|
|
1172
1480
|
};
|
|
1173
1481
|
};
|
|
1174
1482
|
};
|
|
1175
|
-
put?: never;
|
|
1176
|
-
post?: never;
|
|
1177
|
-
delete?: never;
|
|
1178
|
-
options?: never;
|
|
1179
|
-
head?: never;
|
|
1180
|
-
patch?: never;
|
|
1181
|
-
trace?: never;
|
|
1182
1483
|
};
|
|
1183
|
-
|
|
1484
|
+
getJobStatus: {
|
|
1184
1485
|
parameters: {
|
|
1185
|
-
query?:
|
|
1486
|
+
query?: {
|
|
1487
|
+
/** @description Comma-separated list of optional fields to include. Supported: `logEntries` (structured log entries from stdout and stderr for running jobs). */
|
|
1488
|
+
include?: string;
|
|
1489
|
+
};
|
|
1186
1490
|
header?: never;
|
|
1187
|
-
path
|
|
1491
|
+
path: {
|
|
1492
|
+
id: string;
|
|
1493
|
+
};
|
|
1188
1494
|
cookie?: never;
|
|
1189
1495
|
};
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
/** @description
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
id: string;
|
|
1496
|
+
requestBody?: never;
|
|
1497
|
+
responses: {
|
|
1498
|
+
/** @description Current status, queue position, and progress for the job. */
|
|
1499
|
+
200: {
|
|
1500
|
+
headers: {
|
|
1501
|
+
/** @description Your in-flight job count at the time of this response. */
|
|
1502
|
+
"X-Active-Jobs": string;
|
|
1503
|
+
/** @description Your account ceiling for in-flight jobs. */
|
|
1504
|
+
"X-Max-Active-Jobs": string;
|
|
1505
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
1506
|
+
"X-Request-Id": string;
|
|
1507
|
+
[name: string]: unknown;
|
|
1203
1508
|
};
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
/**
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
1509
|
+
content: {
|
|
1510
|
+
"application/json": {
|
|
1511
|
+
/**
|
|
1512
|
+
* @description Current job status. Terminal values: completed, failed, cancelled, timed_out.
|
|
1513
|
+
* @enum {string}
|
|
1514
|
+
*/
|
|
1515
|
+
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
1516
|
+
/**
|
|
1517
|
+
* @description Machine-readable error code for the terminal state. Null when the job is not terminal or completed successfully.
|
|
1518
|
+
* @enum {string|null}
|
|
1519
|
+
*/
|
|
1520
|
+
errorCode: "execution_interrupted" | "execution_timeout" | "execution_failed" | "build_unavailable" | "simulation_error" | "queue_timeout" | "input_invalid" | "insufficient_credits" | "user_cancelled" | "internal" | null;
|
|
1521
|
+
/** @description Human-readable explanation paired with `errorCode`. Null when the job is not terminal or no additional detail is available. */
|
|
1522
|
+
statusReason: string | null;
|
|
1523
|
+
/** @description SimC process exit code. Null when the job is not terminal. */
|
|
1524
|
+
simcExitCode: string | null;
|
|
1525
|
+
queue: {
|
|
1526
|
+
/** @description Estimated seconds until this job begins running. Updated on each poll; not a guarantee. Null when no estimate is available. */
|
|
1527
|
+
estimatedStartSeconds: number | null;
|
|
1224
1528
|
/**
|
|
1225
|
-
*
|
|
1226
|
-
* @
|
|
1529
|
+
* Format: date-time
|
|
1530
|
+
* @description When this estimate was last computed.
|
|
1227
1531
|
*/
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
/** @description
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1532
|
+
estimatedStartUpdatedAt: string | null;
|
|
1533
|
+
} | null;
|
|
1534
|
+
progress: {
|
|
1535
|
+
/** @description Estimated completion percentage (0–100). Null when not yet running. */
|
|
1536
|
+
percent: number | null;
|
|
1537
|
+
/** @description Stage progress detail while the job is running. Null before the job starts running and once it reaches a terminal state. Single-pass jobs report `{ current: 1, total: 1, label: "initial" }` with `percent` populated while running. */
|
|
1538
|
+
stage: {
|
|
1539
|
+
/** @description Current stage (1-indexed). */
|
|
1540
|
+
current: number;
|
|
1541
|
+
/** @description Total number of stages in this run. */
|
|
1542
|
+
total: number;
|
|
1543
|
+
/** @description Human-readable name of the current stage (for example "initial", "intermediate", "final"). */
|
|
1544
|
+
label: string;
|
|
1545
|
+
/** @description Estimated completion percentage (0–100) within the current stage. */
|
|
1546
|
+
percent: number;
|
|
1241
1547
|
} | null;
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
/** @description Stage progress detail while the job is running. Null before the job starts running and once it reaches a terminal state. Single-pass jobs report `{ current: 1, total: 1, label: "initial" }` with `percent` populated while running. */
|
|
1246
|
-
stage: {
|
|
1247
|
-
/** @description Current stage (1-indexed). */
|
|
1248
|
-
current: number;
|
|
1249
|
-
/** @description Total number of stages in this run. */
|
|
1250
|
-
total: number;
|
|
1251
|
-
/** @description Human-readable name of the current stage (for example "initial", "intermediate", "final"). */
|
|
1252
|
-
label: string;
|
|
1253
|
-
/** @description Estimated completion percentage (0–100) within the current stage. */
|
|
1254
|
-
percent: number;
|
|
1255
|
-
} | null;
|
|
1256
|
-
};
|
|
1257
|
-
/** @description Recent log lines from SimC stdout and stderr while the job is running. Each entry is tagged with its stream (`source`) and capture time (`ts`). Full logs are available as downloadable artifacts once the job completes. Null when not running or not requested via `include=logEntries`. */
|
|
1258
|
-
logEntries: {
|
|
1259
|
-
/**
|
|
1260
|
-
* @description Which stream the line came from. `stderr` lines are diagnostic output — SimC warnings, errors, and notes. `stdout` lines are sim output, progress markers, and results.
|
|
1261
|
-
* @enum {string}
|
|
1262
|
-
*/
|
|
1263
|
-
source: "stdout" | "stderr";
|
|
1264
|
-
/** @description The log line text. */
|
|
1265
|
-
message: string;
|
|
1266
|
-
/** @description Epoch milliseconds (UTC) when this line was captured. */
|
|
1267
|
-
ts: number;
|
|
1268
|
-
}[] | null;
|
|
1548
|
+
};
|
|
1549
|
+
/** @description Recent log lines from SimC stdout and stderr while the job is running. Each entry is tagged with its stream (`source`) and capture time (`ts`). Full logs are available as downloadable artifacts once the job completes. Null when not running or not requested via `include=logEntries`. */
|
|
1550
|
+
logEntries: {
|
|
1269
1551
|
/**
|
|
1270
|
-
*
|
|
1271
|
-
* @
|
|
1552
|
+
* @description Which stream the line came from. `stderr` lines are diagnostic output — SimC warnings, errors, and notes. `stdout` lines are sim output, progress markers, and results.
|
|
1553
|
+
* @enum {string}
|
|
1272
1554
|
*/
|
|
1273
|
-
|
|
1274
|
-
/**
|
|
1275
|
-
|
|
1276
|
-
/** @description
|
|
1277
|
-
|
|
1278
|
-
};
|
|
1555
|
+
source: "stdout" | "stderr";
|
|
1556
|
+
/** @description The log line text. */
|
|
1557
|
+
message: string;
|
|
1558
|
+
/** @description Epoch milliseconds (UTC) when this line was captured. */
|
|
1559
|
+
ts: number;
|
|
1560
|
+
}[] | null;
|
|
1561
|
+
/**
|
|
1562
|
+
* Format: date-time
|
|
1563
|
+
* @description When this job began executing. Null when the job has not yet started.
|
|
1564
|
+
*/
|
|
1565
|
+
startedAt: string | null;
|
|
1566
|
+
/** Format: date-time */
|
|
1567
|
+
updatedAt: string | null;
|
|
1568
|
+
/** @description True if this job was retried automatically because of a platform error. The response reflects the latest retry attempt. */
|
|
1569
|
+
retried: boolean;
|
|
1279
1570
|
};
|
|
1280
1571
|
};
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
content: {
|
|
1287
|
-
"application/json": {
|
|
1288
|
-
error: string;
|
|
1289
|
-
/** @enum {string} */
|
|
1290
|
-
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1291
|
-
meta: {
|
|
1292
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1293
|
-
[key: string]: string | number | boolean | null;
|
|
1294
|
-
}[] | null;
|
|
1295
|
-
} | null;
|
|
1296
|
-
};
|
|
1297
|
-
};
|
|
1572
|
+
};
|
|
1573
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1574
|
+
401: {
|
|
1575
|
+
headers: {
|
|
1576
|
+
[name: string]: unknown;
|
|
1298
1577
|
};
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1578
|
+
content: {
|
|
1579
|
+
"application/json": {
|
|
1580
|
+
error: string;
|
|
1581
|
+
/** @enum {string} */
|
|
1582
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1583
|
+
meta: {
|
|
1584
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1585
|
+
[key: string]: string | number | boolean | null;
|
|
1586
|
+
}[] | null;
|
|
1587
|
+
} | null;
|
|
1588
|
+
/**
|
|
1589
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1590
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1591
|
+
*/
|
|
1592
|
+
requestId?: string;
|
|
1303
1593
|
};
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1594
|
+
};
|
|
1595
|
+
};
|
|
1596
|
+
/** @description Job not found */
|
|
1597
|
+
404: {
|
|
1598
|
+
headers: {
|
|
1599
|
+
[name: string]: unknown;
|
|
1600
|
+
};
|
|
1601
|
+
content: {
|
|
1602
|
+
"application/json": {
|
|
1603
|
+
error: string;
|
|
1604
|
+
code: string;
|
|
1605
|
+
meta: {
|
|
1606
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1607
|
+
[key: string]: string | number | boolean | null;
|
|
1608
|
+
}[] | null;
|
|
1609
|
+
} | null;
|
|
1610
|
+
/**
|
|
1611
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1612
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1613
|
+
*/
|
|
1614
|
+
requestId?: string;
|
|
1314
1615
|
};
|
|
1315
1616
|
};
|
|
1316
1617
|
};
|
|
1317
1618
|
};
|
|
1318
|
-
put?: never;
|
|
1319
|
-
post?: never;
|
|
1320
|
-
delete?: never;
|
|
1321
|
-
options?: never;
|
|
1322
|
-
head?: never;
|
|
1323
|
-
patch?: never;
|
|
1324
|
-
trace?: never;
|
|
1325
1619
|
};
|
|
1326
|
-
|
|
1620
|
+
getArtifactUrl: {
|
|
1327
1621
|
parameters: {
|
|
1328
1622
|
query?: never;
|
|
1329
1623
|
header?: never;
|
|
1330
|
-
path
|
|
1624
|
+
path: {
|
|
1625
|
+
id: string;
|
|
1626
|
+
};
|
|
1331
1627
|
cookie?: never;
|
|
1332
1628
|
};
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
query?: never;
|
|
1340
|
-
header?: never;
|
|
1341
|
-
path: {
|
|
1342
|
-
id: string;
|
|
1343
|
-
};
|
|
1344
|
-
cookie?: never;
|
|
1345
|
-
};
|
|
1346
|
-
requestBody?: never;
|
|
1347
|
-
responses: {
|
|
1348
|
-
/** @description A stable public URL for downloading the artifact. Valid for the artifact's full retention window. */
|
|
1349
|
-
200: {
|
|
1350
|
-
headers: {
|
|
1351
|
-
[name: string]: unknown;
|
|
1352
|
-
};
|
|
1353
|
-
content: {
|
|
1354
|
-
"application/json": {
|
|
1355
|
-
/** Format: uri */
|
|
1356
|
-
url: string;
|
|
1357
|
-
};
|
|
1358
|
-
};
|
|
1629
|
+
requestBody?: never;
|
|
1630
|
+
responses: {
|
|
1631
|
+
/** @description A stable public URL for downloading the artifact. Valid for the artifact's full retention window. */
|
|
1632
|
+
200: {
|
|
1633
|
+
headers: {
|
|
1634
|
+
[name: string]: unknown;
|
|
1359
1635
|
};
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
};
|
|
1365
|
-
content: {
|
|
1366
|
-
"application/json": {
|
|
1367
|
-
error: string;
|
|
1368
|
-
/** @enum {string} */
|
|
1369
|
-
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1370
|
-
meta: {
|
|
1371
|
-
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1372
|
-
[key: string]: string | number | boolean | null;
|
|
1373
|
-
}[] | null;
|
|
1374
|
-
} | null;
|
|
1375
|
-
};
|
|
1636
|
+
content: {
|
|
1637
|
+
"application/json": {
|
|
1638
|
+
/** Format: uri */
|
|
1639
|
+
url: string;
|
|
1376
1640
|
};
|
|
1377
1641
|
};
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1642
|
+
};
|
|
1643
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1644
|
+
401: {
|
|
1645
|
+
headers: {
|
|
1646
|
+
[name: string]: unknown;
|
|
1647
|
+
};
|
|
1648
|
+
content: {
|
|
1649
|
+
"application/json": {
|
|
1650
|
+
error: string;
|
|
1651
|
+
/** @enum {string} */
|
|
1652
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1653
|
+
meta: {
|
|
1654
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1655
|
+
[key: string]: string | number | boolean | null;
|
|
1656
|
+
}[] | null;
|
|
1657
|
+
} | null;
|
|
1658
|
+
/**
|
|
1659
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1660
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1661
|
+
*/
|
|
1662
|
+
requestId?: string;
|
|
1393
1663
|
};
|
|
1394
1664
|
};
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1665
|
+
};
|
|
1666
|
+
/** @description Artifact not found */
|
|
1667
|
+
404: {
|
|
1668
|
+
headers: {
|
|
1669
|
+
[name: string]: unknown;
|
|
1670
|
+
};
|
|
1671
|
+
content: {
|
|
1672
|
+
"application/json": {
|
|
1673
|
+
error: string;
|
|
1674
|
+
code: string;
|
|
1675
|
+
meta: {
|
|
1676
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1677
|
+
[key: string]: string | number | boolean | null;
|
|
1678
|
+
}[] | null;
|
|
1679
|
+
} | null;
|
|
1680
|
+
/**
|
|
1681
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1682
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1683
|
+
*/
|
|
1684
|
+
requestId?: string;
|
|
1399
1685
|
};
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1686
|
+
};
|
|
1687
|
+
};
|
|
1688
|
+
/** @description The artifact has expired and is no longer available. */
|
|
1689
|
+
410: {
|
|
1690
|
+
headers: {
|
|
1691
|
+
[name: string]: unknown;
|
|
1692
|
+
};
|
|
1693
|
+
content: {
|
|
1694
|
+
"application/json": {
|
|
1695
|
+
error: string;
|
|
1696
|
+
code: string;
|
|
1697
|
+
meta: {
|
|
1698
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1699
|
+
[key: string]: string | number | boolean | null;
|
|
1700
|
+
}[] | null;
|
|
1701
|
+
} | null;
|
|
1702
|
+
/**
|
|
1703
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1704
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1705
|
+
*/
|
|
1706
|
+
requestId?: string;
|
|
1410
1707
|
};
|
|
1411
1708
|
};
|
|
1412
1709
|
};
|
|
1413
1710
|
};
|
|
1414
|
-
put?: never;
|
|
1415
|
-
post?: never;
|
|
1416
|
-
delete?: never;
|
|
1417
|
-
options?: never;
|
|
1418
|
-
head?: never;
|
|
1419
|
-
patch?: never;
|
|
1420
|
-
trace?: never;
|
|
1421
1711
|
};
|
|
1422
|
-
|
|
1712
|
+
cancelJob: {
|
|
1423
1713
|
parameters: {
|
|
1424
1714
|
query?: never;
|
|
1425
1715
|
header?: never;
|
|
1426
|
-
path
|
|
1716
|
+
path: {
|
|
1717
|
+
id: string;
|
|
1718
|
+
};
|
|
1427
1719
|
cookie?: never;
|
|
1428
1720
|
};
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
post: {
|
|
1436
|
-
parameters: {
|
|
1437
|
-
query?: never;
|
|
1438
|
-
header?: never;
|
|
1439
|
-
path: {
|
|
1440
|
-
id: string;
|
|
1441
|
-
};
|
|
1442
|
-
cookie?: never;
|
|
1443
|
-
};
|
|
1444
|
-
requestBody?: never;
|
|
1445
|
-
responses: {
|
|
1446
|
-
/** @description Cancel accepted. `status` is `cancelled` when the job ended before running, or `cancel_requested` when the job was already running and has been signaled to stop. */
|
|
1447
|
-
200: {
|
|
1448
|
-
headers: {
|
|
1449
|
-
[name: string]: unknown;
|
|
1450
|
-
};
|
|
1451
|
-
content: {
|
|
1452
|
-
"application/json": {
|
|
1453
|
-
/** @enum {boolean} */
|
|
1454
|
-
success: true;
|
|
1455
|
-
id: string;
|
|
1456
|
-
/**
|
|
1457
|
-
* @description The job ended before it started running and is fully cancelled.
|
|
1458
|
-
* @enum {string}
|
|
1459
|
-
*/
|
|
1460
|
-
status: "cancelled";
|
|
1461
|
-
} | {
|
|
1462
|
-
/** @enum {boolean} */
|
|
1463
|
-
success: true;
|
|
1464
|
-
id: string;
|
|
1465
|
-
/**
|
|
1466
|
-
* @description The job was already running and has been signaled to stop. Poll `GET /v1/simc/jobs/{id}` to observe the transition to `cancelled`.
|
|
1467
|
-
* @enum {string}
|
|
1468
|
-
*/
|
|
1469
|
-
status: "cancel_requested";
|
|
1470
|
-
/**
|
|
1471
|
-
* Format: date-time
|
|
1472
|
-
* @description When the cancel was requested.
|
|
1473
|
-
*/
|
|
1474
|
-
cancelRequestedAt: string;
|
|
1475
|
-
};
|
|
1476
|
-
};
|
|
1721
|
+
requestBody?: never;
|
|
1722
|
+
responses: {
|
|
1723
|
+
/** @description Cancel accepted. `status` is `cancelled` when the job ended before running, or `cancel_requested` when the job was already running and has been signaled to stop. */
|
|
1724
|
+
200: {
|
|
1725
|
+
headers: {
|
|
1726
|
+
[name: string]: unknown;
|
|
1477
1727
|
};
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1728
|
+
content: {
|
|
1729
|
+
"application/json": {
|
|
1730
|
+
/** @enum {boolean} */
|
|
1731
|
+
success: true;
|
|
1732
|
+
id: string;
|
|
1733
|
+
/**
|
|
1734
|
+
* @description The job ended before it started running and is fully cancelled.
|
|
1735
|
+
* @enum {string}
|
|
1736
|
+
*/
|
|
1737
|
+
status: "cancelled";
|
|
1738
|
+
} | {
|
|
1739
|
+
/** @enum {boolean} */
|
|
1740
|
+
success: true;
|
|
1741
|
+
id: string;
|
|
1742
|
+
/**
|
|
1743
|
+
* @description The job was already running and has been signaled to stop. Poll `GET /v1/simc/jobs/{id}` to observe the transition to `cancelled`.
|
|
1744
|
+
* @enum {string}
|
|
1745
|
+
*/
|
|
1746
|
+
status: "cancel_requested";
|
|
1747
|
+
/**
|
|
1748
|
+
* Format: date-time
|
|
1749
|
+
* @description When the cancel was requested.
|
|
1750
|
+
*/
|
|
1751
|
+
cancelRequestedAt: string;
|
|
1494
1752
|
};
|
|
1495
1753
|
};
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1754
|
+
};
|
|
1755
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1756
|
+
401: {
|
|
1757
|
+
headers: {
|
|
1758
|
+
[name: string]: unknown;
|
|
1759
|
+
};
|
|
1760
|
+
content: {
|
|
1761
|
+
"application/json": {
|
|
1762
|
+
error: string;
|
|
1763
|
+
/** @enum {string} */
|
|
1764
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1765
|
+
meta: {
|
|
1766
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1767
|
+
[key: string]: string | number | boolean | null;
|
|
1768
|
+
}[] | null;
|
|
1769
|
+
} | null;
|
|
1770
|
+
/**
|
|
1771
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1772
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1773
|
+
*/
|
|
1774
|
+
requestId?: string;
|
|
1511
1775
|
};
|
|
1512
1776
|
};
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1777
|
+
};
|
|
1778
|
+
/** @description Job not found */
|
|
1779
|
+
404: {
|
|
1780
|
+
headers: {
|
|
1781
|
+
[name: string]: unknown;
|
|
1782
|
+
};
|
|
1783
|
+
content: {
|
|
1784
|
+
"application/json": {
|
|
1785
|
+
error: string;
|
|
1786
|
+
code: string;
|
|
1787
|
+
meta: {
|
|
1788
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1789
|
+
[key: string]: string | number | boolean | null;
|
|
1790
|
+
}[] | null;
|
|
1791
|
+
} | null;
|
|
1792
|
+
/**
|
|
1793
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1794
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1795
|
+
*/
|
|
1796
|
+
requestId?: string;
|
|
1517
1797
|
};
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1798
|
+
};
|
|
1799
|
+
};
|
|
1800
|
+
/** @description Job has already reached a terminal status. */
|
|
1801
|
+
409: {
|
|
1802
|
+
headers: {
|
|
1803
|
+
[name: string]: unknown;
|
|
1804
|
+
};
|
|
1805
|
+
content: {
|
|
1806
|
+
"application/json": {
|
|
1807
|
+
error: string;
|
|
1808
|
+
/** @enum {string} */
|
|
1809
|
+
code: "job_not_cancellable";
|
|
1810
|
+
meta: {
|
|
1811
|
+
id: string;
|
|
1521
1812
|
/** @enum {string} */
|
|
1522
|
-
|
|
1523
|
-
meta: {
|
|
1524
|
-
id: string;
|
|
1525
|
-
/** @enum {string} */
|
|
1526
|
-
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
1527
|
-
};
|
|
1813
|
+
status: "pending" | "queued" | "starting" | "running" | "completed" | "failed" | "cancelled" | "timed_out";
|
|
1528
1814
|
};
|
|
1529
1815
|
};
|
|
1530
1816
|
};
|
|
1531
1817
|
};
|
|
1532
1818
|
};
|
|
1533
|
-
delete?: never;
|
|
1534
|
-
options?: never;
|
|
1535
|
-
head?: never;
|
|
1536
|
-
patch?: never;
|
|
1537
|
-
trace?: never;
|
|
1538
1819
|
};
|
|
1539
|
-
|
|
1820
|
+
getUsage: {
|
|
1540
1821
|
parameters: {
|
|
1541
1822
|
query?: never;
|
|
1542
1823
|
header?: never;
|
|
1543
1824
|
path?: never;
|
|
1544
1825
|
cookie?: never;
|
|
1545
1826
|
};
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
/** @description Default queue wait per job in seconds. */
|
|
1613
|
-
defaultQueueSeconds: number | null;
|
|
1614
|
-
/** @description Number of vCPUs allocated to each job. */
|
|
1615
|
-
vcpuPerJob: number;
|
|
1616
|
-
/** @description Maximum simc variants (profilesets, copies, sets) allowed per job. Null means no cap. */
|
|
1617
|
-
maxSimcVariants: number | null;
|
|
1618
|
-
/** @description Per-job priority surcharge in credits, by priority. Added to the base compute cost for jobs submitted at `high`. */
|
|
1619
|
-
priorityFeeCredits: {
|
|
1620
|
-
high?: number;
|
|
1621
|
-
};
|
|
1827
|
+
requestBody?: never;
|
|
1828
|
+
responses: {
|
|
1829
|
+
/** @description Your usage summary, including both period-based metrics and live snapshot counters. */
|
|
1830
|
+
200: {
|
|
1831
|
+
headers: {
|
|
1832
|
+
/** @description Your in-flight job count at the time of this response. */
|
|
1833
|
+
"X-Active-Jobs": string;
|
|
1834
|
+
/** @description Your account ceiling for in-flight jobs. */
|
|
1835
|
+
"X-Max-Active-Jobs": string;
|
|
1836
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
1837
|
+
"X-Request-Id": string;
|
|
1838
|
+
[name: string]: unknown;
|
|
1839
|
+
};
|
|
1840
|
+
content: {
|
|
1841
|
+
"application/json": {
|
|
1842
|
+
period: {
|
|
1843
|
+
/**
|
|
1844
|
+
* Format: date-time
|
|
1845
|
+
* @description UTC start of the usage period.
|
|
1846
|
+
*/
|
|
1847
|
+
start: string | null;
|
|
1848
|
+
/**
|
|
1849
|
+
* Format: date-time
|
|
1850
|
+
* @description UTC end of the usage period.
|
|
1851
|
+
*/
|
|
1852
|
+
end: string | null;
|
|
1853
|
+
/** @description Completed sims in the current period. */
|
|
1854
|
+
simsRun: number;
|
|
1855
|
+
/** @description Average runtime in seconds for completed sims in the current period. */
|
|
1856
|
+
avgRuntimeSeconds: number | null;
|
|
1857
|
+
/** @description API read requests consumed in the current period. */
|
|
1858
|
+
readsUsed: number | null;
|
|
1859
|
+
/** @description Maximum read requests allowed in the current period. Null means no cap. */
|
|
1860
|
+
readsLimit: number | null;
|
|
1861
|
+
/**
|
|
1862
|
+
* Format: date-time
|
|
1863
|
+
* @description When the current reads cap resets.
|
|
1864
|
+
*/
|
|
1865
|
+
readsCapResetAt: string | null;
|
|
1866
|
+
};
|
|
1867
|
+
snapshot: {
|
|
1868
|
+
/** @description Number of jobs currently in flight. The ceiling is `limits.maxActiveJobs`. */
|
|
1869
|
+
activeJobs: number | null;
|
|
1870
|
+
/** @description Number of jobs currently queued. */
|
|
1871
|
+
queuedJobs: number | null;
|
|
1872
|
+
/** @description Number of jobs currently running or starting. */
|
|
1873
|
+
runningJobs: number | null;
|
|
1874
|
+
};
|
|
1875
|
+
limits: {
|
|
1876
|
+
/** @description Maximum jobs your account can have in flight. */
|
|
1877
|
+
maxActiveJobs: number | null;
|
|
1878
|
+
/** @description Maximum wall-clock runtime per job in seconds. */
|
|
1879
|
+
maxRuntimeSeconds: number | null;
|
|
1880
|
+
/** @description Default runtime per job in seconds. */
|
|
1881
|
+
defaultRuntimeSeconds: number | null;
|
|
1882
|
+
/** @description Maximum time in seconds a job may wait in the queue before being cancelled. */
|
|
1883
|
+
maxQueueSeconds: number | null;
|
|
1884
|
+
/** @description Default queue wait per job in seconds. */
|
|
1885
|
+
defaultQueueSeconds: number | null;
|
|
1886
|
+
/** @description Number of vCPUs allocated to each job. */
|
|
1887
|
+
vcpuPerJob: number;
|
|
1888
|
+
/** @description Maximum simc variants (profilesets, copies, sets) allowed per job. Null means no cap. */
|
|
1889
|
+
maxSimcVariants: number | null;
|
|
1890
|
+
/** @description Per-job priority surcharge in credits, by priority. Added to the base compute cost for jobs submitted at `high`. */
|
|
1891
|
+
priorityFeeCredits: {
|
|
1892
|
+
high?: number;
|
|
1622
1893
|
};
|
|
1623
1894
|
};
|
|
1624
1895
|
};
|
|
1625
1896
|
};
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
} | null;
|
|
1641
|
-
};
|
|
1897
|
+
};
|
|
1898
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1899
|
+
401: {
|
|
1900
|
+
headers: {
|
|
1901
|
+
[name: string]: unknown;
|
|
1902
|
+
};
|
|
1903
|
+
content: {
|
|
1904
|
+
"application/json": {
|
|
1905
|
+
error: string;
|
|
1906
|
+
/** @enum {string} */
|
|
1907
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1908
|
+
meta: {
|
|
1909
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1910
|
+
[key: string]: string | number | boolean | null;
|
|
1911
|
+
}[] | null;
|
|
1912
|
+
} | null;
|
|
1913
|
+
/**
|
|
1914
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1915
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1916
|
+
*/
|
|
1917
|
+
requestId?: string;
|
|
1642
1918
|
};
|
|
1643
1919
|
};
|
|
1644
1920
|
};
|
|
1645
1921
|
};
|
|
1646
|
-
put?: never;
|
|
1647
|
-
post?: never;
|
|
1648
|
-
delete?: never;
|
|
1649
|
-
options?: never;
|
|
1650
|
-
head?: never;
|
|
1651
|
-
patch?: never;
|
|
1652
|
-
trace?: never;
|
|
1653
1922
|
};
|
|
1654
|
-
|
|
1923
|
+
getCredits: {
|
|
1655
1924
|
parameters: {
|
|
1656
1925
|
query?: never;
|
|
1657
1926
|
header?: never;
|
|
1658
1927
|
path?: never;
|
|
1659
1928
|
cookie?: never;
|
|
1660
1929
|
};
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
get: {
|
|
1670
|
-
parameters: {
|
|
1671
|
-
query?: never;
|
|
1672
|
-
header?: never;
|
|
1673
|
-
path?: never;
|
|
1674
|
-
cookie?: never;
|
|
1675
|
-
};
|
|
1676
|
-
requestBody?: never;
|
|
1677
|
-
responses: {
|
|
1678
|
-
/** @description Your credit balance and active grants. */
|
|
1679
|
-
200: {
|
|
1680
|
-
headers: {
|
|
1681
|
-
[name: string]: unknown;
|
|
1682
|
-
};
|
|
1683
|
-
content: {
|
|
1684
|
-
"application/json": {
|
|
1685
|
-
/** @description Total purchased credit balance. Purchased credits do not expire. */
|
|
1686
|
-
purchased: number;
|
|
1687
|
-
/** @description Credits currently held against your in-flight jobs. Refunded on settlement (any unused amount returns to `purchased` and `grants[].remaining`). Excluded from `purchased` and `grants[].remaining`. */
|
|
1688
|
-
reserved: number;
|
|
1689
|
-
/** @description Your active grants, ordered by expiry (soonest first; grants without expiry last). Empty when no grants are active. */
|
|
1690
|
-
grants: {
|
|
1691
|
-
id: string;
|
|
1692
|
-
/**
|
|
1693
|
-
* @description The reason this grant was issued.
|
|
1694
|
-
* @enum {string}
|
|
1695
|
-
*/
|
|
1696
|
-
reason: "grant_sandbox_allowance" | "grant_developer_allowance" | "grant_beta" | "grant_promo" | "grant_onboarding" | "grant_sandbox_restricted_onboarding" | "grant_personal_allowance";
|
|
1697
|
-
/** @description Credits currently available in this grant. Excludes any credits already committed to in-flight jobs. */
|
|
1698
|
-
remaining: number;
|
|
1699
|
-
/** @description Credits originally issued in this grant. */
|
|
1700
|
-
original: number;
|
|
1701
|
-
/**
|
|
1702
|
-
* Format: date-time
|
|
1703
|
-
* @description When this grant expires. `null` means the grant has no expiry. After expiry, any remaining credits in the grant are forfeited and the grant no longer appears in this response.
|
|
1704
|
-
*/
|
|
1705
|
-
expiresAt: string | null;
|
|
1706
|
-
}[];
|
|
1707
|
-
};
|
|
1708
|
-
};
|
|
1930
|
+
requestBody?: never;
|
|
1931
|
+
responses: {
|
|
1932
|
+
/** @description Your credit balance and active grants. */
|
|
1933
|
+
200: {
|
|
1934
|
+
headers: {
|
|
1935
|
+
/** @description Correlation id for this request, present on every response. The same value is echoed in the `requestId` field of error bodies. */
|
|
1936
|
+
"X-Request-Id": string;
|
|
1937
|
+
[name: string]: unknown;
|
|
1709
1938
|
};
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1939
|
+
content: {
|
|
1940
|
+
"application/json": {
|
|
1941
|
+
/** @description Total purchased credit balance. Purchased credits do not expire. */
|
|
1942
|
+
purchased: number;
|
|
1943
|
+
/** @description Credits currently held against your in-flight jobs. Refunded on settlement (any unused amount returns to `purchased` and `grants[].remaining`). Excluded from `purchased` and `grants[].remaining`. */
|
|
1944
|
+
reserved: number;
|
|
1945
|
+
/** @description Your active grants, ordered by expiry (soonest first; grants without expiry last). Empty when no grants are active. */
|
|
1946
|
+
grants: {
|
|
1947
|
+
id: string;
|
|
1948
|
+
/**
|
|
1949
|
+
* @description The reason this grant was issued.
|
|
1950
|
+
* @enum {string}
|
|
1951
|
+
*/
|
|
1952
|
+
reason: "grant_sandbox_allowance" | "grant_developer_allowance" | "grant_beta" | "grant_promo" | "grant_onboarding" | "grant_sandbox_restricted_onboarding" | "grant_personal_allowance";
|
|
1953
|
+
/** @description Credits currently available in this grant. Excludes any credits already committed to in-flight jobs. */
|
|
1954
|
+
remaining: number;
|
|
1955
|
+
/** @description Credits originally issued in this grant. */
|
|
1956
|
+
original: number;
|
|
1957
|
+
/**
|
|
1958
|
+
* Format: date-time
|
|
1959
|
+
* @description When this grant expires. `null` means the grant has no expiry. After expiry, any remaining credits in the grant are forfeited and the grant no longer appears in this response.
|
|
1960
|
+
*/
|
|
1961
|
+
expiresAt: string | null;
|
|
1962
|
+
}[];
|
|
1714
1963
|
};
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
}
|
|
1964
|
+
};
|
|
1965
|
+
};
|
|
1966
|
+
/** @description Your API token is missing, invalid, or not authorized for this request. See `code` for the specific reason. */
|
|
1967
|
+
401: {
|
|
1968
|
+
headers: {
|
|
1969
|
+
[name: string]: unknown;
|
|
1970
|
+
};
|
|
1971
|
+
content: {
|
|
1972
|
+
"application/json": {
|
|
1973
|
+
error: string;
|
|
1974
|
+
/** @enum {string} */
|
|
1975
|
+
code: "missing_token" | "invalid_token" | "revoked_token" | "expired_token";
|
|
1976
|
+
meta: {
|
|
1977
|
+
[key: string]: (string | number | boolean) | (string | number | boolean)[] | {
|
|
1978
|
+
[key: string]: string | number | boolean | null;
|
|
1979
|
+
}[] | null;
|
|
1980
|
+
} | null;
|
|
1981
|
+
/**
|
|
1982
|
+
* @description Correlation id for this request, also returned in the `X-Request-Id` response header.
|
|
1983
|
+
* @example req_4f9a2c1e8b7d4f0a9c3e5d6b7a8f1e2d
|
|
1984
|
+
*/
|
|
1985
|
+
requestId?: string;
|
|
1726
1986
|
};
|
|
1727
1987
|
};
|
|
1728
1988
|
};
|
|
1729
1989
|
};
|
|
1730
|
-
put?: never;
|
|
1731
|
-
post?: never;
|
|
1732
|
-
delete?: never;
|
|
1733
|
-
options?: never;
|
|
1734
|
-
head?: never;
|
|
1735
|
-
patch?: never;
|
|
1736
|
-
trace?: never;
|
|
1737
|
-
};
|
|
1738
|
-
}
|
|
1739
|
-
interface components {
|
|
1740
|
-
schemas: {
|
|
1741
|
-
JobLinks: {
|
|
1742
|
-
/**
|
|
1743
|
-
* Format: uri
|
|
1744
|
-
* @description URL to a hosted page for this job. Shows a state-aware page (queued, running, failed) while the job is pre-terminal and the full HTML summary once it completes. The page does not auto-refresh today; reload to see the latest state. Returns `404` after retention expires.
|
|
1745
|
-
*/
|
|
1746
|
-
share: string;
|
|
1747
|
-
/**
|
|
1748
|
-
* Format: uri
|
|
1749
|
-
* @description URL to the manifest JSON for the latest attempt. Only present once the job reaches a terminal status. Returns `404` after retention expires. May change between responses if the job is retried.
|
|
1750
|
-
*/
|
|
1751
|
-
manifest?: string;
|
|
1752
|
-
};
|
|
1753
1990
|
};
|
|
1754
|
-
responses: never;
|
|
1755
|
-
parameters: never;
|
|
1756
|
-
requestBodies: never;
|
|
1757
|
-
headers: never;
|
|
1758
|
-
pathItems: never;
|
|
1759
1991
|
}
|
|
1760
1992
|
|
|
1761
1993
|
/** 200-response JSON body of an operation. */
|
|
@@ -1782,6 +2014,12 @@ type JobStatusResponse = Ok<paths['/v1/simc/jobs/{id}/status']['get']>;
|
|
|
1782
2014
|
type JobCancelResponse = Ok<paths['/v1/simc/jobs/{id}/cancel']['post']>;
|
|
1783
2015
|
type CreditBalance = Ok<paths['/v1/simc/credits']['get']>;
|
|
1784
2016
|
type CreditGrant = CreditBalance['grants'][number];
|
|
2017
|
+
/** A single artifact on a job result (`result.result.artifacts[]`). */
|
|
2018
|
+
type Artifact = NonNullable<JobResult['result']>['artifacts'][number];
|
|
2019
|
+
type ArtifactKind = Artifact['kind'];
|
|
2020
|
+
type ArtifactMimeType = Artifact['mimeType'];
|
|
2021
|
+
/** The `job.terminal` webhook payload, derived from the spec's schema. */
|
|
2022
|
+
type WebhookEvent = components['schemas']['WebhookEvent'];
|
|
1785
2023
|
|
|
1786
2024
|
/** The `artifacts` resource. */
|
|
1787
2025
|
declare class Artifacts {
|
|
@@ -1925,6 +2163,12 @@ declare class APIError<TStatus extends number | undefined = number | undefined,
|
|
|
1925
2163
|
/** Raw parsed JSON error body: escape hatch for unmapped fields. */
|
|
1926
2164
|
readonly error: object | undefined;
|
|
1927
2165
|
constructor(status: TStatus, body: object | undefined, message: string | undefined, headers: Headers | undefined);
|
|
2166
|
+
/**
|
|
2167
|
+
* Correlation id for the failed request (`req_...`), for support tickets.
|
|
2168
|
+
* Read from the `X-Request-Id` response header, falling back to the body's
|
|
2169
|
+
* `requestId` field.
|
|
2170
|
+
*/
|
|
2171
|
+
get requestId(): string | undefined;
|
|
1928
2172
|
private static makeMessage;
|
|
1929
2173
|
/**
|
|
1930
2174
|
* Maps a response to the most specific error class: status selects the base
|
|
@@ -2115,17 +2359,6 @@ declare class JobWaitTimeoutError extends SimmitError {
|
|
|
2115
2359
|
declare class WebhookVerificationError extends SimmitError {
|
|
2116
2360
|
}
|
|
2117
2361
|
|
|
2118
|
-
/** The one hand-written wire type: the webhook payload has no OpenAPI schema. */
|
|
2119
|
-
interface WebhookEvent {
|
|
2120
|
-
kind: 'job.terminal';
|
|
2121
|
-
version: 'v1';
|
|
2122
|
-
timestamp: string;
|
|
2123
|
-
payload: {
|
|
2124
|
-
id: string;
|
|
2125
|
-
statusReason: string | null;
|
|
2126
|
-
status: Extract<JobStatus, 'completed' | 'failed' | 'cancelled' | 'timed_out'>;
|
|
2127
|
-
};
|
|
2128
|
-
}
|
|
2129
2362
|
/**
|
|
2130
2363
|
* Verifies an `X-Simmit-Signature` header (`t=<unix>,v1=<hex>`, an HMAC-SHA256
|
|
2131
2364
|
* (timing-safe) over `${t}.${rawBody}` within a 300s default tolerance) and
|
|
@@ -2151,4 +2384,4 @@ type TerminalJobStatus = (typeof TERMINAL_JOB_STATUSES)[number];
|
|
|
2151
2384
|
/** True when `status` is terminal, i.e. the job has reached an end state. */
|
|
2152
2385
|
declare function isTerminal(status: JobStatus): status is TerminalJobStatus;
|
|
2153
2386
|
|
|
2154
|
-
export { APIConnectionError, APIConnectionTimeoutError, APIError, APIPromise, APIUserAbortError, type ArtifactUrl, Artifacts, AuthenticationError, type AuthenticationErrorCode, BadRequestError, BillingError, type ClientOptions, type CompletedJob, ConflictError, type CreditBalance, type CreditGrant, Credits, type GenericMeta, IdempotencyKeyReuseError, InsufficientCreditsError, InsufficientCreditsLiabilityError, type InsufficientCreditsLiabilityMeta, type InsufficientCreditsMeta, InternalServerError, InvalidProfileError, type Job, type JobCancelResponse, JobCancelledError, type JobCreateParams, type JobCreateResponse, type JobErrorCode, JobFailedError, JobNotCancellableError, type JobResult, type JobStatus, type JobStatusResponse, JobTimedOutError, JobUnsuccessfulError, type JobWaitOptions, JobWaitTimeoutError, Jobs, MaxActiveJobsError, type MetaValue, NotFoundError, RateLimitError, type RateLimitErrorCode, type RequestOptions, RequestTooLargeError, ResultNotReadyError, ResultUnavailableError, type ServiceUnavailableBody, ServiceUnavailableError, Simmit, SimmitError, TERMINAL_JOB_STATUSES, type TerminalJobStatus, UnprocessableEntityError, type WebhookEvent, WebhookVerificationError, Simmit as default, isTerminal, unwrapWebhook };
|
|
2387
|
+
export { APIConnectionError, APIConnectionTimeoutError, APIError, APIPromise, APIUserAbortError, type Artifact, type ArtifactKind, type ArtifactMimeType, type ArtifactUrl, Artifacts, AuthenticationError, type AuthenticationErrorCode, BadRequestError, BillingError, type ClientOptions, type CompletedJob, ConflictError, type CreditBalance, type CreditGrant, Credits, type GenericMeta, IdempotencyKeyReuseError, InsufficientCreditsError, InsufficientCreditsLiabilityError, type InsufficientCreditsLiabilityMeta, type InsufficientCreditsMeta, InternalServerError, InvalidProfileError, type Job, type JobCancelResponse, JobCancelledError, type JobCreateParams, type JobCreateResponse, type JobErrorCode, JobFailedError, JobNotCancellableError, type JobResult, type JobStatus, type JobStatusResponse, JobTimedOutError, JobUnsuccessfulError, type JobWaitOptions, JobWaitTimeoutError, Jobs, MaxActiveJobsError, type MetaValue, NotFoundError, RateLimitError, type RateLimitErrorCode, type RequestOptions, RequestTooLargeError, ResultNotReadyError, ResultUnavailableError, type ServiceUnavailableBody, ServiceUnavailableError, Simmit, SimmitError, TERMINAL_JOB_STATUSES, type TerminalJobStatus, UnprocessableEntityError, type WebhookEvent, WebhookVerificationError, Simmit as default, isTerminal, unwrapWebhook };
|