@runpod/typescript-api-sdk 0.2.0 → 0.5.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/dist/index.d.cts CHANGED
@@ -5,6 +5,26 @@ import { Client } from 'openapi-fetch';
5
5
  * Do not make direct changes to the file.
6
6
  */
7
7
  interface paths {
8
+ "/v2/organization": {
9
+ parameters: {
10
+ query?: never;
11
+ header?: never;
12
+ path?: never;
13
+ cookie?: never;
14
+ };
15
+ /**
16
+ * Get your current organization
17
+ * @description Returns the authenticated caller's current organization. Organization context comes from the caller's membership; no organization selector is required. Returns 404 when the caller does not belong to an organization, or 403 when organizations are unavailable to the caller.
18
+ */
19
+ get: operations["getOrganization"];
20
+ put?: never;
21
+ post?: never;
22
+ delete?: never;
23
+ options?: never;
24
+ head?: never;
25
+ patch?: never;
26
+ trace?: never;
27
+ };
8
28
  "/v2/account/ssh-keys": {
9
29
  parameters: {
10
30
  query?: never;
@@ -29,6 +49,52 @@ interface paths {
29
49
  patch?: never;
30
50
  trace?: never;
31
51
  };
52
+ "/v2/organization/users": {
53
+ parameters: {
54
+ query?: never;
55
+ header?: never;
56
+ path?: never;
57
+ cookie?: never;
58
+ };
59
+ /**
60
+ * List organization members
61
+ * @description Returns every member of the authenticated caller's organization with the role each holds. Any member can read the roster. The list is complete and takes no pagination parameters. Returns 404 when the caller does not belong to an organization, or 403 when organizations are unavailable to the caller.
62
+ */
63
+ get: operations["listOrganizationUsers"];
64
+ put?: never;
65
+ post?: never;
66
+ delete?: never;
67
+ options?: never;
68
+ head?: never;
69
+ patch?: never;
70
+ trace?: never;
71
+ };
72
+ "/v2/organization/users/{id}": {
73
+ parameters: {
74
+ query?: never;
75
+ header?: never;
76
+ path: {
77
+ /**
78
+ * @description User identifier
79
+ * @example user_id_abc_123
80
+ */
81
+ id: string;
82
+ };
83
+ cookie?: never;
84
+ };
85
+ /**
86
+ * Get an organization member
87
+ * @description Returns one member of the authenticated caller's organization by user ID, with the role they hold. Any member can read it. A user who is not a member, including one from another organization, returns 404. Returns 404 when the caller does not belong to an organization, or 403 when organizations are unavailable to the caller.
88
+ */
89
+ get: operations["getOrganizationUser"];
90
+ put?: never;
91
+ post?: never;
92
+ delete?: never;
93
+ options?: never;
94
+ head?: never;
95
+ patch?: never;
96
+ trace?: never;
97
+ };
32
98
  "/v2/account/secrets": {
33
99
  parameters: {
34
100
  query?: never;
@@ -123,10 +189,9 @@ interface paths {
123
189
  * them (each carries a non-null `cluster` membership block).
124
190
  *
125
191
  * Results are cursor-paginated newest-first; an omitted `limit`
126
- * defaults to 1000. When cluster member pods are excluded, the
127
- * exclusion applies to each page after it is cut, so a page may hold
128
- * fewer than `limit` pods — follow `pagination.nextCursor` until
129
- * `hasNextPage` is false rather than counting items.
192
+ * defaults to 1000. The cluster-member exclusion is applied before the
193
+ * page is cut, so a page holds `limit` pods whenever that many remain.
194
+ * Follow `pagination.nextCursor` until `hasNextPage` is false.
130
195
  */
131
196
  get: operations["listPods"];
132
197
  put?: never;
@@ -188,8 +253,9 @@ interface paths {
188
253
  * | `429` | Rate limited. | Back off using `Retry-After`, then resume. |
189
254
  * | `5xx` | Transient upstream failure. | Retry the same candidate with backoff. |
190
255
  *
191
- * Requests larger than 102400 bytes receive `413` before authentication
192
- * or processing. Reduce the serialized JSON request body and retry.
256
+ * Requests larger than 102400 bytes receive `413` after authentication
257
+ * and rate limiting, before deployment processing. Reduce the serialized
258
+ * JSON request body and retry.
193
259
  *
194
260
  * This limit also applies to the deployment request built from your input
195
261
  * and any referenced template. A small request can therefore receive `413`
@@ -350,7 +416,9 @@ interface paths {
350
416
  };
351
417
  /**
352
418
  * List clusters
353
- * @description Returns all clusters owned by the authenticated user.
419
+ * @description Returns clusters owned by the authenticated user, cursor-paginated
420
+ * newest-first; an omitted `limit` defaults to 1000. Follow
421
+ * `pagination.nextCursor` until `hasNextPage` is false.
354
422
  */
355
423
  get: operations["listClusters"];
356
424
  put?: never;
@@ -536,8 +604,9 @@ interface paths {
536
604
  *
537
605
  * Mutable fields: `name`, `gpu`, `cpu`, `workers` (`min`/`max`),
538
606
  * `scaling` (`type`/`value`/`idleTimeout`), `dataCenterIds`,
539
- * `networkVolumes`, `timeout`, `flashboot`, and the container settings
540
- * (`image`, `args`, `disk`, `ports`, `env`, `registry`).
607
+ * `networkVolumes`, `timeout`, `flashboot`, and the
608
+ * container settings (`image`, `args`, `disk`, `ports`, `env`,
609
+ * `registry`).
541
610
  *
542
611
  * Omitted compute preserves the current selection. `cpu` completely
543
612
  * replaces a CPU endpoint's selection; compute family is immutable.
@@ -814,7 +883,9 @@ interface paths {
814
883
  };
815
884
  /**
816
885
  * List network volumes
817
- * @description Returns all network volumes owned by the authenticated user.
886
+ * @description Returns network volumes owned by the authenticated user,
887
+ * cursor-paginated newest-first; an omitted `limit` defaults to 1000.
888
+ * Follow `pagination.nextCursor` until `hasNextPage` is false.
818
889
  */
819
890
  get: operations["listNetworkVolumes"];
820
891
  put?: never;
@@ -873,6 +944,75 @@ interface paths {
873
944
  patch: operations["updateNetworkVolume"];
874
945
  trace?: never;
875
946
  };
947
+ "/v2/global-volumes": {
948
+ parameters: {
949
+ query?: never;
950
+ header?: never;
951
+ path?: never;
952
+ cookie?: never;
953
+ };
954
+ /**
955
+ * List global volumes
956
+ * @description Returns global volumes owned by the authenticated user,
957
+ * cursor-paginated newest-first; an omitted `limit` defaults to 1000.
958
+ * Follow `pagination.nextCursor` until `hasNextPage` is false.
959
+ */
960
+ get: operations["listGlobalVolumes"];
961
+ put?: never;
962
+ /**
963
+ * Create a global volume
964
+ * @description Provisions a new global volume — storage that mounts into workloads
965
+ * in any data center. Only a `name` is required; storage is provisioned
966
+ * for you. Accounts have a cap on how many global volumes they can
967
+ * hold; creating one past it fails with `400`.
968
+ *
969
+ * Returns `201` with the created global volume, including its assigned
970
+ * `id`.
971
+ */
972
+ post: operations["createGlobalVolume"];
973
+ delete?: never;
974
+ options?: never;
975
+ head?: never;
976
+ patch?: never;
977
+ trace?: never;
978
+ };
979
+ "/v2/global-volumes/{id}": {
980
+ parameters: {
981
+ query?: never;
982
+ header?: never;
983
+ path: {
984
+ /**
985
+ * @description Global volume identifier
986
+ * @example gsb_abc
987
+ */
988
+ id: string;
989
+ };
990
+ cookie?: never;
991
+ };
992
+ /**
993
+ * Get a global volume
994
+ * @description Returns a single global volume by ID.
995
+ */
996
+ get: operations["getGlobalVolume"];
997
+ put?: never;
998
+ post?: never;
999
+ /**
1000
+ * Delete a global volume
1001
+ * @description Permanently deletes a global volume and its stored data. Fails with
1002
+ * `409` while the volume is still mounted: terminate every pod that
1003
+ * mounts it (stopped pods count) and detach it from every serverless
1004
+ * endpoint first. Nothing is detached or terminated on your behalf.
1005
+ */
1006
+ delete: operations["deleteGlobalVolume"];
1007
+ options?: never;
1008
+ head?: never;
1009
+ /**
1010
+ * Update a global volume
1011
+ * @description Updates mutable fields on a global volume. Only provided fields are changed.
1012
+ */
1013
+ patch: operations["updateGlobalVolume"];
1014
+ trace?: never;
1015
+ };
876
1016
  "/v2/registries": {
877
1017
  parameters: {
878
1018
  query?: never;
@@ -1128,6 +1268,26 @@ interface paths {
1128
1268
  patch?: never;
1129
1269
  trace?: never;
1130
1270
  };
1271
+ "/v2/audit-logs": {
1272
+ parameters: {
1273
+ query?: never;
1274
+ header?: never;
1275
+ path?: never;
1276
+ cookie?: never;
1277
+ };
1278
+ /**
1279
+ * List audit logs
1280
+ * @description Returns the account's audit trail, newest first, cursor-paginated; an omitted `limit` defaults to 200. Each entry records who acted (`actorId`, `email`), what they did (`action`), to which resource (`resourceType`, `resourceId`), and the details of the change (`value`). When the caller belongs to an organization the trail is the organization's, and `actorIds` narrows it to specific members; otherwise it is the trail of the account the request acts for. Filters combine with AND. Entries older than the account's audit log retention window are not returned, and an account whose plan does not include audit logs is answered 403. Follow `pagination.nextCursor` until `hasNextPage` is false.
1281
+ */
1282
+ get: operations["listAuditLogs"];
1283
+ put?: never;
1284
+ post?: never;
1285
+ delete?: never;
1286
+ options?: never;
1287
+ head?: never;
1288
+ patch?: never;
1289
+ trace?: never;
1290
+ };
1131
1291
  "/v2/billing": {
1132
1292
  parameters: {
1133
1293
  query?: never;
@@ -1251,6 +1411,51 @@ interface paths {
1251
1411
  }
1252
1412
  interface components {
1253
1413
  schemas: {
1414
+ /** @description The authenticated caller's current organization. */
1415
+ Organization: {
1416
+ /**
1417
+ * @description Organization ID.
1418
+ * @example org_id_abc_123
1419
+ */
1420
+ id: string;
1421
+ /**
1422
+ * @description Organization name.
1423
+ * @example my-org
1424
+ */
1425
+ name: string;
1426
+ };
1427
+ /** @description An organization role, by ID. */
1428
+ OrganizationRoleRef: {
1429
+ /**
1430
+ * @description Role ID. A built-in role's ID is `builtin:` followed by its name; a custom role carries its own ID.
1431
+ * @example builtin:dev
1432
+ */
1433
+ id: string;
1434
+ type: components["schemas"]["OrganizationRoleType"];
1435
+ };
1436
+ /**
1437
+ * @description Who defines the role. `builtin` roles are Runpod's: `builtin:admin`, `builtin:dev`, `builtin:billing` and `builtin:basic`. A `custom` role is one the organization defined, under its own ID.
1438
+ * @enum {string}
1439
+ */
1440
+ OrganizationRoleType: "builtin" | "custom";
1441
+ /** @description A member of the caller's organization. `id` is the member's user ID. */
1442
+ OrganizationUser: {
1443
+ /**
1444
+ * @description User ID.
1445
+ * @example user_id_abc_123
1446
+ */
1447
+ id: string;
1448
+ /**
1449
+ * @description The member's email address. Null for an account that has none.
1450
+ * @example member@example.com
1451
+ */
1452
+ email: string | null;
1453
+ role: components["schemas"]["OrganizationRoleRef"];
1454
+ };
1455
+ ListOrganizationUsersResponse: {
1456
+ /** @description Every member of the organization, in upstream's order. */
1457
+ users: components["schemas"]["OrganizationUser"][];
1458
+ };
1254
1459
  /** @description Cursor-pagination metadata, uniform across list endpoints. Every response carries it: follow `nextCursor` while `hasNextPage` is true to walk the full result set. */
1255
1460
  Pagination: {
1256
1461
  /**
@@ -1336,9 +1541,34 @@ interface components {
1336
1541
  registry?: string | null;
1337
1542
  };
1338
1543
  /**
1339
- * @description Storage mounts attached to a pod. At most one of `persistent` or
1340
- * `network` may be set: sending both is rejected with 400. The
1341
- * `network` field is an array for forward compatibility with
1544
+ * @description The mount kinds every resource that takes `mounts` shares. At most one
1545
+ * of `persistent` or `network` may be set: combining them is rejected
1546
+ * with 400. The `network` field is an array for forward compatibility
1547
+ * with multi-network-volume support; `maxItems` is 1.
1548
+ */
1549
+ BaseMounts: {
1550
+ persistent?: components["schemas"]["PersistentMount"];
1551
+ network?: components["schemas"]["NetworkMount"][];
1552
+ };
1553
+ /**
1554
+ * @description Storage mounts for a cluster create: `persistent` or `network`, not
1555
+ * both. Clusters cannot mount global volumes, so `global` is rejected
1556
+ * with 422. A mount `path` must not be empty (rejected with 422):
1557
+ * upstream reads an empty path as unset and would mount the volume at
1558
+ * the template's path, or `/workspace` without a template.
1559
+ */
1560
+ ClusterMounts: components["schemas"]["BaseMounts"] & {
1561
+ persistent?: {
1562
+ path?: string;
1563
+ };
1564
+ network?: {
1565
+ path?: string;
1566
+ }[];
1567
+ };
1568
+ /**
1569
+ * @description Storage mounts attached to a pod. `persistent` is mutually exclusive
1570
+ * with both `network` and `global`: combining them is rejected with 400.
1571
+ * The `network` field is an array for forward compatibility with
1342
1572
  * multi-network-volume support; `maxItems` is 1.
1343
1573
  *
1344
1574
  * PATCH semantics:
@@ -1356,9 +1586,17 @@ interface components {
1356
1586
  * include the full schema (`size` + `path` for persistent,
1357
1587
  * `volumeId` + `path` for network). Missing required fields → 422.
1358
1588
  */
1359
- Mounts: {
1360
- persistent?: components["schemas"]["PersistentMount"];
1361
- network?: components["schemas"]["NetworkMount"][];
1589
+ Mounts: components["schemas"]["BaseMounts"] & {
1590
+ /**
1591
+ * @description At most one global volume, on GPU and CPU pods, with no data
1592
+ * center constraint. Combinable with `network` but not with
1593
+ * `persistent` (rejected with 400): upstream drops a persistent
1594
+ * disk whenever a volume is attached. Same PATCH rules as
1595
+ * `network`: global mounts are fixed at create, `global: []` is
1596
+ * rejected with 400, and `volumeId` is immutable; only `path` may
1597
+ * change.
1598
+ */
1599
+ global?: components["schemas"]["GlobalMount"][];
1362
1600
  };
1363
1601
  /**
1364
1602
  * @description Storage mounts attached to a template. Templates support a single
@@ -1405,6 +1643,23 @@ interface components {
1405
1643
  */
1406
1644
  path: string;
1407
1645
  };
1646
+ /**
1647
+ * @description Reference to a GlobalVolume. Usage-billed, so it has no size. The
1648
+ * underlying `volumeId` is immutable post-create; the mount `path` may be
1649
+ * changed via PATCH.
1650
+ */
1651
+ GlobalMount: {
1652
+ /**
1653
+ * @description ID of an existing GlobalVolume.
1654
+ * @example gsb_abc
1655
+ */
1656
+ volumeId: string;
1657
+ /**
1658
+ * @description Mount path inside the container. Optional on create, where a default is chosen for you; a PATCH that omits it leaves the path unchanged.
1659
+ * @example /data
1660
+ */
1661
+ path?: string;
1662
+ };
1408
1663
  BaseGpuConfig: {
1409
1664
  /**
1410
1665
  * @description GPU type identifier
@@ -1886,11 +2141,13 @@ interface components {
1886
2141
  */
1887
2142
  dataCenterIds: string[];
1888
2143
  /**
2144
+ * @deprecated
1889
2145
  * @example [
1890
2146
  * "vol_abc"
1891
2147
  * ]
1892
2148
  */
1893
2149
  networkVolumes: string[];
2150
+ mounts: components["schemas"]["EndpointMounts"];
1894
2151
  /**
1895
2152
  * @description Per-request execution timeout in milliseconds
1896
2153
  * @example 300000
@@ -2180,7 +2437,12 @@ interface components {
2180
2437
  dataCenterIds?: string[];
2181
2438
  /** @default OFF */
2182
2439
  flashboot?: components["schemas"]["FlashBoot"];
2440
+ /**
2441
+ * @deprecated
2442
+ * @description Network volume IDs.
2443
+ */
2183
2444
  networkVolumes?: string[];
2445
+ mounts?: components["schemas"]["EndpointMountsInput"];
2184
2446
  /**
2185
2447
  * @description ID of a serverless template to base this endpoint on. The
2186
2448
  * template is resolved at create time into the same container
@@ -2224,7 +2486,12 @@ interface components {
2224
2486
  flashboot?: components["schemas"]["FlashBoot"];
2225
2487
  gpu?: components["schemas"]["UpdateEndpointGpuConfig"];
2226
2488
  name?: string;
2489
+ /**
2490
+ * @deprecated
2491
+ * @description Network volume IDs. Pass `[]` to detach.
2492
+ */
2227
2493
  networkVolumes?: string[];
2494
+ mounts?: components["schemas"]["EndpointMountsInput"];
2228
2495
  scaling?: components["schemas"]["EndpointScaling"];
2229
2496
  /**
2230
2497
  * @description ID of a serverless template whose container settings are
@@ -2360,7 +2627,7 @@ interface components {
2360
2627
  PodSsh: {
2361
2628
  /** @description Connection through Runpod's SSH proxy. Works without exposing a port and without a public IP, but carries an interactive shell only — SCP, SFTP, rsync, and port forwarding need `direct`. Null until the pod has a machine assignment. */
2362
2629
  proxy: components["schemas"]["PodSshEndpoint"] | null;
2363
- /** @description Connection straight to the pod's sshd over its published `22/tcp` mapping. Supports the full SSH feature set. Null unless `22/tcp` is in `ports` and the running pod has been assigned a public port for it — so it is absent while the pod is provisioning or stopped. */
2630
+ /** @description Connection straight to the pod's sshd over its published `22/tcp` mapping. Supports the full SSH feature set. Null unless `22/tcp` is in `ports` and the running pod has been assigned a public port for it — so it is usually absent while the pod is provisioning or stopped. It can still appear on a stopped pod, so check that `status` is `RUNNING` before connecting. Also null when listing pods with `GET /v2/pods`; fetch a single pod by ID to obtain the live mapping. */
2364
2631
  direct: components["schemas"]["PodSshEndpoint"] | null;
2365
2632
  };
2366
2633
  SshKeys: {
@@ -2520,7 +2787,7 @@ interface components {
2520
2787
  template: string | null;
2521
2788
  /**
2522
2789
  * Format: float
2523
- * @description Current cost in USD per hour (0.0 when EXITED or TERMINATED)
2790
+ * @description The pod's hourly compute rate in USD. It's returned in every status, including `EXITED`, so it isn't what you're paying right now: a stopped pod isn't billed for compute, only for its volume disk.
2524
2791
  * @example 0.35
2525
2792
  */
2526
2793
  cost: number;
@@ -2530,7 +2797,7 @@ interface components {
2530
2797
  */
2531
2798
  locked: boolean;
2532
2799
  globalNetworking: components["schemas"]["PodGlobalNetworking"];
2533
- /** @description Live utilization metrics. Null when the pod is not RUNNING. */
2800
+ /** @description Live utilization metrics. Null when the pod is not RUNNING, and when listing pods with `GET /v2/pods`; fetch a single pod by ID to obtain metrics. */
2534
2801
  runtime: components["schemas"]["PodRuntime"] | null;
2535
2802
  /**
2536
2803
  * Format: date-time
@@ -2788,7 +3055,9 @@ interface components {
2788
3055
  * env, ports) and the container registry credential for private
2789
3056
  * images — the only private-image path for clusters. Mutually
2790
3057
  * exclusive with `image`, `args`, `entrypoint`, `cmd`, `disk`,
2791
- * `env`, `ports`, and `mounts` (rejected with 400). The cluster
3058
+ * `env`, and `ports` (rejected with 400). `mounts` combines with
3059
+ * it: the volume in `mounts` is attached to every member pod,
3060
+ * overriding the template's volume settings. The cluster
2792
3061
  * retains the link: the `template` response field is set. Must be
2793
3062
  * a non-serverless pod template accessible to the caller.
2794
3063
  * @example 30zmvf89kd
@@ -2803,7 +3072,7 @@ interface components {
2803
3072
  * ]
2804
3073
  */
2805
3074
  dataCenterIds?: string[];
2806
- mounts?: components["schemas"]["Mounts"];
3075
+ mounts?: components["schemas"]["ClusterMounts"];
2807
3076
  /**
2808
3077
  * @description Start Jupyter on every member pod, as on pod create.
2809
3078
  * @default false
@@ -2826,6 +3095,7 @@ interface components {
2826
3095
  };
2827
3096
  ListClustersResponse: {
2828
3097
  clusters: components["schemas"]["Cluster"][];
3098
+ pagination: components["schemas"]["Pagination"];
2829
3099
  };
2830
3100
  Template: {
2831
3101
  /**
@@ -3047,6 +3317,79 @@ interface components {
3047
3317
  };
3048
3318
  ListNetworkVolumesResponse: {
3049
3319
  networkVolumes: components["schemas"]["NetworkVolume"][];
3320
+ pagination: components["schemas"]["Pagination"];
3321
+ };
3322
+ GlobalVolume: {
3323
+ /**
3324
+ * @description Unique global volume identifier
3325
+ * @example gsb_abc
3326
+ */
3327
+ id: string;
3328
+ /**
3329
+ * @description Human-readable name (not required to be unique)
3330
+ * @example training-data
3331
+ */
3332
+ name: string;
3333
+ /**
3334
+ * Format: date-time
3335
+ * @description When the volume was created
3336
+ */
3337
+ createdAt: string;
3338
+ /**
3339
+ * @description ID of the user who created the volume, if known
3340
+ * @example user_123
3341
+ */
3342
+ createdByUserId: string | null;
3343
+ };
3344
+ CreateGlobalVolumeRequest: {
3345
+ /**
3346
+ * @description Human-readable name, 1–191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.
3347
+ * @example training-data
3348
+ */
3349
+ name: string;
3350
+ };
3351
+ /**
3352
+ * @description Only the provided fields are updated. At least one field must be
3353
+ * present; an empty body is rejected.
3354
+ */
3355
+ UpdateGlobalVolumeRequest: {
3356
+ /**
3357
+ * @description New human-readable name, 1–191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.
3358
+ * @example renamed-volume
3359
+ */
3360
+ name?: string;
3361
+ };
3362
+ ListGlobalVolumesResponse: {
3363
+ globalVolumes: components["schemas"]["GlobalVolume"][];
3364
+ pagination: components["schemas"]["Pagination"];
3365
+ };
3366
+ /** @description A volume mounted on every worker, always at `/runpod-volume`. */
3367
+ EndpointMount: {
3368
+ /**
3369
+ * @description ID of a NetworkVolume (under `network`) or GlobalVolume (under `global`).
3370
+ * @example vol_abc
3371
+ */
3372
+ volumeId: string;
3373
+ };
3374
+ /** @description Volumes mounted on every worker of the endpoint. */
3375
+ EndpointMounts: {
3376
+ network: components["schemas"]["EndpointMount"][];
3377
+ global: components["schemas"]["EndpointMount"][];
3378
+ };
3379
+ /**
3380
+ * @description Volumes to mount on the endpoint's workers. A `network` or `global`
3381
+ * list that is present replaces the endpoint's current list of that kind;
3382
+ * an empty list detaches it, and an omitted list is left unchanged. Both
3383
+ * kinds cannot be present on the endpoint at once, so to switch kinds send
3384
+ * `[]` for one and the new list for the other in the same request. Changes
3385
+ * apply to workers created afterwards. At most one global volume, GPU
3386
+ * endpoints only. `network` may accompany the deprecated `networkVolumes` field
3387
+ * only if the two agree exactly.
3388
+ */
3389
+ EndpointMountsInput: {
3390
+ /** @description Network volumes, at most one per data center. */
3391
+ network?: components["schemas"]["EndpointMount"][];
3392
+ global?: components["schemas"]["EndpointMount"][];
3050
3393
  };
3051
3394
  Registry: {
3052
3395
  /** @example reg_abc */
@@ -3416,6 +3759,55 @@ interface components {
3416
3759
  ListDataCentersResponse: {
3417
3760
  dataCenters: components["schemas"]["DataCenter"][];
3418
3761
  };
3762
+ /** @description One recorded action on the account. */
3763
+ AuditLog: {
3764
+ /**
3765
+ * @description ID of the user who performed the action. Null when the action was not attributable to a user.
3766
+ * @example user_id_abc_123
3767
+ */
3768
+ actorId: string | null;
3769
+ /**
3770
+ * @description Email of the actor when the action was recorded. Null when unknown.
3771
+ * @example actor@example.com
3772
+ */
3773
+ email: string | null;
3774
+ /**
3775
+ * @description Kind of resource the action applied to, as recorded at write time. Not an enum: values are free-form, mostly lower camel case, and new kinds appear without an API version change. Current writers record values such as `pod`, `apiKey`, `sharedApiKey`, `secret`, `costCenter`, `paymentMethod`, `billingAccount`, `registryCredential`, `organization` and `group`, and `unknown` when the writer recorded no kind.
3776
+ * @example pod
3777
+ * @example apiKey
3778
+ * @example costCenter
3779
+ */
3780
+ resourceType: string;
3781
+ /**
3782
+ * @description ID of the affected resource. Empty when the action was not about one resource; a bulk action lists every affected ID, comma-separated.
3783
+ * @example abc123
3784
+ */
3785
+ resourceId: string;
3786
+ /**
3787
+ * @description Name of the action, as recorded at write time. Not an enum: values are free-form, mostly lower case verbs, and new actions appear without an API version change. Current writers record values such as `create`, `update`, `delete`, `rename`, `lock`, `unlock`, `start`, `reset`, `add` and `setBillingMode`.
3788
+ * @example create
3789
+ * @example delete
3790
+ * @example rename
3791
+ */
3792
+ action: string;
3793
+ /**
3794
+ * @description Details of the change as a JSON-encoded string. The structure varies by action; parse it as JSON for a structured view. A bulk action split across several entries adds an `auditChunk` object with `index` and `of`. Null when the action recorded no details.
3795
+ * @example {"status":"TERMINATED"}
3796
+ * @example {"name":"training-run-7"}
3797
+ * @example {"id":"sec_789","name":"HF_TOKEN","sharedWithOrganization":true}
3798
+ */
3799
+ value: string | null;
3800
+ /**
3801
+ * Format: date-time
3802
+ * @description When the action happened (UTC, whole seconds).
3803
+ * @example 2026-09-02T00:00:00Z
3804
+ */
3805
+ timestamp: string;
3806
+ };
3807
+ ListAuditLogsResponse: {
3808
+ auditLogs: components["schemas"]["AuditLog"][];
3809
+ pagination: components["schemas"]["Pagination"];
3810
+ };
3419
3811
  /** @description Half-open time range [startTime, endTime) in RFC 3339. On a record it is the time bucket; on a query echo it is the resolved window. */
3420
3812
  BillingTimeRange: {
3421
3813
  /**
@@ -3790,7 +4182,13 @@ interface components {
3790
4182
  * A structured-field list with one member per window (`minute`, `hour`,
3791
4183
  * `day`), each carrying the quota `q` and the window length in seconds `w`.
3792
4184
  * Returned on responses to authenticated requests, not only on 429s.
3793
- * @example "minute";q=60;w=60, "hour";q=3000;w=3600, "day";q=50000;w=86400
4185
+ *
4186
+ * Limits are per user, and every `/v2` route counts toward the same
4187
+ * limits; creating pods has no separate limit. Read the current quotas from
4188
+ * this header instead of hard-coding them, because they can change and some
4189
+ * accounts have higher limits. A 429 only slows you down: wait for the
4190
+ * `Retry-After` time and retry. Your account isn't suspended.
4191
+ * @example "minute";q=180;w=60, "hour";q=3600;w=3600, "day";q=43200;w=86400
3794
4192
  */
3795
4193
  RateLimitPolicyHeader: string;
3796
4194
  };
@@ -3848,6 +4246,38 @@ interface components {
3848
4246
  "application/problem+json": components["schemas"]["ErrorResponse"];
3849
4247
  };
3850
4248
  };
4249
+ /**
4250
+ * @description The incoming request body exceeds 1048576 bytes (1 MiB). Body size is
4251
+ * checked after authentication and rate limiting. GET and DELETE reject
4252
+ * any nonempty request body with `422` instead.
4253
+ *
4254
+ * An operation can also return this status when its expanded upstream
4255
+ * request is too large, even if the incoming body is within the limit.
4256
+ */
4257
+ RequestTooLargeError: {
4258
+ headers: {
4259
+ RateLimit: components["headers"]["RateLimit"];
4260
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4261
+ [name: string]: unknown;
4262
+ };
4263
+ content: {
4264
+ "application/problem+json": components["schemas"]["ErrorResponse"];
4265
+ };
4266
+ };
4267
+ /**
4268
+ * @description The response would exceed the upstream response size cap. Request
4269
+ * fewer items and retry; on paginated operations, lower `limit`.
4270
+ */
4271
+ ResponseTooLargeError: {
4272
+ headers: {
4273
+ RateLimit: components["headers"]["RateLimit"];
4274
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4275
+ [name: string]: unknown;
4276
+ };
4277
+ content: {
4278
+ "application/problem+json": components["schemas"]["ErrorResponse"];
4279
+ };
4280
+ };
3851
4281
  /** @description The request method is not supported for the target path. */
3852
4282
  MethodNotAllowedError: {
3853
4283
  headers: {
@@ -3915,23 +4345,59 @@ interface components {
3915
4345
  */
3916
4346
  PaginationLimitBuilds: number;
3917
4347
  /**
3918
- * @description Comma-separated optional expansions; see `CatalogInclude` for the supported values.
4348
+ * @description Page size, 1–200. Defaults to 200 when omitted.
4349
+ * @example 50
4350
+ */
4351
+ PaginationLimitAuditLogs: number;
4352
+ /**
4353
+ * @description Only return entries performed by these users. Comma-separated user IDs. Available to organization accounts only; a personal or team account is answered 400.
3919
4354
  * @example [
3920
- * "AVAILABILITY"
4355
+ * "user_id_abc_123",
4356
+ * "user_id_def_456"
3921
4357
  * ]
3922
4358
  */
3923
- CatalogIncludeParam: components["schemas"]["CatalogInclude"][];
4359
+ AuditLogActorIdsFilter: string[];
3924
4360
  /**
3925
- * @description Comma-separated availability product contexts. Supported values: POD, CLUSTER, SERVERLESS. Required with include=AVAILABILITY, and valid only with it (400 either way). There is no default: the same GPU type can be scarce for pods and plentiful for serverless, so the context has to be stated rather than assumed.
4361
+ * @description Only return entries whose `action` is one of these names, matched exactly as recorded. Comma-separated.
3926
4362
  * @example [
3927
- * "POD",
3928
- * "SERVERLESS"
4363
+ * "create",
4364
+ * "delete"
3929
4365
  * ]
3930
4366
  */
3931
- GpuProductFilter: components["schemas"]["Product"][];
4367
+ AuditLogActionsFilter: string[];
3932
4368
  /**
3933
- * @description GPU count for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Defaults to 1.
3934
- * @example 2
4369
+ * @description Earliest instant to include, inclusive (RFC 3339). The account's audit log retention window still applies: entries that have aged out are not returned even when this reaches further back.
4370
+ * @example 2026-09-01T00:00:00Z
4371
+ */
4372
+ AuditLogStartTime: string;
4373
+ /**
4374
+ * @description Latest instant to include, inclusive (RFC 3339). Must be after `startTime` when both are given; 400 otherwise.
4375
+ * @example 2026-09-30T23:59:59Z
4376
+ */
4377
+ AuditLogEndTime: string;
4378
+ /**
4379
+ * @description Case-insensitive substring match against `email`, `resourceType`, `resourceId`, `action` and `value`; `actorId` is not searched. Surrounding whitespace is ignored.
4380
+ * @example abc123
4381
+ */
4382
+ AuditLogSearch: string;
4383
+ /**
4384
+ * @description Comma-separated optional expansions; see `CatalogInclude` for the supported values.
4385
+ * @example [
4386
+ * "AVAILABILITY"
4387
+ * ]
4388
+ */
4389
+ CatalogIncludeParam: components["schemas"]["CatalogInclude"][];
4390
+ /**
4391
+ * @description Comma-separated availability product contexts. Supported values: POD, CLUSTER, SERVERLESS. Required with include=AVAILABILITY, and valid only with it (400 either way). There is no default: the same GPU type can be scarce for pods and plentiful for serverless, so the context has to be stated rather than assumed.
4392
+ * @example [
4393
+ * "POD",
4394
+ * "SERVERLESS"
4395
+ * ]
4396
+ */
4397
+ GpuProductFilter: components["schemas"]["Product"][];
4398
+ /**
4399
+ * @description GPU count for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Defaults to 1.
4400
+ * @example 2
3935
4401
  */
3936
4402
  GpuCountFilter: number;
3937
4403
  /** @description Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Upstream default when omitted: SECURE. */
@@ -3994,6 +4460,43 @@ interface components {
3994
4460
  pathItems: never;
3995
4461
  }
3996
4462
  interface operations {
4463
+ getOrganization: {
4464
+ parameters: {
4465
+ query?: never;
4466
+ header?: never;
4467
+ path?: never;
4468
+ cookie?: never;
4469
+ };
4470
+ requestBody?: never;
4471
+ responses: {
4472
+ /** @description OK */
4473
+ 200: {
4474
+ headers: {
4475
+ RateLimit: components["headers"]["RateLimit"];
4476
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4477
+ [name: string]: unknown;
4478
+ };
4479
+ content: {
4480
+ "application/json": components["schemas"]["Organization"];
4481
+ };
4482
+ };
4483
+ 401: components["responses"]["UnauthorizedError"];
4484
+ 403: components["responses"]["ForbiddenError"];
4485
+ 404: components["responses"]["NotFoundError"];
4486
+ 429: components["responses"]["TooManyRequestsError"];
4487
+ /** @description Error */
4488
+ default: {
4489
+ headers: {
4490
+ RateLimit: components["headers"]["RateLimit"];
4491
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4492
+ [name: string]: unknown;
4493
+ };
4494
+ content: {
4495
+ "application/problem+json": components["schemas"]["ErrorResponse"];
4496
+ };
4497
+ };
4498
+ };
4499
+ };
3997
4500
  getSshKeys: {
3998
4501
  parameters: {
3999
4502
  query?: never;
@@ -4054,8 +4557,10 @@ interface operations {
4054
4557
  "application/json": components["schemas"]["SshKeys"];
4055
4558
  };
4056
4559
  };
4560
+ 400: components["responses"]["BadRequestError"];
4057
4561
  401: components["responses"]["UnauthorizedError"];
4058
4562
  403: components["responses"]["ForbiddenError"];
4563
+ 413: components["responses"]["RequestTooLargeError"];
4059
4564
  422: components["responses"]["UnprocessableEntityError"];
4060
4565
  429: components["responses"]["TooManyRequestsError"];
4061
4566
  /** @description Error */
@@ -4071,6 +4576,86 @@ interface operations {
4071
4576
  };
4072
4577
  };
4073
4578
  };
4579
+ listOrganizationUsers: {
4580
+ parameters: {
4581
+ query?: never;
4582
+ header?: never;
4583
+ path?: never;
4584
+ cookie?: never;
4585
+ };
4586
+ requestBody?: never;
4587
+ responses: {
4588
+ /** @description OK */
4589
+ 200: {
4590
+ headers: {
4591
+ RateLimit: components["headers"]["RateLimit"];
4592
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4593
+ [name: string]: unknown;
4594
+ };
4595
+ content: {
4596
+ "application/json": components["schemas"]["ListOrganizationUsersResponse"];
4597
+ };
4598
+ };
4599
+ 401: components["responses"]["UnauthorizedError"];
4600
+ 403: components["responses"]["ForbiddenError"];
4601
+ 404: components["responses"]["NotFoundError"];
4602
+ 429: components["responses"]["TooManyRequestsError"];
4603
+ /** @description Error */
4604
+ default: {
4605
+ headers: {
4606
+ RateLimit: components["headers"]["RateLimit"];
4607
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4608
+ [name: string]: unknown;
4609
+ };
4610
+ content: {
4611
+ "application/problem+json": components["schemas"]["ErrorResponse"];
4612
+ };
4613
+ };
4614
+ };
4615
+ };
4616
+ getOrganizationUser: {
4617
+ parameters: {
4618
+ query?: never;
4619
+ header?: never;
4620
+ path: {
4621
+ /**
4622
+ * @description User identifier
4623
+ * @example user_id_abc_123
4624
+ */
4625
+ id: string;
4626
+ };
4627
+ cookie?: never;
4628
+ };
4629
+ requestBody?: never;
4630
+ responses: {
4631
+ /** @description OK */
4632
+ 200: {
4633
+ headers: {
4634
+ RateLimit: components["headers"]["RateLimit"];
4635
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4636
+ [name: string]: unknown;
4637
+ };
4638
+ content: {
4639
+ "application/json": components["schemas"]["OrganizationUser"];
4640
+ };
4641
+ };
4642
+ 401: components["responses"]["UnauthorizedError"];
4643
+ 403: components["responses"]["ForbiddenError"];
4644
+ 404: components["responses"]["NotFoundError"];
4645
+ 429: components["responses"]["TooManyRequestsError"];
4646
+ /** @description Error */
4647
+ default: {
4648
+ headers: {
4649
+ RateLimit: components["headers"]["RateLimit"];
4650
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4651
+ [name: string]: unknown;
4652
+ };
4653
+ content: {
4654
+ "application/problem+json": components["schemas"]["ErrorResponse"];
4655
+ };
4656
+ };
4657
+ };
4658
+ };
4074
4659
  listSecrets: {
4075
4660
  parameters: {
4076
4661
  query?: {
@@ -4146,6 +4731,7 @@ interface operations {
4146
4731
  "application/problem+json": components["schemas"]["ErrorResponse"];
4147
4732
  };
4148
4733
  };
4734
+ 413: components["responses"]["RequestTooLargeError"];
4149
4735
  422: components["responses"]["UnprocessableEntityError"];
4150
4736
  429: components["responses"]["TooManyRequestsError"];
4151
4737
  /** @description Error */
@@ -4279,6 +4865,7 @@ interface operations {
4279
4865
  401: components["responses"]["UnauthorizedError"];
4280
4866
  403: components["responses"]["ForbiddenError"];
4281
4867
  404: components["responses"]["NotFoundError"];
4868
+ 413: components["responses"]["RequestTooLargeError"];
4282
4869
  422: components["responses"]["UnprocessableEntityError"];
4283
4870
  429: components["responses"]["TooManyRequestsError"];
4284
4871
  /** @description Error */
@@ -4332,6 +4919,7 @@ interface operations {
4332
4919
  };
4333
4920
  401: components["responses"]["UnauthorizedError"];
4334
4921
  403: components["responses"]["ForbiddenError"];
4922
+ 413: components["responses"]["ResponseTooLargeError"];
4335
4923
  429: components["responses"]["TooManyRequestsError"];
4336
4924
  /** @description Error */
4337
4925
  default: {
@@ -4377,6 +4965,8 @@ interface operations {
4377
4965
  /** @description The incoming request body or expanded upstream request exceeds the 102400 byte limit, or the upstream rejects the request as too large. */
4378
4966
  413: {
4379
4967
  headers: {
4968
+ RateLimit: components["headers"]["RateLimit"];
4969
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
4380
4970
  [name: string]: unknown;
4381
4971
  };
4382
4972
  content: {
@@ -4534,6 +5124,7 @@ interface operations {
4534
5124
  "application/problem+json": components["schemas"]["ErrorResponse"];
4535
5125
  };
4536
5126
  };
5127
+ 413: components["responses"]["RequestTooLargeError"];
4537
5128
  422: components["responses"]["UnprocessableEntityError"];
4538
5129
  429: components["responses"]["TooManyRequestsError"];
4539
5130
  /** @description Error */
@@ -4672,6 +5263,7 @@ interface operations {
4672
5263
  "application/problem+json": components["schemas"]["ErrorResponse"];
4673
5264
  };
4674
5265
  };
5266
+ 413: components["responses"]["RequestTooLargeError"];
4675
5267
  422: components["responses"]["UnprocessableEntityError"];
4676
5268
  429: components["responses"]["TooManyRequestsError"];
4677
5269
  /** @description Error */
@@ -4689,7 +5281,18 @@ interface operations {
4689
5281
  };
4690
5282
  listClusters: {
4691
5283
  parameters: {
4692
- query?: never;
5284
+ query?: {
5285
+ /**
5286
+ * @description Opaque resume cursor — pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected with 422.
5287
+ * @example Y3JlYXRlZEF0PTE3NDg3ODA0MDA
5288
+ */
5289
+ cursor?: components["parameters"]["PaginationCursor"];
5290
+ /**
5291
+ * @description Page size, 1–1000. Defaults to 1000 when omitted.
5292
+ * @example 50
5293
+ */
5294
+ limit?: components["parameters"]["PaginationLimit"];
5295
+ };
4693
5296
  header?: never;
4694
5297
  path?: never;
4695
5298
  cookie?: never;
@@ -4707,6 +5310,7 @@ interface operations {
4707
5310
  };
4708
5311
  401: components["responses"]["UnauthorizedError"];
4709
5312
  403: components["responses"]["ForbiddenError"];
5313
+ 413: components["responses"]["ResponseTooLargeError"];
4710
5314
  429: components["responses"]["TooManyRequestsError"];
4711
5315
  /** @description Error */
4712
5316
  default: {
@@ -4744,6 +5348,7 @@ interface operations {
4744
5348
  400: components["responses"]["BadRequestError"];
4745
5349
  401: components["responses"]["UnauthorizedError"];
4746
5350
  403: components["responses"]["ForbiddenError"];
5351
+ 413: components["responses"]["RequestTooLargeError"];
4747
5352
  422: components["responses"]["UnprocessableEntityError"];
4748
5353
  429: components["responses"]["TooManyRequestsError"];
4749
5354
  /** @description Error */
@@ -4889,6 +5494,7 @@ interface operations {
4889
5494
  "application/problem+json": components["schemas"]["ErrorResponse"];
4890
5495
  };
4891
5496
  };
5497
+ 413: components["responses"]["RequestTooLargeError"];
4892
5498
  422: components["responses"]["UnprocessableEntityError"];
4893
5499
  429: components["responses"]["TooManyRequestsError"];
4894
5500
  /** @description Error */
@@ -4982,6 +5588,7 @@ interface operations {
4982
5588
  };
4983
5589
  401: components["responses"]["UnauthorizedError"];
4984
5590
  403: components["responses"]["ForbiddenError"];
5591
+ 413: components["responses"]["ResponseTooLargeError"];
4985
5592
  429: components["responses"]["TooManyRequestsError"];
4986
5593
  /** @description Error */
4987
5594
  default: {
@@ -5024,6 +5631,7 @@ interface operations {
5024
5631
  401: components["responses"]["UnauthorizedError"];
5025
5632
  403: components["responses"]["ForbiddenError"];
5026
5633
  404: components["responses"]["NotFoundError"];
5634
+ 413: components["responses"]["RequestTooLargeError"];
5027
5635
  422: components["responses"]["UnprocessableEntityError"];
5028
5636
  429: components["responses"]["TooManyRequestsError"];
5029
5637
  /** @description Error */
@@ -5157,6 +5765,7 @@ interface operations {
5157
5765
  401: components["responses"]["UnauthorizedError"];
5158
5766
  403: components["responses"]["ForbiddenError"];
5159
5767
  404: components["responses"]["NotFoundError"];
5768
+ 413: components["responses"]["RequestTooLargeError"];
5160
5769
  422: components["responses"]["UnprocessableEntityError"];
5161
5770
  429: components["responses"]["TooManyRequestsError"];
5162
5771
  /** @description Error */
@@ -5255,6 +5864,7 @@ interface operations {
5255
5864
  401: components["responses"]["UnauthorizedError"];
5256
5865
  403: components["responses"]["ForbiddenError"];
5257
5866
  404: components["responses"]["NotFoundError"];
5867
+ 413: components["responses"]["ResponseTooLargeError"];
5258
5868
  429: components["responses"]["TooManyRequestsError"];
5259
5869
  /** @description Error */
5260
5870
  default: {
@@ -5309,6 +5919,7 @@ interface operations {
5309
5919
  401: components["responses"]["UnauthorizedError"];
5310
5920
  403: components["responses"]["ForbiddenError"];
5311
5921
  404: components["responses"]["NotFoundError"];
5922
+ 413: components["responses"]["ResponseTooLargeError"];
5312
5923
  429: components["responses"]["TooManyRequestsError"];
5313
5924
  /** @description Error */
5314
5925
  default: {
@@ -5481,6 +6092,7 @@ interface operations {
5481
6092
  };
5482
6093
  401: components["responses"]["UnauthorizedError"];
5483
6094
  403: components["responses"]["ForbiddenError"];
6095
+ 413: components["responses"]["ResponseTooLargeError"];
5484
6096
  429: components["responses"]["TooManyRequestsError"];
5485
6097
  /** @description Error */
5486
6098
  default: {
@@ -5522,6 +6134,7 @@ interface operations {
5522
6134
  400: components["responses"]["BadRequestError"];
5523
6135
  401: components["responses"]["UnauthorizedError"];
5524
6136
  403: components["responses"]["ForbiddenError"];
6137
+ 413: components["responses"]["RequestTooLargeError"];
5525
6138
  422: components["responses"]["UnprocessableEntityError"];
5526
6139
  429: components["responses"]["TooManyRequestsError"];
5527
6140
  /** @description Error */
@@ -5657,6 +6270,7 @@ interface operations {
5657
6270
  401: components["responses"]["UnauthorizedError"];
5658
6271
  403: components["responses"]["ForbiddenError"];
5659
6272
  404: components["responses"]["NotFoundError"];
6273
+ 413: components["responses"]["RequestTooLargeError"];
5660
6274
  422: components["responses"]["UnprocessableEntityError"];
5661
6275
  429: components["responses"]["TooManyRequestsError"];
5662
6276
  /** @description Error */
@@ -5674,7 +6288,18 @@ interface operations {
5674
6288
  };
5675
6289
  listNetworkVolumes: {
5676
6290
  parameters: {
5677
- query?: never;
6291
+ query?: {
6292
+ /**
6293
+ * @description Opaque resume cursor — pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected with 422.
6294
+ * @example Y3JlYXRlZEF0PTE3NDg3ODA0MDA
6295
+ */
6296
+ cursor?: components["parameters"]["PaginationCursor"];
6297
+ /**
6298
+ * @description Page size, 1–1000. Defaults to 1000 when omitted.
6299
+ * @example 50
6300
+ */
6301
+ limit?: components["parameters"]["PaginationLimit"];
6302
+ };
5678
6303
  header?: never;
5679
6304
  path?: never;
5680
6305
  cookie?: never;
@@ -5694,6 +6319,7 @@ interface operations {
5694
6319
  };
5695
6320
  401: components["responses"]["UnauthorizedError"];
5696
6321
  403: components["responses"]["ForbiddenError"];
6322
+ 413: components["responses"]["ResponseTooLargeError"];
5697
6323
  429: components["responses"]["TooManyRequestsError"];
5698
6324
  /** @description Error */
5699
6325
  default: {
@@ -5735,6 +6361,7 @@ interface operations {
5735
6361
  400: components["responses"]["BadRequestError"];
5736
6362
  401: components["responses"]["UnauthorizedError"];
5737
6363
  403: components["responses"]["ForbiddenError"];
6364
+ 413: components["responses"]["RequestTooLargeError"];
5738
6365
  422: components["responses"]["UnprocessableEntityError"];
5739
6366
  429: components["responses"]["TooManyRequestsError"];
5740
6367
  /** @description Error */
@@ -5878,6 +6505,244 @@ interface operations {
5878
6505
  401: components["responses"]["UnauthorizedError"];
5879
6506
  403: components["responses"]["ForbiddenError"];
5880
6507
  404: components["responses"]["NotFoundError"];
6508
+ 413: components["responses"]["RequestTooLargeError"];
6509
+ 422: components["responses"]["UnprocessableEntityError"];
6510
+ 429: components["responses"]["TooManyRequestsError"];
6511
+ /** @description Error */
6512
+ default: {
6513
+ headers: {
6514
+ RateLimit: components["headers"]["RateLimit"];
6515
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6516
+ [name: string]: unknown;
6517
+ };
6518
+ content: {
6519
+ "application/problem+json": components["schemas"]["ErrorResponse"];
6520
+ };
6521
+ };
6522
+ };
6523
+ };
6524
+ listGlobalVolumes: {
6525
+ parameters: {
6526
+ query?: {
6527
+ /**
6528
+ * @description Opaque resume cursor — pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected with 422.
6529
+ * @example Y3JlYXRlZEF0PTE3NDg3ODA0MDA
6530
+ */
6531
+ cursor?: components["parameters"]["PaginationCursor"];
6532
+ /**
6533
+ * @description Page size, 1–1000. Defaults to 1000 when omitted.
6534
+ * @example 50
6535
+ */
6536
+ limit?: components["parameters"]["PaginationLimit"];
6537
+ };
6538
+ header?: never;
6539
+ path?: never;
6540
+ cookie?: never;
6541
+ };
6542
+ requestBody?: never;
6543
+ responses: {
6544
+ /** @description OK */
6545
+ 200: {
6546
+ headers: {
6547
+ RateLimit: components["headers"]["RateLimit"];
6548
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6549
+ [name: string]: unknown;
6550
+ };
6551
+ content: {
6552
+ "application/json": components["schemas"]["ListGlobalVolumesResponse"];
6553
+ };
6554
+ };
6555
+ 401: components["responses"]["UnauthorizedError"];
6556
+ 403: components["responses"]["ForbiddenError"];
6557
+ 413: components["responses"]["ResponseTooLargeError"];
6558
+ 422: components["responses"]["UnprocessableEntityError"];
6559
+ 429: components["responses"]["TooManyRequestsError"];
6560
+ /** @description Error */
6561
+ default: {
6562
+ headers: {
6563
+ RateLimit: components["headers"]["RateLimit"];
6564
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6565
+ [name: string]: unknown;
6566
+ };
6567
+ content: {
6568
+ "application/problem+json": components["schemas"]["ErrorResponse"];
6569
+ };
6570
+ };
6571
+ };
6572
+ };
6573
+ createGlobalVolume: {
6574
+ parameters: {
6575
+ query?: never;
6576
+ header?: never;
6577
+ path?: never;
6578
+ cookie?: never;
6579
+ };
6580
+ requestBody: {
6581
+ content: {
6582
+ "application/json": components["schemas"]["CreateGlobalVolumeRequest"];
6583
+ };
6584
+ };
6585
+ responses: {
6586
+ /** @description Created */
6587
+ 201: {
6588
+ headers: {
6589
+ RateLimit: components["headers"]["RateLimit"];
6590
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6591
+ [name: string]: unknown;
6592
+ };
6593
+ content: {
6594
+ "application/json": components["schemas"]["GlobalVolume"];
6595
+ };
6596
+ };
6597
+ 400: components["responses"]["BadRequestError"];
6598
+ 401: components["responses"]["UnauthorizedError"];
6599
+ 403: components["responses"]["ForbiddenError"];
6600
+ 413: components["responses"]["RequestTooLargeError"];
6601
+ 422: components["responses"]["UnprocessableEntityError"];
6602
+ 429: components["responses"]["TooManyRequestsError"];
6603
+ /** @description Error */
6604
+ default: {
6605
+ headers: {
6606
+ RateLimit: components["headers"]["RateLimit"];
6607
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6608
+ [name: string]: unknown;
6609
+ };
6610
+ content: {
6611
+ "application/problem+json": components["schemas"]["ErrorResponse"];
6612
+ };
6613
+ };
6614
+ };
6615
+ };
6616
+ getGlobalVolume: {
6617
+ parameters: {
6618
+ query?: never;
6619
+ header?: never;
6620
+ path: {
6621
+ /**
6622
+ * @description Global volume identifier
6623
+ * @example gsb_abc
6624
+ */
6625
+ id: string;
6626
+ };
6627
+ cookie?: never;
6628
+ };
6629
+ requestBody?: never;
6630
+ responses: {
6631
+ /** @description OK */
6632
+ 200: {
6633
+ headers: {
6634
+ RateLimit: components["headers"]["RateLimit"];
6635
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6636
+ [name: string]: unknown;
6637
+ };
6638
+ content: {
6639
+ "application/json": components["schemas"]["GlobalVolume"];
6640
+ };
6641
+ };
6642
+ 401: components["responses"]["UnauthorizedError"];
6643
+ 403: components["responses"]["ForbiddenError"];
6644
+ 404: components["responses"]["NotFoundError"];
6645
+ 429: components["responses"]["TooManyRequestsError"];
6646
+ /** @description Error */
6647
+ default: {
6648
+ headers: {
6649
+ RateLimit: components["headers"]["RateLimit"];
6650
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6651
+ [name: string]: unknown;
6652
+ };
6653
+ content: {
6654
+ "application/problem+json": components["schemas"]["ErrorResponse"];
6655
+ };
6656
+ };
6657
+ };
6658
+ };
6659
+ deleteGlobalVolume: {
6660
+ parameters: {
6661
+ query?: never;
6662
+ header?: never;
6663
+ path: {
6664
+ /**
6665
+ * @description Global volume identifier
6666
+ * @example gsb_abc
6667
+ */
6668
+ id: string;
6669
+ };
6670
+ cookie?: never;
6671
+ };
6672
+ requestBody?: never;
6673
+ responses: {
6674
+ /** @description Deleted. Response has no body. */
6675
+ 204: {
6676
+ headers: {
6677
+ RateLimit: components["headers"]["RateLimit"];
6678
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6679
+ [name: string]: unknown;
6680
+ };
6681
+ content?: never;
6682
+ };
6683
+ 401: components["responses"]["UnauthorizedError"];
6684
+ 403: components["responses"]["ForbiddenError"];
6685
+ 404: components["responses"]["NotFoundError"];
6686
+ /** @description The volume is still mounted by a pod or serverless endpoint. */
6687
+ 409: {
6688
+ headers: {
6689
+ RateLimit: components["headers"]["RateLimit"];
6690
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6691
+ [name: string]: unknown;
6692
+ };
6693
+ content: {
6694
+ "application/problem+json": components["schemas"]["ErrorResponse"];
6695
+ };
6696
+ };
6697
+ 429: components["responses"]["TooManyRequestsError"];
6698
+ /** @description Error */
6699
+ default: {
6700
+ headers: {
6701
+ RateLimit: components["headers"]["RateLimit"];
6702
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6703
+ [name: string]: unknown;
6704
+ };
6705
+ content: {
6706
+ "application/problem+json": components["schemas"]["ErrorResponse"];
6707
+ };
6708
+ };
6709
+ };
6710
+ };
6711
+ updateGlobalVolume: {
6712
+ parameters: {
6713
+ query?: never;
6714
+ header?: never;
6715
+ path: {
6716
+ /**
6717
+ * @description Global volume identifier
6718
+ * @example gsb_abc
6719
+ */
6720
+ id: string;
6721
+ };
6722
+ cookie?: never;
6723
+ };
6724
+ requestBody: {
6725
+ content: {
6726
+ "application/json": components["schemas"]["UpdateGlobalVolumeRequest"];
6727
+ };
6728
+ };
6729
+ responses: {
6730
+ /** @description OK */
6731
+ 200: {
6732
+ headers: {
6733
+ RateLimit: components["headers"]["RateLimit"];
6734
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
6735
+ [name: string]: unknown;
6736
+ };
6737
+ content: {
6738
+ "application/json": components["schemas"]["GlobalVolume"];
6739
+ };
6740
+ };
6741
+ 400: components["responses"]["BadRequestError"];
6742
+ 401: components["responses"]["UnauthorizedError"];
6743
+ 403: components["responses"]["ForbiddenError"];
6744
+ 404: components["responses"]["NotFoundError"];
6745
+ 413: components["responses"]["RequestTooLargeError"];
5881
6746
  422: components["responses"]["UnprocessableEntityError"];
5882
6747
  429: components["responses"]["TooManyRequestsError"];
5883
6748
  /** @description Error */
@@ -5956,6 +6821,7 @@ interface operations {
5956
6821
  400: components["responses"]["BadRequestError"];
5957
6822
  401: components["responses"]["UnauthorizedError"];
5958
6823
  403: components["responses"]["ForbiddenError"];
6824
+ 413: components["responses"]["RequestTooLargeError"];
5959
6825
  422: components["responses"]["UnprocessableEntityError"];
5960
6826
  429: components["responses"]["TooManyRequestsError"];
5961
6827
  /** @description Error */
@@ -6120,8 +6986,10 @@ interface operations {
6120
6986
  "application/json": components["schemas"]["EcrDelegation"];
6121
6987
  };
6122
6988
  };
6989
+ 400: components["responses"]["BadRequestError"];
6123
6990
  401: components["responses"]["UnauthorizedError"];
6124
6991
  403: components["responses"]["ForbiddenError"];
6992
+ 413: components["responses"]["RequestTooLargeError"];
6125
6993
  429: components["responses"]["TooManyRequestsError"];
6126
6994
  /** @description Error */
6127
6995
  default: {
@@ -6592,6 +7460,87 @@ interface operations {
6592
7460
  };
6593
7461
  };
6594
7462
  };
7463
+ listAuditLogs: {
7464
+ parameters: {
7465
+ query?: {
7466
+ /**
7467
+ * @description Only return entries performed by these users. Comma-separated user IDs. Available to organization accounts only; a personal or team account is answered 400.
7468
+ * @example [
7469
+ * "user_id_abc_123",
7470
+ * "user_id_def_456"
7471
+ * ]
7472
+ */
7473
+ actorIds?: components["parameters"]["AuditLogActorIdsFilter"];
7474
+ /**
7475
+ * @description Only return entries whose `action` is one of these names, matched exactly as recorded. Comma-separated.
7476
+ * @example [
7477
+ * "create",
7478
+ * "delete"
7479
+ * ]
7480
+ */
7481
+ actions?: components["parameters"]["AuditLogActionsFilter"];
7482
+ /**
7483
+ * @description Earliest instant to include, inclusive (RFC 3339). The account's audit log retention window still applies: entries that have aged out are not returned even when this reaches further back.
7484
+ * @example 2026-09-01T00:00:00Z
7485
+ */
7486
+ startTime?: components["parameters"]["AuditLogStartTime"];
7487
+ /**
7488
+ * @description Latest instant to include, inclusive (RFC 3339). Must be after `startTime` when both are given; 400 otherwise.
7489
+ * @example 2026-09-30T23:59:59Z
7490
+ */
7491
+ endTime?: components["parameters"]["AuditLogEndTime"];
7492
+ /**
7493
+ * @description Case-insensitive substring match against `email`, `resourceType`, `resourceId`, `action` and `value`; `actorId` is not searched. Surrounding whitespace is ignored.
7494
+ * @example abc123
7495
+ */
7496
+ search?: components["parameters"]["AuditLogSearch"];
7497
+ /**
7498
+ * @description Opaque resume cursor — pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected with 422.
7499
+ * @example Y3JlYXRlZEF0PTE3NDg3ODA0MDA
7500
+ */
7501
+ cursor?: components["parameters"]["PaginationCursor"];
7502
+ /**
7503
+ * @description Page size, 1–200. Defaults to 200 when omitted.
7504
+ * @example 50
7505
+ */
7506
+ limit?: components["parameters"]["PaginationLimitAuditLogs"];
7507
+ };
7508
+ header?: never;
7509
+ path?: never;
7510
+ cookie?: never;
7511
+ };
7512
+ requestBody?: never;
7513
+ responses: {
7514
+ /** @description OK */
7515
+ 200: {
7516
+ headers: {
7517
+ RateLimit: components["headers"]["RateLimit"];
7518
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
7519
+ [name: string]: unknown;
7520
+ };
7521
+ content: {
7522
+ "application/json": components["schemas"]["ListAuditLogsResponse"];
7523
+ };
7524
+ };
7525
+ 400: components["responses"]["BadRequestError"];
7526
+ 401: components["responses"]["UnauthorizedError"];
7527
+ 403: components["responses"]["ForbiddenError"];
7528
+ 413: components["responses"]["ResponseTooLargeError"];
7529
+ 422: components["responses"]["UnprocessableEntityError"];
7530
+ 429: components["responses"]["TooManyRequestsError"];
7531
+ /** @description Error */
7532
+ default: {
7533
+ headers: {
7534
+ RateLimit: components["headers"]["RateLimit"];
7535
+ "RateLimit-Policy": components["headers"]["RateLimit-Policy"];
7536
+ [name: string]: unknown;
7537
+ };
7538
+ content: {
7539
+ "application/problem+json": components["schemas"]["ErrorResponse"];
7540
+ };
7541
+ };
7542
+ };
7543
+ };
6595
7544
  listBilling: {
6596
7545
  parameters: {
6597
7546
  query?: {
@@ -6970,7 +7919,7 @@ interface RetryOptions {
6970
7919
  /** Sleep implementation, injectable for fast tests. */
6971
7920
  sleep?: (ms: number) => Promise<void>;
6972
7921
  }
6973
- /** Wraps a fetch implementation with the RunPod retry policy. */
7922
+ /** Wraps a fetch implementation with the Runpod retry policy. */
6974
7923
  declare function createRetryFetch(options?: RetryOptions): typeof fetch;
6975
7924
 
6976
7925
  /** One deadline across fetch, retries, backoff and response-body consumption. */
@@ -7019,7 +7968,7 @@ interface RunpodClientOptions {
7019
7968
  }
7020
7969
  type RunpodClient = Client<paths>;
7021
7970
  /**
7022
- * Creates a typed RunPod API client with the shared retry policy wired in.
7971
+ * Creates a typed Runpod API client with the shared retry policy wired in.
7023
7972
  *
7024
7973
  * The API key comes from `options.apiKey` or `RUNPOD_API_KEY`; without either,
7025
7974
  * this throws. A blank `baseUrl` or `RUNPOD_API_BASE_URL` is treated as unset