@distilled.cloud/vercel 1.0.0-rc.7 → 1.0.0-rc.9

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 (198) hide show
  1. package/LICENSE +201 -0
  2. package/lib/services/access_groups.d.ts +1 -1
  3. package/lib/services/access_groups.d.ts.map +1 -1
  4. package/lib/services/access_groups.js +1 -1
  5. package/lib/services/access_groups.js.map +1 -1
  6. package/lib/services/ai_gateway.js +1 -1
  7. package/lib/services/ai_gateway.js.map +1 -1
  8. package/lib/services/aliases.d.ts +3 -3
  9. package/lib/services/aliases.d.ts.map +1 -1
  10. package/lib/services/aliases.js +4 -4
  11. package/lib/services/aliases.js.map +1 -1
  12. package/lib/services/api_ai_gateway.d.ts +275 -0
  13. package/lib/services/api_ai_gateway.d.ts.map +1 -0
  14. package/lib/services/api_ai_gateway.js +229 -0
  15. package/lib/services/api_ai_gateway.js.map +1 -0
  16. package/lib/services/artifacts.d.ts +1 -1
  17. package/lib/services/artifacts.d.ts.map +1 -1
  18. package/lib/services/artifacts.js +12 -12
  19. package/lib/services/artifacts.js.map +1 -1
  20. package/lib/services/authentication.js +1 -1
  21. package/lib/services/authentication.js.map +1 -1
  22. package/lib/services/billing.d.ts +145 -7
  23. package/lib/services/billing.d.ts.map +1 -1
  24. package/lib/services/billing.js +121 -5
  25. package/lib/services/billing.js.map +1 -1
  26. package/lib/services/bulk_redirects.d.ts +4 -4
  27. package/lib/services/bulk_redirects.d.ts.map +1 -1
  28. package/lib/services/bulk_redirects.js +4 -4
  29. package/lib/services/bulk_redirects.js.map +1 -1
  30. package/lib/services/certs.d.ts +9 -9
  31. package/lib/services/certs.d.ts.map +1 -1
  32. package/lib/services/certs.js +10 -12
  33. package/lib/services/certs.js.map +1 -1
  34. package/lib/services/checks_v2.d.ts +5 -0
  35. package/lib/services/checks_v2.d.ts.map +1 -1
  36. package/lib/services/checks_v2.js +6 -1
  37. package/lib/services/checks_v2.js.map +1 -1
  38. package/lib/services/connect.d.ts +1721 -527
  39. package/lib/services/connect.d.ts.map +1 -1
  40. package/lib/services/connect.js +1034 -414
  41. package/lib/services/connect.js.map +1 -1
  42. package/lib/services/deployments.d.ts +338 -30
  43. package/lib/services/deployments.d.ts.map +1 -1
  44. package/lib/services/deployments.js +335 -11
  45. package/lib/services/deployments.js.map +1 -1
  46. package/lib/services/dns.d.ts +13 -13
  47. package/lib/services/dns.d.ts.map +1 -1
  48. package/lib/services/dns.js +13 -14
  49. package/lib/services/dns.js.map +1 -1
  50. package/lib/services/domains.d.ts +55 -27
  51. package/lib/services/domains.d.ts.map +1 -1
  52. package/lib/services/domains.js +38 -25
  53. package/lib/services/domains.js.map +1 -1
  54. package/lib/services/domains_registrar.d.ts.map +1 -1
  55. package/lib/services/domains_registrar.js +1 -1
  56. package/lib/services/domains_registrar.js.map +1 -1
  57. package/lib/services/drains.d.ts +8 -8
  58. package/lib/services/drains.d.ts.map +1 -1
  59. package/lib/services/drains.js +1 -1
  60. package/lib/services/drains.js.map +1 -1
  61. package/lib/services/edge_cache.js +1 -1
  62. package/lib/services/edge_cache.js.map +1 -1
  63. package/lib/services/environment.d.ts +39 -39
  64. package/lib/services/environment.d.ts.map +1 -1
  65. package/lib/services/environment.js +35 -37
  66. package/lib/services/environment.js.map +1 -1
  67. package/lib/services/feature_flags.d.ts +93 -309
  68. package/lib/services/feature_flags.d.ts.map +1 -1
  69. package/lib/services/feature_flags.js +93 -303
  70. package/lib/services/feature_flags.js.map +1 -1
  71. package/lib/services/global_config.d.ts +40 -40
  72. package/lib/services/global_config.d.ts.map +1 -1
  73. package/lib/services/global_config.js +16 -14
  74. package/lib/services/global_config.js.map +1 -1
  75. package/lib/services/index.d.ts +3 -0
  76. package/lib/services/index.d.ts.map +1 -1
  77. package/lib/services/index.js +3 -0
  78. package/lib/services/index.js.map +1 -1
  79. package/lib/services/integrations.d.ts +44 -17
  80. package/lib/services/integrations.d.ts.map +1 -1
  81. package/lib/services/integrations.js +32 -7
  82. package/lib/services/integrations.js.map +1 -1
  83. package/lib/services/kms.d.ts +1095 -0
  84. package/lib/services/kms.d.ts.map +1 -0
  85. package/lib/services/kms.js +982 -0
  86. package/lib/services/kms.js.map +1 -0
  87. package/lib/services/log_drains.d.ts +4 -4
  88. package/lib/services/log_drains.d.ts.map +1 -1
  89. package/lib/services/log_drains.js +1 -1
  90. package/lib/services/log_drains.js.map +1 -1
  91. package/lib/services/logs.js +1 -1
  92. package/lib/services/logs.js.map +1 -1
  93. package/lib/services/marketplace.d.ts +95 -33
  94. package/lib/services/marketplace.d.ts.map +1 -1
  95. package/lib/services/marketplace.js +123 -31
  96. package/lib/services/marketplace.js.map +1 -1
  97. package/lib/services/microfrontends.d.ts +290 -250
  98. package/lib/services/microfrontends.d.ts.map +1 -1
  99. package/lib/services/microfrontends.js +281 -244
  100. package/lib/services/microfrontends.js.map +1 -1
  101. package/lib/services/misc.d.ts +192 -0
  102. package/lib/services/misc.d.ts.map +1 -0
  103. package/lib/services/misc.js +125 -0
  104. package/lib/services/misc.js.map +1 -0
  105. package/lib/services/networking.d.ts +123 -2
  106. package/lib/services/networking.d.ts.map +1 -1
  107. package/lib/services/networking.js +132 -2
  108. package/lib/services/networking.js.map +1 -1
  109. package/lib/services/observability.js +1 -1
  110. package/lib/services/observability.js.map +1 -1
  111. package/lib/services/project_members.js +1 -1
  112. package/lib/services/project_members.js.map +1 -1
  113. package/lib/services/project_routes.d.ts.map +1 -1
  114. package/lib/services/project_routes.js +1 -1
  115. package/lib/services/project_routes.js.map +1 -1
  116. package/lib/services/projects.d.ts +356 -116
  117. package/lib/services/projects.d.ts.map +1 -1
  118. package/lib/services/projects.js +260 -64
  119. package/lib/services/projects.js.map +1 -1
  120. package/lib/services/rolling_release.d.ts +2 -2
  121. package/lib/services/rolling_release.d.ts.map +1 -1
  122. package/lib/services/rolling_release.js +1 -1
  123. package/lib/services/rolling_release.js.map +1 -1
  124. package/lib/services/sandboxes.d.ts +1007 -410
  125. package/lib/services/sandboxes.d.ts.map +1 -1
  126. package/lib/services/sandboxes.js +732 -293
  127. package/lib/services/sandboxes.js.map +1 -1
  128. package/lib/services/security.d.ts +590 -275
  129. package/lib/services/security.d.ts.map +1 -1
  130. package/lib/services/security.js +562 -208
  131. package/lib/services/security.js.map +1 -1
  132. package/lib/services/storage.d.ts +69 -69
  133. package/lib/services/storage.d.ts.map +1 -1
  134. package/lib/services/storage.js +59 -59
  135. package/lib/services/storage.js.map +1 -1
  136. package/lib/services/teams.d.ts +351 -328
  137. package/lib/services/teams.d.ts.map +1 -1
  138. package/lib/services/teams.js +299 -284
  139. package/lib/services/teams.js.map +1 -1
  140. package/lib/services/user.d.ts +4237 -3650
  141. package/lib/services/user.d.ts.map +1 -1
  142. package/lib/services/user.js +3426 -2935
  143. package/lib/services/user.js.map +1 -1
  144. package/lib/services/vcr.d.ts +80 -122
  145. package/lib/services/vcr.d.ts.map +1 -1
  146. package/lib/services/vcr.js +89 -144
  147. package/lib/services/vcr.js.map +1 -1
  148. package/lib/services/web_analytics.d.ts +42 -10
  149. package/lib/services/web_analytics.d.ts.map +1 -1
  150. package/lib/services/web_analytics.js +39 -9
  151. package/lib/services/web_analytics.js.map +1 -1
  152. package/lib/services/webhooks.d.ts +13 -1
  153. package/lib/services/webhooks.d.ts.map +1 -1
  154. package/lib/services/webhooks.js +11 -1
  155. package/lib/services/webhooks.js.map +1 -1
  156. package/package.json +6 -5
  157. package/src/services/access_groups.ts +5 -2
  158. package/src/services/ai_gateway.ts +1 -1
  159. package/src/services/aliases.ts +9 -8
  160. package/src/services/api_ai_gateway.ts +607 -0
  161. package/src/services/artifacts.ts +13 -13
  162. package/src/services/authentication.ts +1 -1
  163. package/src/services/billing.ts +358 -26
  164. package/src/services/bulk_redirects.ts +10 -10
  165. package/src/services/certs.ts +20 -26
  166. package/src/services/checks_v2.ts +11 -1
  167. package/src/services/connect.ts +3330 -1121
  168. package/src/services/deployments.ts +1513 -429
  169. package/src/services/dns.ts +26 -27
  170. package/src/services/domains.ts +119 -63
  171. package/src/services/domains_registrar.ts +37 -37
  172. package/src/services/drains.ts +35 -18
  173. package/src/services/edge_cache.ts +1 -1
  174. package/src/services/environment.ts +99 -95
  175. package/src/services/feature_flags.ts +332 -884
  176. package/src/services/global_config.ts +59 -57
  177. package/src/services/index.ts +3 -0
  178. package/src/services/integrations.ts +870 -668
  179. package/src/services/kms.ts +2631 -0
  180. package/src/services/log_drains.ts +73 -41
  181. package/src/services/logs.ts +1 -1
  182. package/src/services/marketplace.ts +324 -96
  183. package/src/services/microfrontends.ts +1582 -1306
  184. package/src/services/misc.ts +364 -0
  185. package/src/services/networking.ts +339 -4
  186. package/src/services/observability.ts +1 -1
  187. package/src/services/project_members.ts +1 -1
  188. package/src/services/project_routes.ts +25 -16
  189. package/src/services/projects.ts +1987 -691
  190. package/src/services/rolling_release.ts +100 -96
  191. package/src/services/sandboxes.ts +3013 -1268
  192. package/src/services/security.ts +3433 -1845
  193. package/src/services/storage.ts +145 -141
  194. package/src/services/teams.ts +1061 -986
  195. package/src/services/user.ts +8490 -6901
  196. package/src/services/vcr.ts +349 -443
  197. package/src/services/web_analytics.ts +83 -13
  198. package/src/services/webhooks.ts +32 -1
@@ -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
+ /*@__PURE__*/ 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
+ | undefined;
139
+ };
140
+ export const AiGatewayVirtualModelConfigInferenceRegionProvidersMap =
141
+ /*@__PURE__*/ S.Record(
142
+ S.String,
143
+ AiGatewayVirtualModelConfigInferenceRegionProvidersValue,
144
+ ) as any as S.Schema<AiGatewayVirtualModelConfigInferenceRegionProvidersMap>;
145
+
146
+ /** Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`. */
147
+ export type AiGatewayVirtualModelConfigInferenceRegionScope =
148
+ | "global"
149
+ | "specific"
150
+ | "zone";
151
+ export const AiGatewayVirtualModelConfigInferenceRegionScope =
152
+ /*@__PURE__*/ 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 = /*@__PURE__*/ 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 = /*@__PURE__*/ S.String;
222
+
223
+ /** Limit providers to those with these features. */
224
+ export type AiGatewayVirtualModelConfigHasItem = "implicit-caching" | "vision";
225
+ export const AiGatewayVirtualModelConfigHasItem = /*@__PURE__*/ 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 = /*@__PURE__*/ 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 = /*@__PURE__*/ 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 = /*@__PURE__*/ 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
+ }));
@@ -1,4 +1,4 @@
1
- // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/openapi.json). Do not edit.
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-vercel/specs/openapi.json). Do not edit.
2
2
  import * as S from "@distilled.cloud/core/schema";
3
3
  import * as API from "@distilled.cloud/core/api";
4
4
  import * as C from "@distilled.cloud/core/category";
@@ -204,10 +204,10 @@ export const DownloadArtifactRequest = /*@__PURE__*/ S.suspend(() =>
204
204
  teamId: S.optional(S.String.pipe(T.Query())),
205
205
  slug: S.optional(S.String.pipe(T.Query())),
206
206
  xArtifactClientCi: S.optional(
207
- S.String.pipe(T.Header("x-Artifact-Client-Ci")),
207
+ S.String.pipe(T.Header("x-artifact-client-ci")),
208
208
  ),
209
209
  xArtifactClientInteractive: S.optional(
210
- S.Number.pipe(T.Header("x-Artifact-Client-Interactive")),
210
+ S.Number.pipe(T.Header("x-artifact-client-interactive")),
211
211
  ),
212
212
  }).pipe(T.Http({ method: "GET", uri: "/v8/artifacts/{hash}", code: 200 })),
213
213
  ).annotate({
@@ -274,10 +274,10 @@ export const RecordEventsRequest = /*@__PURE__*/ S.suspend(() =>
274
274
  teamId: S.optional(S.String.pipe(T.Query())),
275
275
  slug: S.optional(S.String.pipe(T.Query())),
276
276
  xArtifactClientCi: S.optional(
277
- S.String.pipe(T.Header("x-Artifact-Client-Ci")),
277
+ S.String.pipe(T.Header("x-artifact-client-ci")),
278
278
  ),
279
279
  xArtifactClientInteractive: S.optional(
280
- S.Number.pipe(T.Header("x-Artifact-Client-Interactive")),
280
+ S.Number.pipe(T.Header("x-artifact-client-interactive")),
281
281
  ),
282
282
  body: RecordEventsRequestBodyList.pipe(T.HttpBody()),
283
283
  }).pipe(T.Http({ method: "POST", uri: "/v8/artifacts/events", code: 200 })),
@@ -353,7 +353,7 @@ export interface UploadArtifactRequest {
353
353
  /** The Team slug to perform the request on behalf of. */
354
354
  slug?: string;
355
355
  /** The artifact size in bytes */
356
- contentLength?: number;
356
+ contentLength: number;
357
357
  /** The time taken to generate the uploaded artifact in milliseconds. */
358
358
  xArtifactDuration?: number;
359
359
  /** The continuous integration or delivery environment where this artifact was generated. */
@@ -372,20 +372,20 @@ export const UploadArtifactRequest = /*@__PURE__*/ S.suspend(() =>
372
372
  hash: S.String.pipe(T.Label()),
373
373
  teamId: S.optional(S.String.pipe(T.Query())),
374
374
  slug: S.optional(S.String.pipe(T.Query())),
375
- contentLength: S.optional(S.Number.pipe(T.Header("content-Length"))),
375
+ contentLength: S.Number.pipe(T.Header("Content-Length")),
376
376
  xArtifactDuration: S.optional(
377
- S.Number.pipe(T.Header("x-Artifact-Duration")),
377
+ S.Number.pipe(T.Header("x-artifact-duration")),
378
378
  ),
379
379
  xArtifactClientCi: S.optional(
380
- S.String.pipe(T.Header("x-Artifact-Client-Ci")),
380
+ S.String.pipe(T.Header("x-artifact-client-ci")),
381
381
  ),
382
382
  xArtifactClientInteractive: S.optional(
383
- S.Number.pipe(T.Header("x-Artifact-Client-Interactive")),
383
+ S.Number.pipe(T.Header("x-artifact-client-interactive")),
384
384
  ),
385
- xArtifactTag: S.optional(S.String.pipe(T.Header("x-Artifact-Tag"))),
386
- xArtifactSha: S.optional(S.String.pipe(T.Header("x-Artifact-Sha"))),
385
+ xArtifactTag: S.optional(S.String.pipe(T.Header("x-artifact-tag"))),
386
+ xArtifactSha: S.optional(S.String.pipe(T.Header("x-artifact-sha"))),
387
387
  xArtifactDirtyHash: S.optional(
388
- S.String.pipe(T.Header("x-Artifact-Dirty-Hash")),
388
+ S.String.pipe(T.Header("x-artifact-dirty-hash")),
389
389
  ),
390
390
  }).pipe(T.Http({ method: "PUT", uri: "/v8/artifacts/{hash}", code: 200 })),
391
391
  ).annotate({
@@ -1,4 +1,4 @@
1
- // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/openapi.json). Do not edit.
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-vercel/specs/openapi.json). Do not edit.
2
2
  import * as S from "@distilled.cloud/core/schema";
3
3
  import * as Redacted from "effect/Redacted";
4
4
  import * as API from "@distilled.cloud/core/api";