@nosana/api 2.18.0 → 2.20.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.
@@ -488,6 +488,22 @@ export interface paths {
488
488
  patch?: never;
489
489
  trace?: never;
490
490
  };
491
+ "/benchmarks/market-thresholds/simulate-impact": {
492
+ parameters: {
493
+ query?: never;
494
+ header?: never;
495
+ path?: never;
496
+ cookie?: never;
497
+ };
498
+ get?: never;
499
+ put?: never;
500
+ post: operations["postBenchmarksMarket-thresholdsSimulate-impact"];
501
+ delete?: never;
502
+ options?: never;
503
+ head?: never;
504
+ patch?: never;
505
+ trace?: never;
506
+ };
491
507
  "/benchmarks/market-thresholds/describe": {
492
508
  parameters: {
493
509
  query?: never;
@@ -1344,7 +1360,7 @@ export interface paths {
1344
1360
  patch?: never;
1345
1361
  trace?: never;
1346
1362
  };
1347
- "/reservations/": {
1363
+ "/reservations/requests": {
1348
1364
  parameters: {
1349
1365
  query?: never;
1350
1366
  header?: never;
@@ -1353,14 +1369,31 @@ export interface paths {
1353
1369
  };
1354
1370
  get?: never;
1355
1371
  put?: never;
1356
- /** Reserve queued nodes from a market for direct job assignment */
1357
- post: operations["postReservations"];
1372
+ /** Create, renew or replay a queued reservation request (filled now, or later by signed webhook) */
1373
+ post: operations["postReservationsRequests"];
1358
1374
  delete?: never;
1359
1375
  options?: never;
1360
1376
  head?: never;
1361
1377
  patch?: never;
1362
1378
  trace?: never;
1363
1379
  };
1380
+ "/reservations/requests/{key}": {
1381
+ parameters: {
1382
+ query?: never;
1383
+ header?: never;
1384
+ path?: never;
1385
+ cookie?: never;
1386
+ };
1387
+ get?: never;
1388
+ put?: never;
1389
+ post?: never;
1390
+ /** Cancel a reservation request and release the holds under its key */
1391
+ delete: operations["deleteReservationsRequestsByKey"];
1392
+ options?: never;
1393
+ head?: never;
1394
+ patch?: never;
1395
+ trace?: never;
1396
+ };
1364
1397
  "/reservations/requirements": {
1365
1398
  parameters: {
1366
1399
  query?: never;
@@ -1386,7 +1419,7 @@ export interface paths {
1386
1419
  path?: never;
1387
1420
  cookie?: never;
1388
1421
  };
1389
- /** List GPU models (name, VRAM) with how many hosts have them and how many are queued */
1422
+ /** List GPU models (name, VRAM) in the open markets, with host counts and the hourly price range there */
1390
1423
  get: operations["getReservationsGpus"];
1391
1424
  put?: never;
1392
1425
  post?: never;
@@ -1405,7 +1438,7 @@ export interface paths {
1405
1438
  };
1406
1439
  get?: never;
1407
1440
  put?: never;
1408
- /** Dry run: queued nodes across all markets that satisfy the requirements */
1441
+ /** Dry run: queued nodes a deployment without a market could get for the requirements, across the markets it may post to */
1409
1442
  post: operations["postReservationsAvailable"];
1410
1443
  delete?: never;
1411
1444
  options?: never;
@@ -2958,6 +2991,89 @@ export interface operations {
2958
2991
  };
2959
2992
  };
2960
2993
  };
2994
+ "postBenchmarksMarket-thresholdsSimulate-impact": {
2995
+ parameters: {
2996
+ query?: never;
2997
+ header: {
2998
+ authorization: string;
2999
+ };
3000
+ path?: never;
3001
+ cookie?: never;
3002
+ };
3003
+ requestBody: {
3004
+ content: {
3005
+ "application/json": {
3006
+ thresholdId: number;
3007
+ marketAddresses: (string | null)[];
3008
+ jsonLogic: {
3009
+ [key: string]: unknown;
3010
+ };
3011
+ interval?: (string | null) | null;
3012
+ isOptional?: boolean;
3013
+ isGating?: boolean;
3014
+ };
3015
+ "multipart/form-data": {
3016
+ thresholdId: number;
3017
+ marketAddresses: (string | null)[];
3018
+ jsonLogic: {
3019
+ [key: string]: unknown;
3020
+ };
3021
+ interval?: (string | null) | null;
3022
+ isOptional?: boolean;
3023
+ isGating?: boolean;
3024
+ };
3025
+ "text/plain": {
3026
+ thresholdId: number;
3027
+ marketAddresses: (string | null)[];
3028
+ jsonLogic: {
3029
+ [key: string]: unknown;
3030
+ };
3031
+ interval?: (string | null) | null;
3032
+ isOptional?: boolean;
3033
+ isGating?: boolean;
3034
+ };
3035
+ };
3036
+ };
3037
+ responses: {
3038
+ 200: {
3039
+ headers: {
3040
+ [name: string]: unknown;
3041
+ };
3042
+ content: {
3043
+ "application/json": {
3044
+ evaluatedNodes: number;
3045
+ nodes: {
3046
+ nodeAddress: string;
3047
+ marketAddress: string;
3048
+ assignedMarket: (string | null) | null;
3049
+ reason: "missingMetric" | "noRecentData" | "expired" | "belowRequirement";
3050
+ measured: ((number | string | boolean) | null) | null;
3051
+ }[];
3052
+ };
3053
+ "multipart/form-data": {
3054
+ evaluatedNodes: number;
3055
+ nodes: {
3056
+ nodeAddress: string;
3057
+ marketAddress: string;
3058
+ assignedMarket: (string | null) | null;
3059
+ reason: "missingMetric" | "noRecentData" | "expired" | "belowRequirement";
3060
+ measured: ((number | string | boolean) | null) | null;
3061
+ }[];
3062
+ };
3063
+ "text/plain": {
3064
+ evaluatedNodes: number;
3065
+ nodes: {
3066
+ nodeAddress: string;
3067
+ marketAddress: string;
3068
+ assignedMarket: (string | null) | null;
3069
+ reason: "missingMetric" | "noRecentData" | "expired" | "belowRequirement";
3070
+ measured: ((number | string | boolean) | null) | null;
3071
+ }[];
3072
+ };
3073
+ };
3074
+ };
3075
+ };
3076
+ };
2961
3077
  "postBenchmarksMarket-thresholdsDescribe": {
2962
3078
  parameters: {
2963
3079
  query?: never;
@@ -10148,7 +10264,7 @@ export interface operations {
10148
10264
  };
10149
10265
  };
10150
10266
  };
10151
- postReservations: {
10267
+ postReservationsRequests: {
10152
10268
  parameters: {
10153
10269
  query?: never;
10154
10270
  header?: {
@@ -10160,28 +10276,37 @@ export interface operations {
10160
10276
  requestBody: {
10161
10277
  content: {
10162
10278
  "application/json": {
10163
- market: string;
10164
- count?: string | number;
10165
- idempotencyKey?: string;
10279
+ key: string;
10280
+ market?: string;
10166
10281
  requirements?: {
10167
- [key: string]: number | string | boolean;
10282
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10168
10283
  };
10284
+ count: string | number;
10285
+ ttlSeconds?: string | number;
10286
+ maxUsdPerHour?: number;
10287
+ maxJobPrice?: string | number;
10169
10288
  };
10170
10289
  "multipart/form-data": {
10171
- market: string;
10172
- count?: string | number;
10173
- idempotencyKey?: string;
10290
+ key: string;
10291
+ market?: string;
10174
10292
  requirements?: {
10175
- [key: string]: number | string | boolean;
10293
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10176
10294
  };
10295
+ count: string | number;
10296
+ ttlSeconds?: string | number;
10297
+ maxUsdPerHour?: number;
10298
+ maxJobPrice?: string | number;
10177
10299
  };
10178
10300
  "text/plain": {
10179
- market: string;
10180
- count?: string | number;
10181
- idempotencyKey?: string;
10301
+ key: string;
10302
+ market?: string;
10182
10303
  requirements?: {
10183
- [key: string]: number | string | boolean;
10304
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10184
10305
  };
10306
+ count: string | number;
10307
+ ttlSeconds?: string | number;
10308
+ maxUsdPerHour?: number;
10309
+ maxJobPrice?: string | number;
10185
10310
  };
10186
10311
  };
10187
10312
  };
@@ -10192,31 +10317,49 @@ export interface operations {
10192
10317
  };
10193
10318
  content: {
10194
10319
  "application/json": {
10320
+ key: string;
10321
+ /**
10322
+ * @default waiting
10323
+ * @enum {string}
10324
+ */
10325
+ status: "waiting" | "fulfilled" | "cancelled" | "expired";
10195
10326
  requested: number;
10196
- reserved: number;
10197
- expiresAt: ((Record<string, never> | string | number) | null) | null;
10198
10327
  nodes: {
10199
10328
  nodeAddress: string;
10200
10329
  market: string;
10201
10330
  }[];
10331
+ holdExpiresAt: ((Record<string, never> | string | number) | null) | null;
10332
+ expiresAt: Record<string, never> | string | number;
10202
10333
  };
10203
10334
  "multipart/form-data": {
10335
+ key: string;
10336
+ /**
10337
+ * @default waiting
10338
+ * @enum {string}
10339
+ */
10340
+ status: "waiting" | "fulfilled" | "cancelled" | "expired";
10204
10341
  requested: number;
10205
- reserved: number;
10206
- expiresAt: ((Record<string, never> | string | number) | null) | null;
10207
10342
  nodes: {
10208
10343
  nodeAddress: string;
10209
10344
  market: string;
10210
10345
  }[];
10346
+ holdExpiresAt: ((Record<string, never> | string | number) | null) | null;
10347
+ expiresAt: Record<string, never> | string | number;
10211
10348
  };
10212
10349
  "text/plain": {
10350
+ key: string;
10351
+ /**
10352
+ * @default waiting
10353
+ * @enum {string}
10354
+ */
10355
+ status: "waiting" | "fulfilled" | "cancelled" | "expired";
10213
10356
  requested: number;
10214
- reserved: number;
10215
- expiresAt: ((Record<string, never> | string | number) | null) | null;
10216
10357
  nodes: {
10217
10358
  nodeAddress: string;
10218
10359
  market: string;
10219
10360
  }[];
10361
+ holdExpiresAt: ((Record<string, never> | string | number) | null) | null;
10362
+ expiresAt: Record<string, never> | string | number;
10220
10363
  };
10221
10364
  };
10222
10365
  };
@@ -10236,6 +10379,22 @@ export interface operations {
10236
10379
  };
10237
10380
  };
10238
10381
  };
10382
+ 402: {
10383
+ headers: {
10384
+ [name: string]: unknown;
10385
+ };
10386
+ content: {
10387
+ "application/json": {
10388
+ message: string;
10389
+ };
10390
+ "multipart/form-data": {
10391
+ message: string;
10392
+ };
10393
+ "text/plain": {
10394
+ message: string;
10395
+ };
10396
+ };
10397
+ };
10239
10398
  404: {
10240
10399
  headers: {
10241
10400
  [name: string]: unknown;
@@ -10302,6 +10461,71 @@ export interface operations {
10302
10461
  };
10303
10462
  };
10304
10463
  };
10464
+ deleteReservationsRequestsByKey: {
10465
+ parameters: {
10466
+ query?: never;
10467
+ header?: {
10468
+ authorization?: string;
10469
+ };
10470
+ path: {
10471
+ key: string;
10472
+ };
10473
+ cookie?: never;
10474
+ };
10475
+ requestBody?: never;
10476
+ responses: {
10477
+ 200: {
10478
+ headers: {
10479
+ [name: string]: unknown;
10480
+ };
10481
+ content: {
10482
+ "application/json": {
10483
+ key: string;
10484
+ /**
10485
+ * @default cancelled
10486
+ * @enum {string}
10487
+ */
10488
+ status: "cancelled" | "fulfilled" | "expired";
10489
+ released: number;
10490
+ };
10491
+ "multipart/form-data": {
10492
+ key: string;
10493
+ /**
10494
+ * @default cancelled
10495
+ * @enum {string}
10496
+ */
10497
+ status: "cancelled" | "fulfilled" | "expired";
10498
+ released: number;
10499
+ };
10500
+ "text/plain": {
10501
+ key: string;
10502
+ /**
10503
+ * @default cancelled
10504
+ * @enum {string}
10505
+ */
10506
+ status: "cancelled" | "fulfilled" | "expired";
10507
+ released: number;
10508
+ };
10509
+ };
10510
+ };
10511
+ 401: {
10512
+ headers: {
10513
+ [name: string]: unknown;
10514
+ };
10515
+ content: {
10516
+ "application/json": {
10517
+ message: string;
10518
+ };
10519
+ "multipart/form-data": {
10520
+ message: string;
10521
+ };
10522
+ "text/plain": {
10523
+ message: string;
10524
+ };
10525
+ };
10526
+ };
10527
+ };
10528
+ };
10305
10529
  getReservationsRequirements: {
10306
10530
  parameters: {
10307
10531
  query?: {
@@ -10422,19 +10646,19 @@ export interface operations {
10422
10646
  "application/json": {
10423
10647
  metrics?: string[];
10424
10648
  requirements?: {
10425
- [key: string]: number | string | boolean;
10649
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10426
10650
  };
10427
10651
  };
10428
10652
  "multipart/form-data": {
10429
10653
  metrics?: string[];
10430
10654
  requirements?: {
10431
- [key: string]: number | string | boolean;
10655
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10432
10656
  };
10433
10657
  };
10434
10658
  "text/plain": {
10435
10659
  metrics?: string[];
10436
10660
  requirements?: {
10437
- [key: string]: number | string | boolean;
10661
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10438
10662
  };
10439
10663
  };
10440
10664
  };
@@ -10575,6 +10799,10 @@ export interface operations {
10575
10799
  available: number;
10576
10800
  working: number;
10577
10801
  markets: string[];
10802
+ price: ({
10803
+ minUsdPerHour: number;
10804
+ maxUsdPerHour: number;
10805
+ } | null) | null;
10578
10806
  }[];
10579
10807
  };
10580
10808
  "multipart/form-data": {
@@ -10585,6 +10813,10 @@ export interface operations {
10585
10813
  available: number;
10586
10814
  working: number;
10587
10815
  markets: string[];
10816
+ price: ({
10817
+ minUsdPerHour: number;
10818
+ maxUsdPerHour: number;
10819
+ } | null) | null;
10588
10820
  }[];
10589
10821
  };
10590
10822
  "text/plain": {
@@ -10595,6 +10827,10 @@ export interface operations {
10595
10827
  available: number;
10596
10828
  working: number;
10597
10829
  markets: string[];
10830
+ price: ({
10831
+ minUsdPerHour: number;
10832
+ maxUsdPerHour: number;
10833
+ } | null) | null;
10598
10834
  }[];
10599
10835
  };
10600
10836
  };
@@ -10612,17 +10848,17 @@ export interface operations {
10612
10848
  content: {
10613
10849
  "application/json": {
10614
10850
  requirements?: {
10615
- [key: string]: number | string | boolean;
10851
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10616
10852
  };
10617
10853
  };
10618
10854
  "multipart/form-data": {
10619
10855
  requirements?: {
10620
- [key: string]: number | string | boolean;
10856
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10621
10857
  };
10622
10858
  };
10623
10859
  "text/plain": {
10624
10860
  requirements?: {
10625
- [key: string]: number | string | boolean;
10861
+ [key: string]: (number | string | boolean) | (number | string | boolean)[];
10626
10862
  };
10627
10863
  };
10628
10864
  };