@distilled.cloud/vercel 0.0.0 → 1.0.0-rc.10

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.
Files changed (246) hide show
  1. package/LICENSE +201 -0
  2. package/lib/credentials.d.ts +21 -0
  3. package/lib/credentials.d.ts.map +1 -0
  4. package/lib/credentials.js +40 -0
  5. package/lib/credentials.js.map +1 -0
  6. package/lib/errors.d.ts +80 -0
  7. package/lib/errors.d.ts.map +1 -0
  8. package/lib/errors.js +50 -0
  9. package/lib/errors.js.map +1 -0
  10. package/lib/index.d.ts +15 -0
  11. package/lib/index.d.ts.map +1 -0
  12. package/lib/index.js +15 -0
  13. package/lib/index.js.map +1 -0
  14. package/lib/protocol.d.ts +18 -0
  15. package/lib/protocol.d.ts.map +1 -0
  16. package/lib/protocol.js +69 -0
  17. package/lib/protocol.js.map +1 -0
  18. package/lib/retry.d.ts +54 -0
  19. package/lib/retry.d.ts.map +1 -0
  20. package/lib/retry.js +47 -0
  21. package/lib/retry.js.map +1 -0
  22. package/lib/services/access_groups.d.ts +459 -0
  23. package/lib/services/access_groups.d.ts.map +1 -0
  24. package/lib/services/access_groups.js +449 -0
  25. package/lib/services/access_groups.js.map +1 -0
  26. package/lib/services/ai_gateway.d.ts +122 -0
  27. package/lib/services/ai_gateway.d.ts.map +1 -0
  28. package/lib/services/ai_gateway.js +125 -0
  29. package/lib/services/ai_gateway.js.map +1 -0
  30. package/lib/services/aliases.d.ts +591 -0
  31. package/lib/services/aliases.d.ts.map +1 -0
  32. package/lib/services/aliases.js +482 -0
  33. package/lib/services/aliases.js.map +1 -0
  34. package/lib/services/api_ai_gateway.d.ts +275 -0
  35. package/lib/services/api_ai_gateway.d.ts.map +1 -0
  36. package/lib/services/api_ai_gateway.js +227 -0
  37. package/lib/services/api_ai_gateway.js.map +1 -0
  38. package/lib/services/artifacts.d.ts +228 -0
  39. package/lib/services/artifacts.d.ts.map +1 -0
  40. package/lib/services/artifacts.js +214 -0
  41. package/lib/services/artifacts.js.map +1 -0
  42. package/lib/services/authentication.d.ts +373 -0
  43. package/lib/services/authentication.d.ts.map +1 -0
  44. package/lib/services/authentication.js +304 -0
  45. package/lib/services/authentication.js.map +1 -0
  46. package/lib/services/billing.d.ts +930 -0
  47. package/lib/services/billing.d.ts.map +1 -0
  48. package/lib/services/billing.js +695 -0
  49. package/lib/services/billing.js.map +1 -0
  50. package/lib/services/bulk_redirects.d.ts +308 -0
  51. package/lib/services/bulk_redirects.d.ts.map +1 -0
  52. package/lib/services/bulk_redirects.js +302 -0
  53. package/lib/services/bulk_redirects.js.map +1 -0
  54. package/lib/services/certs.d.ts +171 -0
  55. package/lib/services/certs.d.ts.map +1 -0
  56. package/lib/services/certs.js +163 -0
  57. package/lib/services/certs.js.map +1 -0
  58. package/lib/services/checks_v2.d.ts +1167 -0
  59. package/lib/services/checks_v2.d.ts.map +1 -0
  60. package/lib/services/checks_v2.js +1141 -0
  61. package/lib/services/checks_v2.js.map +1 -0
  62. package/lib/services/connect.d.ts +2228 -0
  63. package/lib/services/connect.d.ts.map +1 -0
  64. package/lib/services/connect.js +1575 -0
  65. package/lib/services/connect.js.map +1 -0
  66. package/lib/services/deployments.d.ts +9419 -0
  67. package/lib/services/deployments.d.ts.map +1 -0
  68. package/lib/services/deployments.js +8248 -0
  69. package/lib/services/deployments.js.map +1 -0
  70. package/lib/services/dns.d.ts +279 -0
  71. package/lib/services/dns.d.ts.map +1 -0
  72. package/lib/services/dns.js +277 -0
  73. package/lib/services/dns.js.map +1 -0
  74. package/lib/services/domains.d.ts +564 -0
  75. package/lib/services/domains.d.ts.map +1 -0
  76. package/lib/services/domains.js +469 -0
  77. package/lib/services/domains.js.map +1 -0
  78. package/lib/services/domains_registrar.d.ts +798 -0
  79. package/lib/services/domains_registrar.d.ts.map +1 -0
  80. package/lib/services/domains_registrar.js +916 -0
  81. package/lib/services/domains_registrar.js.map +1 -0
  82. package/lib/services/drains.d.ts +2263 -0
  83. package/lib/services/drains.d.ts.map +1 -0
  84. package/lib/services/drains.js +2121 -0
  85. package/lib/services/drains.js.map +1 -0
  86. package/lib/services/edge_cache.d.ts +125 -0
  87. package/lib/services/edge_cache.d.ts.map +1 -0
  88. package/lib/services/edge_cache.js +138 -0
  89. package/lib/services/edge_cache.js.map +1 -0
  90. package/lib/services/environment.d.ts +1020 -0
  91. package/lib/services/environment.d.ts.map +1 -0
  92. package/lib/services/environment.js +805 -0
  93. package/lib/services/environment.js.map +1 -0
  94. package/lib/services/feature_flags.d.ts +2893 -0
  95. package/lib/services/feature_flags.d.ts.map +1 -0
  96. package/lib/services/feature_flags.js +2707 -0
  97. package/lib/services/feature_flags.js.map +1 -0
  98. package/lib/services/global_config.d.ts +618 -0
  99. package/lib/services/global_config.d.ts.map +1 -0
  100. package/lib/services/global_config.js +709 -0
  101. package/lib/services/global_config.js.map +1 -0
  102. package/lib/services/index.d.ts +42 -0
  103. package/lib/services/index.d.ts.map +1 -0
  104. package/lib/services/index.js +43 -0
  105. package/lib/services/index.js.map +1 -0
  106. package/lib/services/integrations.d.ts +3014 -0
  107. package/lib/services/integrations.d.ts.map +1 -0
  108. package/lib/services/integrations.js +2544 -0
  109. package/lib/services/integrations.js.map +1 -0
  110. package/lib/services/kms.d.ts +1095 -0
  111. package/lib/services/kms.d.ts.map +1 -0
  112. package/lib/services/kms.js +956 -0
  113. package/lib/services/kms.js.map +1 -0
  114. package/lib/services/log_drains.d.ts +848 -0
  115. package/lib/services/log_drains.d.ts.map +1 -0
  116. package/lib/services/log_drains.js +782 -0
  117. package/lib/services/log_drains.js.map +1 -0
  118. package/lib/services/logs.d.ts +40 -0
  119. package/lib/services/logs.d.ts.map +1 -0
  120. package/lib/services/logs.js +43 -0
  121. package/lib/services/logs.js.map +1 -0
  122. package/lib/services/marketplace.d.ts +1053 -0
  123. package/lib/services/marketplace.d.ts.map +1 -0
  124. package/lib/services/marketplace.js +1116 -0
  125. package/lib/services/marketplace.js.map +1 -0
  126. package/lib/services/microfrontends.d.ts +3250 -0
  127. package/lib/services/microfrontends.d.ts.map +1 -0
  128. package/lib/services/microfrontends.js +3154 -0
  129. package/lib/services/microfrontends.js.map +1 -0
  130. package/lib/services/misc.d.ts +192 -0
  131. package/lib/services/misc.d.ts.map +1 -0
  132. package/lib/services/misc.js +124 -0
  133. package/lib/services/misc.js.map +1 -0
  134. package/lib/services/networking.d.ts +360 -0
  135. package/lib/services/networking.d.ts.map +1 -0
  136. package/lib/services/networking.js +353 -0
  137. package/lib/services/networking.js.map +1 -0
  138. package/lib/services/observability.d.ts +168 -0
  139. package/lib/services/observability.d.ts.map +1 -0
  140. package/lib/services/observability.js +190 -0
  141. package/lib/services/observability.js.map +1 -0
  142. package/lib/services/project_members.d.ts +142 -0
  143. package/lib/services/project_members.d.ts.map +1 -0
  144. package/lib/services/project_members.js +135 -0
  145. package/lib/services/project_members.js.map +1 -0
  146. package/lib/services/project_routes.d.ts +1990 -0
  147. package/lib/services/project_routes.d.ts.map +1 -0
  148. package/lib/services/project_routes.js +1883 -0
  149. package/lib/services/project_routes.js.map +1 -0
  150. package/lib/services/projects.d.ts +23677 -0
  151. package/lib/services/projects.d.ts.map +1 -0
  152. package/lib/services/projects.js +22223 -0
  153. package/lib/services/projects.js.map +1 -0
  154. package/lib/services/rolling_release.d.ts +764 -0
  155. package/lib/services/rolling_release.d.ts.map +1 -0
  156. package/lib/services/rolling_release.js +583 -0
  157. package/lib/services/rolling_release.js.map +1 -0
  158. package/lib/services/sandboxes.d.ts +2777 -0
  159. package/lib/services/sandboxes.d.ts.map +1 -0
  160. package/lib/services/sandboxes.js +2142 -0
  161. package/lib/services/sandboxes.js.map +1 -0
  162. package/lib/services/security.d.ts +4247 -0
  163. package/lib/services/security.d.ts.map +1 -0
  164. package/lib/services/security.js +4377 -0
  165. package/lib/services/security.js.map +1 -0
  166. package/lib/services/storage.d.ts +251 -0
  167. package/lib/services/storage.d.ts.map +1 -0
  168. package/lib/services/storage.js +257 -0
  169. package/lib/services/storage.js.map +1 -0
  170. package/lib/services/teams.d.ts +1600 -0
  171. package/lib/services/teams.d.ts.map +1 -0
  172. package/lib/services/teams.js +1314 -0
  173. package/lib/services/teams.js.map +1 -0
  174. package/lib/services/user.d.ts +8559 -0
  175. package/lib/services/user.d.ts.map +1 -0
  176. package/lib/services/user.js +7407 -0
  177. package/lib/services/user.js.map +1 -0
  178. package/lib/services/vcr.d.ts +751 -0
  179. package/lib/services/vcr.d.ts.map +1 -0
  180. package/lib/services/vcr.js +826 -0
  181. package/lib/services/vcr.js.map +1 -0
  182. package/lib/services/web_analytics.d.ts +726 -0
  183. package/lib/services/web_analytics.d.ts.map +1 -0
  184. package/lib/services/web_analytics.js +707 -0
  185. package/lib/services/web_analytics.js.map +1 -0
  186. package/lib/services/webhooks.d.ts +219 -0
  187. package/lib/services/webhooks.d.ts.map +1 -0
  188. package/lib/services/webhooks.js +177 -0
  189. package/lib/services/webhooks.js.map +1 -0
  190. package/lib/traits.d.ts +10 -0
  191. package/lib/traits.d.ts.map +1 -0
  192. package/lib/traits.js +11 -0
  193. package/lib/traits.js.map +1 -0
  194. package/package.json +78 -7
  195. package/src/credentials.ts +70 -0
  196. package/src/errors.ts +93 -0
  197. package/src/index.ts +18 -0
  198. package/src/protocol.ts +98 -0
  199. package/src/retry.ts +78 -0
  200. package/src/services/access_groups.ts +1165 -0
  201. package/src/services/ai_gateway.ts +267 -0
  202. package/src/services/aliases.ts +1315 -0
  203. package/src/services/api_ai_gateway.ts +607 -0
  204. package/src/services/artifacts.ts +542 -0
  205. package/src/services/authentication.ts +827 -0
  206. package/src/services/billing.ts +2104 -0
  207. package/src/services/bulk_redirects.ts +748 -0
  208. package/src/services/certs.ts +371 -0
  209. package/src/services/checks_v2.ts +3084 -0
  210. package/src/services/connect.ts +4805 -0
  211. package/src/services/deployments.ts +24576 -0
  212. package/src/services/dns.ts +715 -0
  213. package/src/services/domains.ts +1257 -0
  214. package/src/services/domains_registrar.ts +2257 -0
  215. package/src/services/drains.ts +5828 -0
  216. package/src/services/edge_cache.ts +303 -0
  217. package/src/services/environment.ts +2379 -0
  218. package/src/services/feature_flags.ts +7722 -0
  219. package/src/services/global_config.ts +1668 -0
  220. package/src/services/index.ts +42 -0
  221. package/src/services/integrations.ts +9022 -0
  222. package/src/services/kms.ts +2614 -0
  223. package/src/services/log_drains.ts +2434 -0
  224. package/src/services/logs.ts +78 -0
  225. package/src/services/marketplace.ts +2849 -0
  226. package/src/services/microfrontends.ts +9921 -0
  227. package/src/services/misc.ts +364 -0
  228. package/src/services/networking.ts +865 -0
  229. package/src/services/observability.ts +435 -0
  230. package/src/services/project_members.ts +326 -0
  231. package/src/services/project_routes.ts +5229 -0
  232. package/src/services/projects.ts +68139 -0
  233. package/src/services/rolling_release.ts +1860 -0
  234. package/src/services/sandboxes.ts +6988 -0
  235. package/src/services/security.ts +13931 -0
  236. package/src/services/storage.ts +850 -0
  237. package/src/services/teams.ts +4055 -0
  238. package/src/services/user.ts +23195 -0
  239. package/src/services/vcr.ts +2070 -0
  240. package/src/services/web_analytics.ts +1638 -0
  241. package/src/services/webhooks.ts +1102 -0
  242. package/src/traits.ts +46 -0
  243. package/README.md +0 -15
  244. package/bun.lock +0 -26
  245. package/index.ts +0 -1
  246. package/tsconfig.json +0 -29
@@ -0,0 +1,607 @@
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-vercel/specs/openapi.json). Do not edit.
2
+ import * as S from "@distilled.cloud/core/schema";
3
+ import * as API from "@distilled.cloud/core/api";
4
+ import * as C from "@distilled.cloud/core/category";
5
+ import * as T from "../traits.ts";
6
+ import {
7
+ VercelProtocol,
8
+ type VercelOpError,
9
+ type VercelOpContext,
10
+ } from "../protocol.ts";
11
+ import * as Retry from "../retry.ts";
12
+
13
+ export type { VercelOpError, VercelOpContext };
14
+
15
+ export class BadRequest
16
+ extends /*@__PURE__*/ T.applyErrorMatchers(
17
+ /*@__PURE__*/ S.TaggedError<BadRequest>()("BadRequest", {
18
+ code: S.Number,
19
+ message: S.String,
20
+ }).pipe(C.withBadRequestError),
21
+ [{ status: 400 }],
22
+ ) {}
23
+
24
+ export class Conflict
25
+ extends /*@__PURE__*/ T.applyErrorMatchers(
26
+ /*@__PURE__*/ S.TaggedError<Conflict>()("Conflict", {
27
+ code: S.Number,
28
+ message: S.String,
29
+ }).pipe(C.withConflictError),
30
+ [{ status: 409 }],
31
+ ) {}
32
+
33
+ export class Forbidden
34
+ extends /*@__PURE__*/ T.applyErrorMatchers(
35
+ /*@__PURE__*/ S.TaggedError<Forbidden>()("Forbidden", {
36
+ code: S.Number,
37
+ message: S.String,
38
+ }).pipe(C.withAuthError),
39
+ [{ status: 403 }],
40
+ ) {}
41
+
42
+ export class NotFound
43
+ extends /*@__PURE__*/ T.applyErrorMatchers(
44
+ /*@__PURE__*/ S.TaggedError<NotFound>()("NotFound", {
45
+ code: S.Number,
46
+ message: S.String,
47
+ }).pipe(C.withBadRequestError),
48
+ [{ status: 404 }],
49
+ ) {}
50
+
51
+ export interface CreateAiGatewayVirtualModelConfigRequest {
52
+ /** The Team identifier to perform the request on behalf of. */
53
+ teamId?: string;
54
+ /** The Team slug to perform the request on behalf of. */
55
+ slug?: string;
56
+ }
57
+ export const CreateAiGatewayVirtualModelConfigRequest = /*@__PURE__*/ S.suspend(
58
+ () =>
59
+ S.Struct({
60
+ teamId: S.optional(S.String.pipe(T.Query())),
61
+ slug: S.optional(S.String.pipe(T.Query())),
62
+ }).pipe(
63
+ T.Http({
64
+ method: "POST",
65
+ uri: "/v1/ai-gateway/virtual-model-configs",
66
+ code: 200,
67
+ }),
68
+ ),
69
+ ).annotate({
70
+ identifier: "CreateAiGatewayVirtualModelConfigRequest",
71
+ }) as any as S.Schema<CreateAiGatewayVirtualModelConfigRequest>;
72
+
73
+ /** Ordered list of providers to try as fallbacks on failure. */
74
+ export type AiGatewayVirtualModelConfigProviderOrderList = Array<string>;
75
+ export const AiGatewayVirtualModelConfigProviderOrderList =
76
+ /*@__PURE__*/ S.Array(
77
+ S.String,
78
+ ) as any as S.Schema<AiGatewayVirtualModelConfigProviderOrderList>;
79
+
80
+ /** Restrict routing to only these providers. */
81
+ export type AiGatewayVirtualModelConfigProviderOnlyList = Array<string>;
82
+ export const AiGatewayVirtualModelConfigProviderOnlyList =
83
+ /*@__PURE__*/ S.Array(
84
+ S.String,
85
+ ) as any as S.Schema<AiGatewayVirtualModelConfigProviderOnlyList>;
86
+
87
+ /** Arbitrary per-provider AI SDK options, keyed by gateway provider slug. */
88
+ export type AiGatewayProviderOptionBag = { [key: string]: unknown | undefined };
89
+ export const AiGatewayProviderOptionBag = /*@__PURE__*/ S.Record(
90
+ S.String,
91
+ S.Unknown,
92
+ ) as any as S.Schema<AiGatewayProviderOptionBag>;
93
+
94
+ /** Arbitrary per-provider AI SDK options, keyed by gateway provider slug. */
95
+ export type AiGatewayVirtualModelConfigProviderOptionsMap = {
96
+ [key: string]: AiGatewayProviderOptionBag | undefined;
97
+ };
98
+ export const AiGatewayVirtualModelConfigProviderOptionsMap =
99
+ /*@__PURE__*/ S.Record(
100
+ S.String,
101
+ AiGatewayProviderOptionBag,
102
+ ) as any as S.Schema<AiGatewayVirtualModelConfigProviderOptionsMap>;
103
+
104
+ /** Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`. */
105
+ export type AiGatewayVirtualModelConfigInferenceRegionProvidersValueScope =
106
+ | "global"
107
+ | "specific"
108
+ | "zone";
109
+ export const AiGatewayVirtualModelConfigInferenceRegionProvidersValueScope =
110
+ S.String;
111
+
112
+ /** Per-provider region overrides keyed by provider slug. */
113
+ export interface AiGatewayVirtualModelConfigInferenceRegionProvidersValue {
114
+ /** Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`. */
115
+ scope?: AiGatewayVirtualModelConfigInferenceRegionProvidersValueScope;
116
+ /** Geo zone (e.g. "us", "eu"). */
117
+ geoRegion?: string;
118
+ /** Provider-specific region identifier. */
119
+ providerRegion?: string;
120
+ }
121
+ export const AiGatewayVirtualModelConfigInferenceRegionProvidersValue =
122
+ /*@__PURE__*/ S.suspend(() =>
123
+ S.Struct({
124
+ scope: S.optional(
125
+ AiGatewayVirtualModelConfigInferenceRegionProvidersValueScope,
126
+ ),
127
+ geoRegion: S.optional(S.String),
128
+ providerRegion: S.optional(S.String),
129
+ }),
130
+ ).annotate({
131
+ identifier: "AiGatewayVirtualModelConfigInferenceRegionProvidersValue",
132
+ }) as any as S.Schema<AiGatewayVirtualModelConfigInferenceRegionProvidersValue>;
133
+
134
+ /** Per-provider region overrides keyed by provider slug. */
135
+ export type AiGatewayVirtualModelConfigInferenceRegionProvidersMap = {
136
+ [key: string]:
137
+ | AiGatewayVirtualModelConfigInferenceRegionProvidersValue
138
+ | null
139
+ | undefined;
140
+ };
141
+ export const AiGatewayVirtualModelConfigInferenceRegionProvidersMap =
142
+ /*@__PURE__*/ S.Record(
143
+ S.String,
144
+ S.NullOr(AiGatewayVirtualModelConfigInferenceRegionProvidersValue),
145
+ ) as any as S.Schema<AiGatewayVirtualModelConfigInferenceRegionProvidersMap>;
146
+
147
+ /** Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`. */
148
+ export type AiGatewayVirtualModelConfigInferenceRegionScope =
149
+ | "global"
150
+ | "specific"
151
+ | "zone";
152
+ export const AiGatewayVirtualModelConfigInferenceRegionScope = S.String;
153
+
154
+ /** Region pinned on the VMC for system-credential routing (alias/router only). */
155
+ export interface AiGatewayVirtualModelConfigInferenceRegion {
156
+ /** Per-provider region overrides keyed by provider slug. */
157
+ providers?: AiGatewayVirtualModelConfigInferenceRegionProvidersMap;
158
+ /** Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`. */
159
+ scope?: AiGatewayVirtualModelConfigInferenceRegionScope;
160
+ /** Geo zone (e.g. "us", "eu"). */
161
+ geoRegion?: string;
162
+ /** Provider-specific region identifier. */
163
+ providerRegion?: string;
164
+ }
165
+ export const AiGatewayVirtualModelConfigInferenceRegion =
166
+ /*@__PURE__*/ S.suspend(() =>
167
+ S.Struct({
168
+ providers: S.optional(
169
+ AiGatewayVirtualModelConfigInferenceRegionProvidersMap,
170
+ ),
171
+ scope: S.optional(AiGatewayVirtualModelConfigInferenceRegionScope),
172
+ geoRegion: S.optional(S.String),
173
+ providerRegion: S.optional(S.String),
174
+ }),
175
+ ).annotate({
176
+ identifier: "AiGatewayVirtualModelConfigInferenceRegion",
177
+ }) as any as S.Schema<AiGatewayVirtualModelConfigInferenceRegion>;
178
+
179
+ /** For kind=router: ordered candidates, model slugs or router references. Otherwise: fallback models. */
180
+ export type AiGatewayVirtualModelConfigModelsList = Array<string>;
181
+ export const AiGatewayVirtualModelConfigModelsList = /*@__PURE__*/ S.Array(
182
+ S.String,
183
+ ) as any as S.Schema<AiGatewayVirtualModelConfigModelsList>;
184
+
185
+ /** For kind=router: how to order candidates. */
186
+ export type AiGatewayVirtualModelConfigSelector =
187
+ | "cost"
188
+ | "priority"
189
+ | "tps"
190
+ | "ttft";
191
+ export const AiGatewayVirtualModelConfigSelector = S.String;
192
+
193
+ /** For kind=router: capability tags a candidate must have. */
194
+ export type AiGatewayVirtualModelConfigRequiresList = Array<string>;
195
+ export const AiGatewayVirtualModelConfigRequiresList = /*@__PURE__*/ S.Array(
196
+ S.String,
197
+ ) as any as S.Schema<AiGatewayVirtualModelConfigRequiresList>;
198
+
199
+ /** BYOK credential IDs allowed for this VMC. */
200
+ export type AiGatewayVirtualModelConfigByokCredentialIdsList = Array<string>;
201
+ export const AiGatewayVirtualModelConfigByokCredentialIdsList =
202
+ /*@__PURE__*/ S.Array(
203
+ S.String,
204
+ ) as any as S.Schema<AiGatewayVirtualModelConfigByokCredentialIdsList>;
205
+
206
+ /** Observability tags attached to requests through this VMC. */
207
+ export type AiGatewayVirtualModelConfigObservabilityTagsList = Array<string>;
208
+ export const AiGatewayVirtualModelConfigObservabilityTagsList =
209
+ /*@__PURE__*/ S.Array(
210
+ S.String,
211
+ ) as any as S.Schema<AiGatewayVirtualModelConfigObservabilityTagsList>;
212
+
213
+ /** Rank eligible providers by an attribute. */
214
+ export type AiGatewayVirtualModelConfigSort =
215
+ | "cost"
216
+ | "latency"
217
+ | "price"
218
+ | "throughput"
219
+ | "tps"
220
+ | "ttft";
221
+ export const AiGatewayVirtualModelConfigSort = S.String;
222
+
223
+ /** Limit providers to those with these features. */
224
+ export type AiGatewayVirtualModelConfigHasItem = "implicit-caching" | "vision";
225
+ export const AiGatewayVirtualModelConfigHasItem = S.String;
226
+
227
+ /** Limit providers to those with these features. */
228
+ export type AiGatewayVirtualModelConfigHasList =
229
+ Array<AiGatewayVirtualModelConfigHasItem>;
230
+ export const AiGatewayVirtualModelConfigHasList = /*@__PURE__*/ S.Array(
231
+ AiGatewayVirtualModelConfigHasItem,
232
+ ) as any as S.Schema<AiGatewayVirtualModelConfigHasList>;
233
+
234
+ /** Use caching if available. */
235
+ export type AiGatewayVirtualModelConfigCaching = "auto";
236
+ export const AiGatewayVirtualModelConfigCaching = S.String;
237
+
238
+ /** Service tier for providers that support it. */
239
+ export type AiGatewayVirtualModelConfigServiceTier =
240
+ | "fast"
241
+ | "flex"
242
+ | "priority";
243
+ export const AiGatewayVirtualModelConfigServiceTier = S.String;
244
+
245
+ export type AiGatewayVirtualModelConfigProviderTimeoutsByokMap = {
246
+ [key: string]: number | undefined;
247
+ };
248
+ export const AiGatewayVirtualModelConfigProviderTimeoutsByokMap =
249
+ /*@__PURE__*/ S.Record(
250
+ S.String,
251
+ S.Number,
252
+ ) as any as S.Schema<AiGatewayVirtualModelConfigProviderTimeoutsByokMap>;
253
+
254
+ /** Per-request provider timeouts in ms, keyed by provider slug for BYOK credentials. */
255
+ export interface AiGatewayVirtualModelConfigProviderTimeouts {
256
+ byok?: AiGatewayVirtualModelConfigProviderTimeoutsByokMap;
257
+ }
258
+ export const AiGatewayVirtualModelConfigProviderTimeouts =
259
+ /*@__PURE__*/ S.suspend(() =>
260
+ S.Struct({
261
+ byok: S.optional(AiGatewayVirtualModelConfigProviderTimeoutsByokMap),
262
+ }),
263
+ ).annotate({
264
+ identifier: "AiGatewayVirtualModelConfigProviderTimeouts",
265
+ }) as any as S.Schema<AiGatewayVirtualModelConfigProviderTimeouts>;
266
+
267
+ /** Only use fastest providers with short timeouts. */
268
+ export type AiGatewayVirtualModelConfigSpeed = "fast";
269
+ export const AiGatewayVirtualModelConfigSpeed = S.String;
270
+
271
+ /** Public response shape for virtual model configs. Used so OpenAPI generation can avoid ElectroDB's recursive EntityItem types. */
272
+ export interface AiGatewayVirtualModelConfig {
273
+ /** Team (owner) that owns this VMC. */
274
+ ownerId: string;
275
+ /** Client-facing alias used as the model slug in Gateway calls. */
276
+ virtualModelSlug: string;
277
+ /** Human-readable name for UI. */
278
+ displayName?: string;
279
+ /** Optional description for UI. */
280
+ description?: string;
281
+ /** Whether this VMC is soft-deleted. */
282
+ deleted: boolean;
283
+ /** UI lifecycle status: draft, active, or archived. */
284
+ status: string;
285
+ /** Visibility in listings: public, internal, or stealth. */
286
+ visibility?: string;
287
+ /** User id that last updated this VMC. */
288
+ updatedBy?: string;
289
+ /** VMC kind: alias, relay, or router. */
290
+ kind: string;
291
+ /** For kind=relay: URL the gateway forwards requests to as a transparent proxy. */
292
+ baseUrl?: string;
293
+ /** The concrete model-provider instance this VMC resolves to. */
294
+ instanceId?: string;
295
+ /** Ordered list of providers to try as fallbacks on failure. */
296
+ providerOrder?: AiGatewayVirtualModelConfigProviderOrderList;
297
+ /** Restrict routing to only these providers. */
298
+ providerOnly?: AiGatewayVirtualModelConfigProviderOnlyList;
299
+ /** Arbitrary per-provider AI SDK options, keyed by gateway provider slug. */
300
+ providerOptions?: AiGatewayVirtualModelConfigProviderOptionsMap;
301
+ /** Region pinned on the VMC for system-credential routing (alias/router only). */
302
+ inferenceRegion?: AiGatewayVirtualModelConfigInferenceRegion;
303
+ /** Canonical model slug this VMC maps to (e.g. "creator/model"). Not used by kind=router. */
304
+ modelSlug?: string;
305
+ /** For kind=router: ordered candidates, model slugs or router references. Otherwise: fallback models. */
306
+ models?: AiGatewayVirtualModelConfigModelsList;
307
+ /** For kind=router: how to order candidates. */
308
+ selector?: AiGatewayVirtualModelConfigSelector;
309
+ /** For kind=router: capability tags a candidate must have. */
310
+ requires?: AiGatewayVirtualModelConfigRequiresList;
311
+ /** BYOK credential IDs allowed for this VMC. */
312
+ byokCredentialIds?: AiGatewayVirtualModelConfigByokCredentialIdsList;
313
+ /** Observability tags attached to requests through this VMC. */
314
+ observabilityTags?: AiGatewayVirtualModelConfigObservabilityTagsList;
315
+ /** Rank eligible providers by an attribute. */
316
+ sort?: AiGatewayVirtualModelConfigSort;
317
+ /** Limit providers to those with these features. */
318
+ has?: AiGatewayVirtualModelConfigHasList;
319
+ /** Use caching if available. */
320
+ caching?: AiGatewayVirtualModelConfigCaching;
321
+ /** Service tier for providers that support it. */
322
+ serviceTier?: AiGatewayVirtualModelConfigServiceTier;
323
+ /** Per-request provider timeouts in ms, keyed by provider slug for BYOK credentials. */
324
+ providerTimeouts?: AiGatewayVirtualModelConfigProviderTimeouts;
325
+ /** Only use providers with zero data retention. */
326
+ zeroDataRetention?: boolean;
327
+ /** Only use HIPAA-compliant providers. */
328
+ hipaaCompliant?: boolean;
329
+ /** Only use providers that will not train on your prompts. */
330
+ disallowPromptTraining?: boolean;
331
+ /** Only use fastest providers with short timeouts. */
332
+ speed?: AiGatewayVirtualModelConfigSpeed;
333
+ /** Allow fallback from fast to standard providers on failure. */
334
+ allowFallbackFromFast?: boolean;
335
+ /** Creation timestamp (epoch ms). */
336
+ createdAt: number;
337
+ /** Last update timestamp (epoch ms). */
338
+ updatedAt: number;
339
+ }
340
+ export const AiGatewayVirtualModelConfig = /*@__PURE__*/ S.suspend(() =>
341
+ S.Struct({
342
+ ownerId: S.String,
343
+ virtualModelSlug: S.String,
344
+ displayName: S.optional(S.String),
345
+ description: S.optional(S.String),
346
+ deleted: S.Boolean,
347
+ status: S.String,
348
+ visibility: S.optional(S.String),
349
+ updatedBy: S.optional(S.String),
350
+ kind: S.String,
351
+ baseUrl: S.optional(S.String),
352
+ instanceId: S.optional(S.String),
353
+ providerOrder: S.optional(AiGatewayVirtualModelConfigProviderOrderList),
354
+ providerOnly: S.optional(AiGatewayVirtualModelConfigProviderOnlyList),
355
+ providerOptions: S.optional(AiGatewayVirtualModelConfigProviderOptionsMap),
356
+ inferenceRegion: S.optional(AiGatewayVirtualModelConfigInferenceRegion),
357
+ modelSlug: S.optional(S.String),
358
+ models: S.optional(AiGatewayVirtualModelConfigModelsList),
359
+ selector: S.optional(AiGatewayVirtualModelConfigSelector),
360
+ requires: S.optional(AiGatewayVirtualModelConfigRequiresList),
361
+ byokCredentialIds: S.optional(
362
+ AiGatewayVirtualModelConfigByokCredentialIdsList,
363
+ ),
364
+ observabilityTags: S.optional(
365
+ AiGatewayVirtualModelConfigObservabilityTagsList,
366
+ ),
367
+ sort: S.optional(AiGatewayVirtualModelConfigSort),
368
+ has: S.optional(AiGatewayVirtualModelConfigHasList),
369
+ caching: S.optional(AiGatewayVirtualModelConfigCaching),
370
+ serviceTier: S.optional(AiGatewayVirtualModelConfigServiceTier),
371
+ providerTimeouts: S.optional(AiGatewayVirtualModelConfigProviderTimeouts),
372
+ zeroDataRetention: S.optional(S.Boolean),
373
+ hipaaCompliant: S.optional(S.Boolean),
374
+ disallowPromptTraining: S.optional(S.Boolean),
375
+ speed: S.optional(AiGatewayVirtualModelConfigSpeed),
376
+ allowFallbackFromFast: S.optional(S.Boolean),
377
+ createdAt: S.Number,
378
+ updatedAt: S.Number,
379
+ }),
380
+ ).annotate({
381
+ identifier: "AiGatewayVirtualModelConfig",
382
+ }) as any as S.Schema<AiGatewayVirtualModelConfig>;
383
+
384
+ export interface DeleteAiGatewayVirtualModelConfigRequest {
385
+ ownerId?: string;
386
+ virtualModelSlug: string;
387
+ /** The Team identifier to perform the request on behalf of. */
388
+ teamId?: string;
389
+ /** The Team slug to perform the request on behalf of. */
390
+ slug?: string;
391
+ }
392
+ export const DeleteAiGatewayVirtualModelConfigRequest = /*@__PURE__*/ S.suspend(
393
+ () =>
394
+ S.Struct({
395
+ ownerId: S.optional(S.String.pipe(T.Query())),
396
+ virtualModelSlug: S.String.pipe(T.Query()),
397
+ teamId: S.optional(S.String.pipe(T.Query())),
398
+ slug: S.optional(S.String.pipe(T.Query())),
399
+ }).pipe(
400
+ T.Http({
401
+ method: "DELETE",
402
+ uri: "/v1/ai-gateway/virtual-model-configs",
403
+ code: 200,
404
+ }),
405
+ ),
406
+ ).annotate({
407
+ identifier: "DeleteAiGatewayVirtualModelConfigRequest",
408
+ }) as any as S.Schema<DeleteAiGatewayVirtualModelConfigRequest>;
409
+
410
+ export type DeleteAiGatewayVirtualModelConfigResponse = unknown;
411
+ export const DeleteAiGatewayVirtualModelConfigResponse =
412
+ /*@__PURE__*/ S.suspend(() => S.Unknown.pipe(T.RawResponseRoot())).annotate({
413
+ identifier: "DeleteAiGatewayVirtualModelConfigResponse",
414
+ }) as any as S.Schema<DeleteAiGatewayVirtualModelConfigResponse>;
415
+
416
+ export interface GetAiGatewayVirtualModelConfigRequest {
417
+ ownerId?: string;
418
+ virtualModelSlug: string;
419
+ /** The Team identifier to perform the request on behalf of. */
420
+ teamId?: string;
421
+ /** The Team slug to perform the request on behalf of. */
422
+ slug?: string;
423
+ }
424
+ export const GetAiGatewayVirtualModelConfigRequest = /*@__PURE__*/ S.suspend(
425
+ () =>
426
+ S.Struct({
427
+ ownerId: S.optional(S.String.pipe(T.Query())),
428
+ virtualModelSlug: S.String.pipe(T.Query()),
429
+ teamId: S.optional(S.String.pipe(T.Query())),
430
+ slug: S.optional(S.String.pipe(T.Query())),
431
+ }).pipe(
432
+ T.Http({
433
+ method: "GET",
434
+ uri: "/v1/ai-gateway/virtual-model-configs",
435
+ code: 200,
436
+ }),
437
+ ),
438
+ ).annotate({
439
+ identifier: "GetAiGatewayVirtualModelConfigRequest",
440
+ }) as any as S.Schema<GetAiGatewayVirtualModelConfigRequest>;
441
+
442
+ export interface ListAiGatewayVirtualModelConfigsRequest {
443
+ ownerId?: string;
444
+ limit?: number;
445
+ cursor?: string;
446
+ /** The Team identifier to perform the request on behalf of. */
447
+ teamId?: string;
448
+ /** The Team slug to perform the request on behalf of. */
449
+ slug?: string;
450
+ }
451
+ export const ListAiGatewayVirtualModelConfigsRequest = /*@__PURE__*/ S.suspend(
452
+ () =>
453
+ S.Struct({
454
+ ownerId: S.optional(S.String.pipe(T.Query())),
455
+ limit: S.optional(S.Number.pipe(T.Query())),
456
+ cursor: S.optional(S.String.pipe(T.Query())),
457
+ teamId: S.optional(S.String.pipe(T.Query())),
458
+ slug: S.optional(S.String.pipe(T.Query())),
459
+ }).pipe(
460
+ T.Http({
461
+ method: "GET",
462
+ uri: "/v1/ai-gateway/virtual-model-configs/list",
463
+ code: 200,
464
+ }),
465
+ ),
466
+ ).annotate({
467
+ identifier: "ListAiGatewayVirtualModelConfigsRequest",
468
+ }) as any as S.Schema<ListAiGatewayVirtualModelConfigsRequest>;
469
+
470
+ /** The page of VMCs. */
471
+ export type AiGatewayVirtualModelConfigListVirtualModelConfigsList =
472
+ Array<AiGatewayVirtualModelConfig>;
473
+ export const AiGatewayVirtualModelConfigListVirtualModelConfigsList =
474
+ /*@__PURE__*/ S.Array(
475
+ AiGatewayVirtualModelConfig,
476
+ ) as any as S.Schema<AiGatewayVirtualModelConfigListVirtualModelConfigsList>;
477
+
478
+ export interface AiGatewayVirtualModelConfigList {
479
+ /** The page of VMCs. */
480
+ virtualModelConfigs: AiGatewayVirtualModelConfigListVirtualModelConfigsList;
481
+ /** Cursor for the next page, or null when no more pages remain. */
482
+ cursor: string | null;
483
+ }
484
+ export const AiGatewayVirtualModelConfigList = /*@__PURE__*/ S.suspend(() =>
485
+ S.Struct({
486
+ virtualModelConfigs: AiGatewayVirtualModelConfigListVirtualModelConfigsList,
487
+ cursor: S.NullOr(S.String),
488
+ }),
489
+ ).annotate({
490
+ identifier: "AiGatewayVirtualModelConfigList",
491
+ }) as any as S.Schema<AiGatewayVirtualModelConfigList>;
492
+
493
+ export interface UpdateAiGatewayVirtualModelConfigRequest {
494
+ /** The Team identifier to perform the request on behalf of. */
495
+ teamId?: string;
496
+ /** The Team slug to perform the request on behalf of. */
497
+ slug?: string;
498
+ }
499
+ export const UpdateAiGatewayVirtualModelConfigRequest = /*@__PURE__*/ S.suspend(
500
+ () =>
501
+ S.Struct({
502
+ teamId: S.optional(S.String.pipe(T.Query())),
503
+ slug: S.optional(S.String.pipe(T.Query())),
504
+ }).pipe(
505
+ T.Http({
506
+ method: "PATCH",
507
+ uri: "/v1/ai-gateway/virtual-model-configs",
508
+ code: 200,
509
+ }),
510
+ ),
511
+ ).annotate({
512
+ identifier: "UpdateAiGatewayVirtualModelConfigRequest",
513
+ }) as any as S.Schema<UpdateAiGatewayVirtualModelConfigRequest>;
514
+
515
+ export type CreateAiGatewayVirtualModelConfigError =
516
+ | BadRequest
517
+ | Forbidden
518
+ | Conflict
519
+ | VercelOpError;
520
+ /** Create virtual model config Create a virtual model config (VMC) */
521
+ export const createAiGatewayVirtualModelConfig: API.OperationMethod<
522
+ CreateAiGatewayVirtualModelConfigRequest,
523
+ AiGatewayVirtualModelConfig,
524
+ CreateAiGatewayVirtualModelConfigError,
525
+ VercelOpContext
526
+ > = /*@__PURE__*/ API.make(() => ({
527
+ input: CreateAiGatewayVirtualModelConfigRequest,
528
+ output: AiGatewayVirtualModelConfig,
529
+ errors: [BadRequest, Forbidden, Conflict],
530
+ protocol: VercelProtocol,
531
+ retry: Retry.Retry,
532
+ }));
533
+
534
+ export type DeleteAiGatewayVirtualModelConfigError =
535
+ | BadRequest
536
+ | Forbidden
537
+ | NotFound
538
+ | VercelOpError;
539
+ /** Delete virtual model config Delete a virtual model config (soft delete) */
540
+ export const deleteAiGatewayVirtualModelConfig: API.OperationMethod<
541
+ DeleteAiGatewayVirtualModelConfigRequest,
542
+ DeleteAiGatewayVirtualModelConfigResponse,
543
+ DeleteAiGatewayVirtualModelConfigError,
544
+ VercelOpContext
545
+ > = /*@__PURE__*/ API.make(() => ({
546
+ input: DeleteAiGatewayVirtualModelConfigRequest,
547
+ output: DeleteAiGatewayVirtualModelConfigResponse,
548
+ errors: [BadRequest, Forbidden, NotFound],
549
+ protocol: VercelProtocol,
550
+ retry: Retry.Retry,
551
+ }));
552
+
553
+ export type GetAiGatewayVirtualModelConfigError =
554
+ | BadRequest
555
+ | Forbidden
556
+ | NotFound
557
+ | VercelOpError;
558
+ /** Get virtual model config Get a virtual model config */
559
+ export const getAiGatewayVirtualModelConfig: API.OperationMethod<
560
+ GetAiGatewayVirtualModelConfigRequest,
561
+ AiGatewayVirtualModelConfig,
562
+ GetAiGatewayVirtualModelConfigError,
563
+ VercelOpContext
564
+ > = /*@__PURE__*/ API.make(() => ({
565
+ input: GetAiGatewayVirtualModelConfigRequest,
566
+ output: AiGatewayVirtualModelConfig,
567
+ errors: [BadRequest, Forbidden, NotFound],
568
+ protocol: VercelProtocol,
569
+ retry: Retry.Retry,
570
+ }));
571
+
572
+ export type ListAiGatewayVirtualModelConfigsError =
573
+ | BadRequest
574
+ | Forbidden
575
+ | VercelOpError;
576
+ /** List virtual model configs List virtual model configs. With `ownerId`, returns all of that team's VMCs. Without it, pages through VMCs across all teams (newest-first, `limit`/`cursor`). */
577
+ export const listAiGatewayVirtualModelConfigs: API.OperationMethod<
578
+ ListAiGatewayVirtualModelConfigsRequest,
579
+ AiGatewayVirtualModelConfigList,
580
+ ListAiGatewayVirtualModelConfigsError,
581
+ VercelOpContext
582
+ > = /*@__PURE__*/ API.make(() => ({
583
+ input: ListAiGatewayVirtualModelConfigsRequest,
584
+ output: AiGatewayVirtualModelConfigList,
585
+ errors: [BadRequest, Forbidden],
586
+ protocol: VercelProtocol,
587
+ retry: Retry.Retry,
588
+ }));
589
+
590
+ export type UpdateAiGatewayVirtualModelConfigError =
591
+ | BadRequest
592
+ | Forbidden
593
+ | NotFound
594
+ | VercelOpError;
595
+ /** Update virtual model config Update a virtual model config */
596
+ export const updateAiGatewayVirtualModelConfig: API.OperationMethod<
597
+ UpdateAiGatewayVirtualModelConfigRequest,
598
+ AiGatewayVirtualModelConfig,
599
+ UpdateAiGatewayVirtualModelConfigError,
600
+ VercelOpContext
601
+ > = /*@__PURE__*/ API.make(() => ({
602
+ input: UpdateAiGatewayVirtualModelConfigRequest,
603
+ output: AiGatewayVirtualModelConfig,
604
+ errors: [BadRequest, Forbidden, NotFound],
605
+ protocol: VercelProtocol,
606
+ retry: Retry.Retry,
607
+ }));