@vercel/sdk 1.10.5 → 1.10.7

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 (226) hide show
  1. package/README.md +58 -45
  2. package/bin/mcp-server.js +5829 -1512
  3. package/bin/mcp-server.js.map +44 -35
  4. package/docs/sdks/integrations/README.md +209 -0
  5. package/docs/sdks/projects/README.md +4 -0
  6. package/docs/sdks/teams/README.md +12 -0
  7. package/docs/sdks/vercel/README.md +74 -0
  8. package/esm/__tests__/domains.test.js +7 -2
  9. package/esm/__tests__/domains.test.js.map +1 -1
  10. package/esm/__tests__/edgeconfig.test.js +6 -6
  11. package/esm/__tests__/edgeconfig.test.js.map +1 -1
  12. package/esm/__tests__/integrations.test.js +62 -0
  13. package/esm/__tests__/integrations.test.js.map +1 -1
  14. package/esm/__tests__/rollingrelease.test.js +1 -1
  15. package/esm/__tests__/security.test.js +1 -11
  16. package/esm/__tests__/security.test.js.map +1 -1
  17. package/esm/__tests__/vercel.test.js +28 -1
  18. package/esm/__tests__/vercel.test.js.map +1 -1
  19. package/esm/funcs/domainsCheckDomainPrice.js +2 -2
  20. package/esm/funcs/domainsCheckDomainPrice.js.map +1 -1
  21. package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts +14 -0
  22. package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts.map +1 -0
  23. package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js +84 -0
  24. package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js.map +1 -0
  25. package/esm/funcs/integrationsConnectIntegrationResourceToProject.d.ts +20 -0
  26. package/esm/funcs/integrationsConnectIntegrationResourceToProject.d.ts.map +1 -0
  27. package/esm/funcs/integrationsConnectIntegrationResourceToProject.js +97 -0
  28. package/esm/funcs/integrationsConnectIntegrationResourceToProject.js.map +1 -0
  29. package/esm/funcs/integrationsCreateIntegrationStoreDirect.d.ts +21 -0
  30. package/esm/funcs/integrationsCreateIntegrationStoreDirect.d.ts.map +1 -0
  31. package/esm/funcs/integrationsCreateIntegrationStoreDirect.js +90 -0
  32. package/esm/funcs/integrationsCreateIntegrationStoreDirect.js.map +1 -0
  33. package/esm/funcs/marketplaceExchangeSsoToken.js +2 -2
  34. package/esm/funcs/marketplaceExchangeSsoToken.js.map +1 -1
  35. package/esm/funcs/marketplaceSubmitInvoice.js +2 -2
  36. package/esm/funcs/marketplaceSubmitInvoice.js.map +1 -1
  37. package/esm/funcs/marketplaceUpdateInvoice.js +2 -2
  38. package/esm/funcs/marketplaceUpdateInvoice.js.map +1 -1
  39. package/esm/funcs/projectsGetProjects.js +2 -0
  40. package/esm/funcs/projectsGetProjects.js.map +1 -1
  41. package/esm/lib/config.d.ts +3 -3
  42. package/esm/lib/config.js +3 -3
  43. package/esm/mcp-server/mcp-server.js +1 -1
  44. package/esm/mcp-server/server.d.ts.map +1 -1
  45. package/esm/mcp-server/server.js +7 -1
  46. package/esm/mcp-server/server.js.map +1 -1
  47. package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts +7 -0
  48. package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts.map +1 -0
  49. package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js +26 -0
  50. package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js.map +1 -0
  51. package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.d.ts +7 -0
  52. package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.d.ts.map +1 -0
  53. package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.js +27 -0
  54. package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.js.map +1 -0
  55. package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.d.ts +7 -0
  56. package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.d.ts.map +1 -0
  57. package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.js +28 -0
  58. package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.js.map +1 -0
  59. package/esm/models/acceptprojecttransferrequestop.d.ts +37 -0
  60. package/esm/models/acceptprojecttransferrequestop.d.ts.map +1 -1
  61. package/esm/models/acceptprojecttransferrequestop.js +40 -1
  62. package/esm/models/acceptprojecttransferrequestop.js.map +1 -1
  63. package/esm/models/authuser.d.ts +3 -3
  64. package/esm/models/authuser.js +1 -1
  65. package/esm/models/authuser.js.map +1 -1
  66. package/esm/models/canceldeploymentop.d.ts +45 -7
  67. package/esm/models/canceldeploymentop.d.ts.map +1 -1
  68. package/esm/models/canceldeploymentop.js +31 -2
  69. package/esm/models/canceldeploymentop.js.map +1 -1
  70. package/esm/models/connectintegrationresourcetoprojectop.d.ts +68 -0
  71. package/esm/models/connectintegrationresourcetoprojectop.d.ts.map +1 -0
  72. package/esm/models/connectintegrationresourcetoprojectop.js +73 -0
  73. package/esm/models/connectintegrationresourcetoprojectop.js.map +1 -0
  74. package/esm/models/createdeploymentop.d.ts +259 -221
  75. package/esm/models/createdeploymentop.d.ts.map +1 -1
  76. package/esm/models/createdeploymentop.js +233 -206
  77. package/esm/models/createdeploymentop.js.map +1 -1
  78. package/esm/models/createintegrationstoredirectop.d.ts +5995 -0
  79. package/esm/models/createintegrationstoredirectop.d.ts.map +1 -0
  80. package/esm/models/createintegrationstoredirectop.js +6597 -0
  81. package/esm/models/createintegrationstoredirectop.js.map +1 -0
  82. package/esm/models/createprojectop.d.ts +31 -4
  83. package/esm/models/createprojectop.d.ts.map +1 -1
  84. package/esm/models/createprojectop.js +10 -4
  85. package/esm/models/createprojectop.js.map +1 -1
  86. package/esm/models/createwebhookop.d.ts +12 -0
  87. package/esm/models/createwebhookop.d.ts.map +1 -1
  88. package/esm/models/createwebhookop.js +4 -0
  89. package/esm/models/createwebhookop.js.map +1 -1
  90. package/esm/models/getconfigurationop.d.ts +6 -0
  91. package/esm/models/getconfigurationop.d.ts.map +1 -1
  92. package/esm/models/getconfigurationop.js +2 -0
  93. package/esm/models/getconfigurationop.js.map +1 -1
  94. package/esm/models/getconfigurationproductsop.d.ts +533 -533
  95. package/esm/models/getconfigurationproductsop.d.ts.map +1 -1
  96. package/esm/models/getconfigurationproductsop.js +666 -665
  97. package/esm/models/getconfigurationproductsop.js.map +1 -1
  98. package/esm/models/getconfigurationsop.d.ts +6 -0
  99. package/esm/models/getconfigurationsop.d.ts.map +1 -1
  100. package/esm/models/getconfigurationsop.js +2 -0
  101. package/esm/models/getconfigurationsop.js.map +1 -1
  102. package/esm/models/getdeploymentop.d.ts +45 -7
  103. package/esm/models/getdeploymentop.d.ts.map +1 -1
  104. package/esm/models/getdeploymentop.js +30 -2
  105. package/esm/models/getdeploymentop.js.map +1 -1
  106. package/esm/models/getintegrationresourceop.d.ts +13 -13
  107. package/esm/models/getintegrationresourceop.d.ts.map +1 -1
  108. package/esm/models/getintegrationresourceop.js +13 -13
  109. package/esm/models/getintegrationresourceop.js.map +1 -1
  110. package/esm/models/getprojectsop.d.ts +101 -4
  111. package/esm/models/getprojectsop.d.ts.map +1 -1
  112. package/esm/models/getprojectsop.js +57 -4
  113. package/esm/models/getprojectsop.js.map +1 -1
  114. package/esm/models/getteammembersop.d.ts +102 -9
  115. package/esm/models/getteammembersop.d.ts.map +1 -1
  116. package/esm/models/getteammembersop.js +60 -3
  117. package/esm/models/getteammembersop.js.map +1 -1
  118. package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.d.ts +247 -0
  119. package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.d.ts.map +1 -0
  120. package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.js +246 -0
  121. package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.js.map +1 -0
  122. package/esm/models/getwebhookop.d.ts +6 -0
  123. package/esm/models/getwebhookop.d.ts.map +1 -1
  124. package/esm/models/getwebhookop.js +2 -0
  125. package/esm/models/getwebhookop.js.map +1 -1
  126. package/esm/models/getwebhooksop.d.ts +27 -15
  127. package/esm/models/getwebhooksop.d.ts.map +1 -1
  128. package/esm/models/getwebhooksop.js +19 -15
  129. package/esm/models/getwebhooksop.js.map +1 -1
  130. package/esm/models/inviteusertoteamop.d.ts +3 -0
  131. package/esm/models/inviteusertoteamop.d.ts.map +1 -1
  132. package/esm/models/inviteusertoteamop.js +1 -0
  133. package/esm/models/inviteusertoteamop.js.map +1 -1
  134. package/esm/models/patchteamop.d.ts +253 -0
  135. package/esm/models/patchteamop.d.ts.map +1 -1
  136. package/esm/models/patchteamop.js +150 -0
  137. package/esm/models/patchteamop.js.map +1 -1
  138. package/esm/models/team.d.ts +47 -0
  139. package/esm/models/team.d.ts.map +1 -1
  140. package/esm/models/team.js +36 -0
  141. package/esm/models/team.js.map +1 -1
  142. package/esm/models/teamlimited.d.ts +3 -0
  143. package/esm/models/teamlimited.d.ts.map +1 -1
  144. package/esm/models/teamlimited.js +1 -0
  145. package/esm/models/teamlimited.js.map +1 -1
  146. package/esm/models/updatefirewallconfigop.d.ts +32 -32
  147. package/esm/models/updatefirewallconfigop.d.ts.map +1 -1
  148. package/esm/models/updatefirewallconfigop.js +49 -49
  149. package/esm/models/updatefirewallconfigop.js.map +1 -1
  150. package/esm/models/updateinvoiceop.d.ts +36 -15
  151. package/esm/models/updateinvoiceop.d.ts.map +1 -1
  152. package/esm/models/updateinvoiceop.js +37 -16
  153. package/esm/models/updateinvoiceop.js.map +1 -1
  154. package/esm/models/updateprojectdatacacheop.d.ts +25 -0
  155. package/esm/models/updateprojectdatacacheop.d.ts.map +1 -1
  156. package/esm/models/updateprojectdatacacheop.js +4 -0
  157. package/esm/models/updateprojectdatacacheop.js.map +1 -1
  158. package/esm/models/updateprojectop.d.ts +31 -4
  159. package/esm/models/updateprojectop.d.ts.map +1 -1
  160. package/esm/models/updateprojectop.js +10 -4
  161. package/esm/models/updateprojectop.js.map +1 -1
  162. package/esm/models/userevent.d.ts +406 -305
  163. package/esm/models/userevent.d.ts.map +1 -1
  164. package/esm/models/userevent.js +467 -365
  165. package/esm/models/userevent.js.map +1 -1
  166. package/esm/sdk/integrations.d.ts +16 -0
  167. package/esm/sdk/integrations.d.ts.map +1 -1
  168. package/esm/sdk/integrations.js +20 -0
  169. package/esm/sdk/integrations.js.map +1 -1
  170. package/esm/sdk/sdk.d.ts +3 -1
  171. package/esm/sdk/sdk.d.ts.map +1 -1
  172. package/esm/sdk/sdk.js +5 -0
  173. package/esm/sdk/sdk.js.map +1 -1
  174. package/examples/package-lock.json +1 -1
  175. package/jsr.json +1 -1
  176. package/package.json +1 -1
  177. package/src/__tests__/domains.test.ts +7 -2
  178. package/src/__tests__/edgeconfig.test.ts +6 -6
  179. package/src/__tests__/integrations.test.ts +65 -0
  180. package/src/__tests__/rollingrelease.test.ts +1 -1
  181. package/src/__tests__/security.test.ts +1 -11
  182. package/src/__tests__/vercel.test.ts +36 -1
  183. package/src/funcs/domainsCheckDomainPrice.ts +2 -2
  184. package/src/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.ts +207 -0
  185. package/src/funcs/integrationsConnectIntegrationResourceToProject.ts +213 -0
  186. package/src/funcs/integrationsCreateIntegrationStoreDirect.ts +207 -0
  187. package/src/funcs/marketplaceExchangeSsoToken.ts +2 -2
  188. package/src/funcs/marketplaceSubmitInvoice.ts +2 -2
  189. package/src/funcs/marketplaceUpdateInvoice.ts +2 -2
  190. package/src/funcs/projectsGetProjects.ts +2 -0
  191. package/src/lib/config.ts +3 -3
  192. package/src/mcp-server/mcp-server.ts +1 -1
  193. package/src/mcp-server/server.ts +9 -1
  194. package/src/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.ts +41 -0
  195. package/src/mcp-server/tools/integrationsConnectIntegrationResourceToProject.ts +37 -0
  196. package/src/mcp-server/tools/integrationsCreateIntegrationStoreDirect.ts +39 -0
  197. package/src/models/acceptprojecttransferrequestop.ts +88 -1
  198. package/src/models/authuser.ts +1 -1
  199. package/src/models/canceldeploymentop.ts +56 -9
  200. package/src/models/connectintegrationresourcetoprojectop.ts +185 -0
  201. package/src/models/createdeploymentop.ts +540 -498
  202. package/src/models/createintegrationstoredirectop.ts +15739 -0
  203. package/src/models/createprojectop.ts +41 -8
  204. package/src/models/createwebhookop.ts +4 -0
  205. package/src/models/getconfigurationop.ts +2 -0
  206. package/src/models/getconfigurationproductsop.ts +1326 -1163
  207. package/src/models/getconfigurationsop.ts +2 -0
  208. package/src/models/getdeploymentop.ts +59 -9
  209. package/src/models/getintegrationresourceop.ts +26 -20
  210. package/src/models/getprojectsop.ts +122 -8
  211. package/src/models/getteammembersop.ts +84 -3
  212. package/src/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.ts +575 -0
  213. package/src/models/getwebhookop.ts +2 -0
  214. package/src/models/getwebhooksop.ts +31 -25
  215. package/src/models/inviteusertoteamop.ts +1 -0
  216. package/src/models/patchteamop.ts +254 -0
  217. package/src/models/team.ts +92 -0
  218. package/src/models/teamlimited.ts +1 -0
  219. package/src/models/updatefirewallconfigop.ts +74 -68
  220. package/src/models/updateinvoiceop.ts +78 -27
  221. package/src/models/updateprojectdatacacheop.ts +29 -0
  222. package/src/models/updateprojectop.ts +41 -8
  223. package/src/models/userevent.ts +918 -682
  224. package/src/sdk/integrations.ts +41 -0
  225. package/src/sdk/sdk.ts +23 -1
  226. package/vercel-spec.json +3689 -540
@@ -0,0 +1,213 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import { VercelCore } from "../core.js";
7
+ import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js";
8
+ import * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import {
15
+ ConnectIntegrationResourceToProjectRequest,
16
+ ConnectIntegrationResourceToProjectRequest$outboundSchema,
17
+ } from "../models/connectintegrationresourcetoprojectop.js";
18
+ import {
19
+ ConnectionError,
20
+ InvalidRequestError,
21
+ RequestAbortedError,
22
+ RequestTimeoutError,
23
+ UnexpectedClientError,
24
+ } from "../models/httpclienterrors.js";
25
+ import { ResponseValidationError } from "../models/responsevalidationerror.js";
26
+ import { SDKValidationError } from "../models/sdkvalidationerror.js";
27
+ import {
28
+ VercelBadRequestError,
29
+ VercelBadRequestError$inboundSchema,
30
+ } from "../models/vercelbadrequesterror.js";
31
+ import { VercelError } from "../models/vercelerror.js";
32
+ import {
33
+ VercelForbiddenError,
34
+ VercelForbiddenError$inboundSchema,
35
+ } from "../models/vercelforbiddenerror.js";
36
+ import {
37
+ VercelNotFoundError,
38
+ VercelNotFoundError$inboundSchema,
39
+ } from "../models/vercelnotfounderror.js";
40
+ import { APICall, APIPromise } from "../types/async.js";
41
+ import { Result } from "../types/fp.js";
42
+
43
+ /**
44
+ * Connect integration resource to project
45
+ *
46
+ * @remarks
47
+ * Connects an integration resource to a Vercel project. This endpoint establishes a connection between a provisioned integration resource (from storage APIs like `POST /v1/storage/stores/integration/direct`) and a specific Vercel project.
48
+ */
49
+ export function integrationsConnectIntegrationResourceToProject(
50
+ client: VercelCore,
51
+ request: ConnectIntegrationResourceToProjectRequest,
52
+ options?: RequestOptions,
53
+ ): APIPromise<
54
+ Result<
55
+ void,
56
+ | VercelBadRequestError
57
+ | VercelForbiddenError
58
+ | VercelNotFoundError
59
+ | VercelError
60
+ | ResponseValidationError
61
+ | ConnectionError
62
+ | RequestAbortedError
63
+ | RequestTimeoutError
64
+ | InvalidRequestError
65
+ | UnexpectedClientError
66
+ | SDKValidationError
67
+ >
68
+ > {
69
+ return new APIPromise($do(
70
+ client,
71
+ request,
72
+ options,
73
+ ));
74
+ }
75
+
76
+ async function $do(
77
+ client: VercelCore,
78
+ request: ConnectIntegrationResourceToProjectRequest,
79
+ options?: RequestOptions,
80
+ ): Promise<
81
+ [
82
+ Result<
83
+ void,
84
+ | VercelBadRequestError
85
+ | VercelForbiddenError
86
+ | VercelNotFoundError
87
+ | VercelError
88
+ | ResponseValidationError
89
+ | ConnectionError
90
+ | RequestAbortedError
91
+ | RequestTimeoutError
92
+ | InvalidRequestError
93
+ | UnexpectedClientError
94
+ | SDKValidationError
95
+ >,
96
+ APICall,
97
+ ]
98
+ > {
99
+ const parsed = safeParse(
100
+ request,
101
+ (value) =>
102
+ ConnectIntegrationResourceToProjectRequest$outboundSchema.parse(value),
103
+ "Input validation failed",
104
+ );
105
+ if (!parsed.ok) {
106
+ return [parsed, { status: "invalid" }];
107
+ }
108
+ const payload = parsed.value;
109
+ const body = encodeJSON("body", payload.RequestBody, { explode: true });
110
+
111
+ const pathParams = {
112
+ integrationConfigurationId: encodeSimple(
113
+ "integrationConfigurationId",
114
+ payload.integrationConfigurationId,
115
+ { explode: false, charEncoding: "percent" },
116
+ ),
117
+ resourceId: encodeSimple("resourceId", payload.resourceId, {
118
+ explode: false,
119
+ charEncoding: "percent",
120
+ }),
121
+ };
122
+
123
+ const path = pathToFunc(
124
+ "/v1/integrations/installations/{integrationConfigurationId}/resources/{resourceId}/connections",
125
+ )(pathParams);
126
+
127
+ const query = encodeFormQuery({
128
+ "slug": payload.slug,
129
+ "teamId": payload.teamId,
130
+ });
131
+
132
+ const headers = new Headers(compactMap({
133
+ "Content-Type": "application/json",
134
+ Accept: "application/json",
135
+ }));
136
+
137
+ const secConfig = await extractSecurity(client._options.bearerToken);
138
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
139
+ const requestSecurity = resolveGlobalSecurity(securityInput);
140
+
141
+ const context = {
142
+ options: client._options,
143
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
144
+ operationID: "connectIntegrationResourceToProject",
145
+ oAuth2Scopes: [],
146
+
147
+ resolvedSecurity: requestSecurity,
148
+
149
+ securitySource: client._options.bearerToken,
150
+ retryConfig: options?.retries
151
+ || client._options.retryConfig
152
+ || { strategy: "none" },
153
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
154
+ };
155
+
156
+ const requestRes = client._createRequest(context, {
157
+ security: requestSecurity,
158
+ method: "POST",
159
+ baseURL: options?.serverURL,
160
+ path: path,
161
+ headers: headers,
162
+ query: query,
163
+ body: body,
164
+ userAgent: client._options.userAgent,
165
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
166
+ }, options);
167
+ if (!requestRes.ok) {
168
+ return [requestRes, { status: "invalid" }];
169
+ }
170
+ const req = requestRes.value;
171
+
172
+ const doResult = await client._do(req, {
173
+ context,
174
+ errorCodes: ["400", "401", "403", "404", "4XX", "5XX"],
175
+ retryConfig: context.retryConfig,
176
+ retryCodes: context.retryCodes,
177
+ });
178
+ if (!doResult.ok) {
179
+ return [doResult, { status: "request-error", request: req }];
180
+ }
181
+ const response = doResult.value;
182
+
183
+ const responseFields = {
184
+ HttpMeta: { Response: response, Request: req },
185
+ };
186
+
187
+ const [result] = await M.match<
188
+ void,
189
+ | VercelBadRequestError
190
+ | VercelForbiddenError
191
+ | VercelNotFoundError
192
+ | VercelError
193
+ | ResponseValidationError
194
+ | ConnectionError
195
+ | RequestAbortedError
196
+ | RequestTimeoutError
197
+ | InvalidRequestError
198
+ | UnexpectedClientError
199
+ | SDKValidationError
200
+ >(
201
+ M.nil(201, z.void()),
202
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
203
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
204
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
205
+ M.fail([403, "4XX"]),
206
+ M.fail("5XX"),
207
+ )(response, req, { extraFields: responseFields });
208
+ if (!result.ok) {
209
+ return [result, { status: "complete", request: req, response }];
210
+ }
211
+
212
+ return [result, { status: "complete", request: req, response }];
213
+ }
@@ -0,0 +1,207 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { VercelCore } from "../core.js";
6
+ import { encodeFormQuery, encodeJSON } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ CreateIntegrationStoreDirectRequest,
15
+ CreateIntegrationStoreDirectRequest$outboundSchema,
16
+ CreateIntegrationStoreDirectResponseBody,
17
+ CreateIntegrationStoreDirectResponseBody$inboundSchema,
18
+ } from "../models/createintegrationstoredirectop.js";
19
+ import {
20
+ ConnectionError,
21
+ InvalidRequestError,
22
+ RequestAbortedError,
23
+ RequestTimeoutError,
24
+ UnexpectedClientError,
25
+ } from "../models/httpclienterrors.js";
26
+ import { ResponseValidationError } from "../models/responsevalidationerror.js";
27
+ import { SDKValidationError } from "../models/sdkvalidationerror.js";
28
+ import {
29
+ VercelBadRequestError,
30
+ VercelBadRequestError$inboundSchema,
31
+ } from "../models/vercelbadrequesterror.js";
32
+ import { VercelError } from "../models/vercelerror.js";
33
+ import {
34
+ VercelForbiddenError,
35
+ VercelForbiddenError$inboundSchema,
36
+ } from "../models/vercelforbiddenerror.js";
37
+ import {
38
+ VercelNotFoundError,
39
+ VercelNotFoundError$inboundSchema,
40
+ } from "../models/vercelnotfounderror.js";
41
+ import {
42
+ VercelRateLimitError,
43
+ VercelRateLimitError$inboundSchema,
44
+ } from "../models/vercelratelimiterror.js";
45
+ import { APICall, APIPromise } from "../types/async.js";
46
+ import { Result } from "../types/fp.js";
47
+
48
+ /**
49
+ * Create integration store (free and paid plans)
50
+ *
51
+ * @remarks
52
+ * Creates an integration store for both FREE and PAID billing plans. This simplified endpoint automatically provisions real integration storage resources while handling billing complexity behind the scenes. It supports both free and paid billing plans with automatic authorization creation for paid resources. ## How it works 1. Validates the integration configuration and product 2. For free resources: Auto-discovers available free billing plans 3. For paid resources: Creates billing authorization inline using provided billingPlanId 4. Provisions real resources through the Vercel Marketplace 5. Returns the created store with connection details ## Workflow Before using this endpoint, discover available products and billing plans: 1. List your configurations: `GET /v1/integrations/configurations` 2. Get products for a configuration: `GET /v1/integrations/configuration/{id}/products` 3. Get billing plans for a product: `GET /integrations/integration/{integrationId}/products/{productId}/plans` 4. Review the `metadataSchema` for each product to understand required metadata 5. Create storage with discovered product: `POST /v1/storage/stores/integration/direct` ## Usage Patterns - **Free resources**: Omit `billingPlanId` - endpoint will auto-discover free plans - **Paid resources**: Provide `billingPlanId` from billing plans discovery - **Prepayment plans**: Also provide `prepaymentAmountCents` for variable amount plans ## Limitations - **Admin access required**: Only integration configuration admins can create stores - **Storage limits apply**: Subject to your team's storage quotas - **Payment method required**: For paid plans, ensure valid payment method is configured ## Error Responses - `400 Bad Request`: Invalid input, no plans available, or billing issues - `403 Forbidden`: Insufficient permissions (non-admin users) - `404 Not Found`: Integration configuration or product not found - `429 Too Many Requests`: Rate limit exceeded
53
+ */
54
+ export function integrationsCreateIntegrationStoreDirect(
55
+ client: VercelCore,
56
+ request: CreateIntegrationStoreDirectRequest,
57
+ options?: RequestOptions,
58
+ ): APIPromise<
59
+ Result<
60
+ CreateIntegrationStoreDirectResponseBody,
61
+ | VercelBadRequestError
62
+ | VercelForbiddenError
63
+ | VercelNotFoundError
64
+ | VercelRateLimitError
65
+ | VercelError
66
+ | ResponseValidationError
67
+ | ConnectionError
68
+ | RequestAbortedError
69
+ | RequestTimeoutError
70
+ | InvalidRequestError
71
+ | UnexpectedClientError
72
+ | SDKValidationError
73
+ >
74
+ > {
75
+ return new APIPromise($do(
76
+ client,
77
+ request,
78
+ options,
79
+ ));
80
+ }
81
+
82
+ async function $do(
83
+ client: VercelCore,
84
+ request: CreateIntegrationStoreDirectRequest,
85
+ options?: RequestOptions,
86
+ ): Promise<
87
+ [
88
+ Result<
89
+ CreateIntegrationStoreDirectResponseBody,
90
+ | VercelBadRequestError
91
+ | VercelForbiddenError
92
+ | VercelNotFoundError
93
+ | VercelRateLimitError
94
+ | VercelError
95
+ | ResponseValidationError
96
+ | ConnectionError
97
+ | RequestAbortedError
98
+ | RequestTimeoutError
99
+ | InvalidRequestError
100
+ | UnexpectedClientError
101
+ | SDKValidationError
102
+ >,
103
+ APICall,
104
+ ]
105
+ > {
106
+ const parsed = safeParse(
107
+ request,
108
+ (value) => CreateIntegrationStoreDirectRequest$outboundSchema.parse(value),
109
+ "Input validation failed",
110
+ );
111
+ if (!parsed.ok) {
112
+ return [parsed, { status: "invalid" }];
113
+ }
114
+ const payload = parsed.value;
115
+ const body = encodeJSON("body", payload.RequestBody, { explode: true });
116
+
117
+ const path = pathToFunc("/v1/storage/stores/integration/direct")();
118
+
119
+ const query = encodeFormQuery({
120
+ "slug": payload.slug,
121
+ "teamId": payload.teamId,
122
+ });
123
+
124
+ const headers = new Headers(compactMap({
125
+ "Content-Type": "application/json",
126
+ Accept: "application/json",
127
+ }));
128
+
129
+ const secConfig = await extractSecurity(client._options.bearerToken);
130
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
131
+ const requestSecurity = resolveGlobalSecurity(securityInput);
132
+
133
+ const context = {
134
+ options: client._options,
135
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
136
+ operationID: "createIntegrationStoreDirect",
137
+ oAuth2Scopes: [],
138
+
139
+ resolvedSecurity: requestSecurity,
140
+
141
+ securitySource: client._options.bearerToken,
142
+ retryConfig: options?.retries
143
+ || client._options.retryConfig
144
+ || { strategy: "none" },
145
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
146
+ };
147
+
148
+ const requestRes = client._createRequest(context, {
149
+ security: requestSecurity,
150
+ method: "POST",
151
+ baseURL: options?.serverURL,
152
+ path: path,
153
+ headers: headers,
154
+ query: query,
155
+ body: body,
156
+ userAgent: client._options.userAgent,
157
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
158
+ }, options);
159
+ if (!requestRes.ok) {
160
+ return [requestRes, { status: "invalid" }];
161
+ }
162
+ const req = requestRes.value;
163
+
164
+ const doResult = await client._do(req, {
165
+ context,
166
+ errorCodes: ["400", "401", "402", "403", "404", "429", "4XX", "5XX"],
167
+ retryConfig: context.retryConfig,
168
+ retryCodes: context.retryCodes,
169
+ });
170
+ if (!doResult.ok) {
171
+ return [doResult, { status: "request-error", request: req }];
172
+ }
173
+ const response = doResult.value;
174
+
175
+ const responseFields = {
176
+ HttpMeta: { Response: response, Request: req },
177
+ };
178
+
179
+ const [result] = await M.match<
180
+ CreateIntegrationStoreDirectResponseBody,
181
+ | VercelBadRequestError
182
+ | VercelForbiddenError
183
+ | VercelNotFoundError
184
+ | VercelRateLimitError
185
+ | VercelError
186
+ | ResponseValidationError
187
+ | ConnectionError
188
+ | RequestAbortedError
189
+ | RequestTimeoutError
190
+ | InvalidRequestError
191
+ | UnexpectedClientError
192
+ | SDKValidationError
193
+ >(
194
+ M.json(200, CreateIntegrationStoreDirectResponseBody$inboundSchema),
195
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
196
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
197
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
198
+ M.jsonErr(429, VercelRateLimitError$inboundSchema),
199
+ M.fail([402, 403, "4XX"]),
200
+ M.fail("5XX"),
201
+ )(response, req, { extraFields: responseFields });
202
+ if (!result.ok) {
203
+ return [result, { status: "complete", request: req, response }];
204
+ }
205
+
206
+ return [result, { status: "complete", request: req, response }];
207
+ }
@@ -139,7 +139,7 @@ async function $do(
139
139
 
140
140
  const doResult = await client._do(req, {
141
141
  context,
142
- errorCodes: ["400", "404", "4XX", "500", "5XX"],
142
+ errorCodes: ["400", "403", "404", "4XX", "500", "5XX"],
143
143
  retryConfig: context.retryConfig,
144
144
  retryCodes: context.retryCodes,
145
145
  });
@@ -168,7 +168,7 @@ async function $do(
168
168
  M.json(200, ExchangeSsoTokenResponseBody$inboundSchema),
169
169
  M.jsonErr(400, VercelBadRequestError$inboundSchema),
170
170
  M.jsonErr(404, VercelNotFoundError$inboundSchema),
171
- M.fail("4XX"),
171
+ M.fail([403, "4XX"]),
172
172
  M.fail([500, "5XX"]),
173
173
  )(response, req, { extraFields: responseFields });
174
174
  if (!result.ok) {
@@ -161,7 +161,7 @@ async function $do(
161
161
 
162
162
  const doResult = await client._do(req, {
163
163
  context,
164
- errorCodes: ["400", "401", "403", "404", "4XX", "5XX"],
164
+ errorCodes: ["400", "401", "403", "404", "409", "4XX", "5XX"],
165
165
  retryConfig: context.retryConfig,
166
166
  retryCodes: context.retryCodes,
167
167
  });
@@ -192,7 +192,7 @@ async function $do(
192
192
  M.jsonErr(400, VercelBadRequestError$inboundSchema),
193
193
  M.jsonErr(401, VercelForbiddenError$inboundSchema),
194
194
  M.jsonErr(404, VercelNotFoundError$inboundSchema),
195
- M.fail([403, "4XX"]),
195
+ M.fail([403, 409, "4XX"]),
196
196
  M.fail("5XX"),
197
197
  )(response, req, { extraFields: responseFields });
198
198
  if (!result.ok) {
@@ -164,7 +164,7 @@ async function $do(
164
164
 
165
165
  const doResult = await client._do(req, {
166
166
  context,
167
- errorCodes: ["400", "401", "403", "404", "4XX", "5XX"],
167
+ errorCodes: ["400", "401", "403", "404", "409", "4XX", "5XX"],
168
168
  retryConfig: context.retryConfig,
169
169
  retryCodes: context.retryCodes,
170
170
  });
@@ -195,7 +195,7 @@ async function $do(
195
195
  M.jsonErr(400, VercelBadRequestError$inboundSchema),
196
196
  M.jsonErr(401, VercelForbiddenError$inboundSchema),
197
197
  M.jsonErr(404, VercelNotFoundError$inboundSchema),
198
- M.fail([403, "4XX"]),
198
+ M.fail([403, 409, "4XX"]),
199
199
  M.fail("5XX"),
200
200
  )(response, req, { extraFields: responseFields });
201
201
  if (!result.ok) {
@@ -108,6 +108,7 @@ async function $do(
108
108
  "deprecated": payload.deprecated,
109
109
  "edgeConfigId": payload.edgeConfigId,
110
110
  "edgeConfigTokenId": payload.edgeConfigTokenId,
111
+ "elasticConcurrencyEnabled": payload.elasticConcurrencyEnabled,
111
112
  "excludeRepos": payload.excludeRepos,
112
113
  "from": payload.from,
113
114
  "gitForkProtection": payload.gitForkProtection,
@@ -117,6 +118,7 @@ async function $do(
117
118
  "repoUrl": payload.repoUrl,
118
119
  "search": payload.search,
119
120
  "slug": payload.slug,
121
+ "sortByElasticConcurrency": payload.sortByElasticConcurrency,
120
122
  "teamId": payload.teamId,
121
123
  });
122
124
 
package/src/lib/config.ts CHANGED
@@ -61,7 +61,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
61
61
  export const SDK_METADATA = {
62
62
  language: "typescript",
63
63
  openapiDocVersion: "0.0.1",
64
- sdkVersion: "1.10.5",
65
- genVersion: "2.686.7",
66
- userAgent: "speakeasy-sdk/typescript 1.10.5 2.686.7 0.0.1 @vercel/sdk",
64
+ sdkVersion: "1.10.7",
65
+ genVersion: "2.692.0",
66
+ userAgent: "speakeasy-sdk/typescript 1.10.7 2.692.0 0.0.1 @vercel/sdk",
67
67
  } as const;
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "1.10.5",
22
+ currentVersion: "1.10.7",
23
23
  },
24
24
  });
25
25
 
@@ -95,6 +95,9 @@ import { tool$environmentGetCustomEnvironment } from "./tools/environmentGetCust
95
95
  import { tool$environmentGetV9ProjectsIdOrNameCustomEnvironments } from "./tools/environmentGetV9ProjectsIdOrNameCustomEnvironments.js";
96
96
  import { tool$environmentRemoveCustomEnvironment } from "./tools/environmentRemoveCustomEnvironment.js";
97
97
  import { tool$environmentUpdateCustomEnvironment } from "./tools/environmentUpdateCustomEnvironment.js";
98
+ import { tool$getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans } from "./tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js";
99
+ import { tool$integrationsConnectIntegrationResourceToProject } from "./tools/integrationsConnectIntegrationResourceToProject.js";
100
+ import { tool$integrationsCreateIntegrationStoreDirect } from "./tools/integrationsCreateIntegrationStoreDirect.js";
98
101
  import { tool$integrationsDeleteConfiguration } from "./tools/integrationsDeleteConfiguration.js";
99
102
  import { tool$integrationsGetConfiguration } from "./tools/integrationsGetConfiguration.js";
100
103
  import { tool$integrationsGetConfigurationProducts } from "./tools/integrationsGetConfigurationProducts.js";
@@ -196,7 +199,7 @@ export function createMCPServer(deps: {
196
199
  }) {
197
200
  const server = new McpServer({
198
201
  name: "Vercel",
199
- version: "1.10.5",
202
+ version: "1.10.7",
200
203
  });
201
204
 
202
205
  const client = new VercelCore({
@@ -226,6 +229,9 @@ export function createMCPServer(deps: {
226
229
  const register = { tool, resource, resourceTemplate, prompt };
227
230
  void register; // suppress unused warnings
228
231
 
232
+ tool(
233
+ tool$getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans,
234
+ );
229
235
  tool(tool$accessGroupsReadAccessGroup);
230
236
  tool(tool$accessGroupsUpdateAccessGroup);
231
237
  tool(tool$accessGroupsDeleteAccessGroup);
@@ -282,10 +288,12 @@ export function createMCPServer(deps: {
282
288
  tool(tool$deploymentsGetDeploymentFileContents);
283
289
  tool(tool$deploymentsGetDeployments);
284
290
  tool(tool$deploymentsDeleteDeployment);
291
+ tool(tool$integrationsConnectIntegrationResourceToProject);
285
292
  tool(tool$integrationsGetConfigurations);
286
293
  tool(tool$integrationsGetConfiguration);
287
294
  tool(tool$integrationsDeleteConfiguration);
288
295
  tool(tool$integrationsGetConfigurationProducts);
296
+ tool(tool$integrationsCreateIntegrationStoreDirect);
289
297
  tool(tool$domainsBuyDomain);
290
298
  tool(tool$domainsCheckDomainPrice);
291
299
  tool(tool$domainsCheckDomainStatus);
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans } from "../../funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js";
6
+ import {
7
+ GetV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlansRequest$inboundSchema,
8
+ } from "../../models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.js";
9
+ import { formatResult, ToolDefinition } from "../tools.js";
10
+
11
+ const args = {
12
+ request:
13
+ GetV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlansRequest$inboundSchema,
14
+ };
15
+
16
+ export const tool$getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans:
17
+ ToolDefinition<typeof args> = {
18
+ name:
19
+ "get-v1-integrations-integration-integration-id-or-slug-products-product-id-or-slug-plans",
20
+ description: ``,
21
+ args,
22
+ tool: async (client, args, ctx) => {
23
+ const [result, apiCall] =
24
+ await getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans(
25
+ client,
26
+ args.request,
27
+ { fetchOptions: { signal: ctx.signal } },
28
+ ).$inspect();
29
+
30
+ if (!result.ok) {
31
+ return {
32
+ content: [{ type: "text", text: result.error.message }],
33
+ isError: true,
34
+ };
35
+ }
36
+
37
+ const value = result.value;
38
+
39
+ return formatResult(value, apiCall);
40
+ },
41
+ };
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { integrationsConnectIntegrationResourceToProject } from "../../funcs/integrationsConnectIntegrationResourceToProject.js";
6
+ import { ConnectIntegrationResourceToProjectRequest$inboundSchema } from "../../models/connectintegrationresourcetoprojectop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: ConnectIntegrationResourceToProjectRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$integrationsConnectIntegrationResourceToProject:
14
+ ToolDefinition<typeof args> = {
15
+ name: "integrations-connect-integration-resource-to-project",
16
+ description: `Connect integration resource to project
17
+
18
+ Connects an integration resource to a Vercel project. This endpoint establishes a connection between a provisioned integration resource (from storage APIs like \`POST /v1/storage/stores/integration/direct\`) and a specific Vercel project.`,
19
+ args,
20
+ tool: async (client, args, ctx) => {
21
+ const [result, apiCall] =
22
+ await integrationsConnectIntegrationResourceToProject(
23
+ client,
24
+ args.request,
25
+ { fetchOptions: { signal: ctx.signal } },
26
+ ).$inspect();
27
+
28
+ if (!result.ok) {
29
+ return {
30
+ content: [{ type: "text", text: result.error.message }],
31
+ isError: true,
32
+ };
33
+ }
34
+
35
+ return formatResult(void 0, apiCall);
36
+ },
37
+ };
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { integrationsCreateIntegrationStoreDirect } from "../../funcs/integrationsCreateIntegrationStoreDirect.js";
6
+ import { CreateIntegrationStoreDirectRequest$inboundSchema } from "../../models/createintegrationstoredirectop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: CreateIntegrationStoreDirectRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$integrationsCreateIntegrationStoreDirect: ToolDefinition<
14
+ typeof args
15
+ > = {
16
+ name: "integrations-create-integration-store-direct",
17
+ description: `Create integration store (free and paid plans)
18
+
19
+ Creates an integration store for both FREE and PAID billing plans. This simplified endpoint automatically provisions real integration storage resources while handling billing complexity behind the scenes. It supports both free and paid billing plans with automatic authorization creation for paid resources. ## How it works 1. Validates the integration configuration and product 2. For free resources: Auto-discovers available free billing plans 3. For paid resources: Creates billing authorization inline using provided billingPlanId 4. Provisions real resources through the Vercel Marketplace 5. Returns the created store with connection details ## Workflow Before using this endpoint, discover available products and billing plans: 1. List your configurations: \`GET /v1/integrations/configurations\` 2. Get products for a configuration: \`GET /v1/integrations/configuration/{id}/products\` 3. Get billing plans for a product: \`GET /integrations/integration/{integrationId}/products/{productId}/plans\` 4. Review the \`metadataSchema\` for each product to understand required metadata 5. Create storage with discovered product: \`POST /v1/storage/stores/integration/direct\` ## Usage Patterns - **Free resources**: Omit \`billingPlanId\` - endpoint will auto-discover free plans - **Paid resources**: Provide \`billingPlanId\` from billing plans discovery - **Prepayment plans**: Also provide \`prepaymentAmountCents\` for variable amount plans ## Limitations - **Admin access required**: Only integration configuration admins can create stores - **Storage limits apply**: Subject to your team's storage quotas - **Payment method required**: For paid plans, ensure valid payment method is configured ## Error Responses - \`400 Bad Request\`: Invalid input, no plans available, or billing issues - \`403 Forbidden\`: Insufficient permissions (non-admin users) - \`404 Not Found\`: Integration configuration or product not found - \`429 Too Many Requests\`: Rate limit exceeded`,
20
+ args,
21
+ tool: async (client, args, ctx) => {
22
+ const [result, apiCall] = await integrationsCreateIntegrationStoreDirect(
23
+ client,
24
+ args.request,
25
+ { fetchOptions: { signal: ctx.signal } },
26
+ ).$inspect();
27
+
28
+ if (!result.ok) {
29
+ return {
30
+ content: [{ type: "text", text: result.error.message }],
31
+ isError: true,
32
+ };
33
+ }
34
+
35
+ const value = result.value;
36
+
37
+ return formatResult(value, apiCall);
38
+ },
39
+ };