@vercel/sdk 1.10.6 → 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.
- package/README.md +58 -45
- package/bin/mcp-server.js +6045 -1761
- package/bin/mcp-server.js.map +48 -39
- package/docs/sdks/integrations/README.md +209 -0
- package/docs/sdks/projects/README.md +2 -0
- package/docs/sdks/teams/README.md +12 -0
- package/docs/sdks/vercel/README.md +74 -0
- package/esm/__tests__/accessgroups.test.js +3 -1
- package/esm/__tests__/accessgroups.test.js.map +1 -1
- package/esm/__tests__/edgeconfig.test.js +6 -6
- package/esm/__tests__/edgeconfig.test.js.map +1 -1
- package/esm/__tests__/integrations.test.js +62 -0
- package/esm/__tests__/integrations.test.js.map +1 -1
- package/esm/__tests__/rollingrelease.test.js +2 -6
- package/esm/__tests__/rollingrelease.test.js.map +1 -1
- package/esm/__tests__/security.test.js +1 -11
- package/esm/__tests__/security.test.js.map +1 -1
- package/esm/__tests__/vercel.test.js +28 -1
- package/esm/__tests__/vercel.test.js.map +1 -1
- package/esm/funcs/domainsCheckDomainPrice.js +2 -2
- package/esm/funcs/domainsCheckDomainPrice.js.map +1 -1
- package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts +14 -0
- package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts.map +1 -0
- package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js +84 -0
- package/esm/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js.map +1 -0
- package/esm/funcs/integrationsConnectIntegrationResourceToProject.d.ts +20 -0
- package/esm/funcs/integrationsConnectIntegrationResourceToProject.d.ts.map +1 -0
- package/esm/funcs/integrationsConnectIntegrationResourceToProject.js +97 -0
- package/esm/funcs/integrationsConnectIntegrationResourceToProject.js.map +1 -0
- package/esm/funcs/integrationsCreateIntegrationStoreDirect.d.ts +21 -0
- package/esm/funcs/integrationsCreateIntegrationStoreDirect.d.ts.map +1 -0
- package/esm/funcs/integrationsCreateIntegrationStoreDirect.js +90 -0
- package/esm/funcs/integrationsCreateIntegrationStoreDirect.js.map +1 -0
- package/esm/funcs/marketplaceExchangeSsoToken.js +2 -2
- package/esm/funcs/marketplaceExchangeSsoToken.js.map +1 -1
- package/esm/funcs/marketplaceSubmitInvoice.js +2 -2
- package/esm/funcs/marketplaceSubmitInvoice.js.map +1 -1
- package/esm/funcs/marketplaceUpdateInvoice.js +2 -2
- package/esm/funcs/marketplaceUpdateInvoice.js.map +1 -1
- package/esm/funcs/projectsGetProjects.js +1 -0
- package/esm/funcs/projectsGetProjects.js.map +1 -1
- package/esm/lib/config.d.ts +3 -3
- package/esm/lib/config.js +3 -3
- package/esm/mcp-server/mcp-server.js +1 -1
- package/esm/mcp-server/server.d.ts.map +1 -1
- package/esm/mcp-server/server.js +7 -1
- package/esm/mcp-server/server.js.map +1 -1
- package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts +7 -0
- package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.d.ts.map +1 -0
- package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js +26 -0
- package/esm/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.js.map +1 -0
- package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.d.ts +7 -0
- package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.d.ts.map +1 -0
- package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.js +27 -0
- package/esm/mcp-server/tools/integrationsConnectIntegrationResourceToProject.js.map +1 -0
- package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.d.ts +7 -0
- package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.d.ts.map +1 -0
- package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.js +28 -0
- package/esm/mcp-server/tools/integrationsCreateIntegrationStoreDirect.js.map +1 -0
- package/esm/models/acceptprojecttransferrequestop.d.ts +37 -0
- package/esm/models/acceptprojecttransferrequestop.d.ts.map +1 -1
- package/esm/models/acceptprojecttransferrequestop.js +40 -1
- package/esm/models/acceptprojecttransferrequestop.js.map +1 -1
- package/esm/models/authuser.d.ts +3 -3
- package/esm/models/authuser.js +1 -1
- package/esm/models/authuser.js.map +1 -1
- package/esm/models/canceldeploymentop.d.ts +80 -42
- package/esm/models/canceldeploymentop.d.ts.map +1 -1
- package/esm/models/canceldeploymentop.js +44 -15
- package/esm/models/canceldeploymentop.js.map +1 -1
- package/esm/models/connectintegrationresourcetoprojectop.d.ts +68 -0
- package/esm/models/connectintegrationresourcetoprojectop.d.ts.map +1 -0
- package/esm/models/connectintegrationresourcetoprojectop.js +73 -0
- package/esm/models/connectintegrationresourcetoprojectop.js.map +1 -0
- package/esm/models/createdeploymentop.d.ts +292 -254
- package/esm/models/createdeploymentop.d.ts.map +1 -1
- package/esm/models/createdeploymentop.js +244 -217
- package/esm/models/createdeploymentop.js.map +1 -1
- package/esm/models/createintegrationstoredirectop.d.ts +5995 -0
- package/esm/models/createintegrationstoredirectop.d.ts.map +1 -0
- package/esm/models/createintegrationstoredirectop.js +6597 -0
- package/esm/models/createintegrationstoredirectop.js.map +1 -0
- package/esm/models/createprojectenvop.d.ts +6 -6
- package/esm/models/createprojectenvop.js +2 -2
- package/esm/models/createprojectenvop.js.map +1 -1
- package/esm/models/createprojectop.d.ts +183 -162
- package/esm/models/createprojectop.d.ts.map +1 -1
- package/esm/models/createprojectop.js +154 -154
- package/esm/models/createprojectop.js.map +1 -1
- package/esm/models/createwebhookop.d.ts +12 -0
- package/esm/models/createwebhookop.d.ts.map +1 -1
- package/esm/models/createwebhookop.js +4 -0
- package/esm/models/createwebhookop.js.map +1 -1
- package/esm/models/editprojectenvop.d.ts +3 -3
- package/esm/models/editprojectenvop.js +1 -1
- package/esm/models/editprojectenvop.js.map +1 -1
- package/esm/models/filterprojectenvsop.d.ts +9 -9
- package/esm/models/filterprojectenvsop.js +3 -3
- package/esm/models/filterprojectenvsop.js.map +1 -1
- package/esm/models/getconfigurationop.d.ts +6 -0
- package/esm/models/getconfigurationop.d.ts.map +1 -1
- package/esm/models/getconfigurationop.js +2 -0
- package/esm/models/getconfigurationop.js.map +1 -1
- package/esm/models/getconfigurationproductsop.d.ts +533 -533
- package/esm/models/getconfigurationproductsop.d.ts.map +1 -1
- package/esm/models/getconfigurationproductsop.js +666 -665
- package/esm/models/getconfigurationproductsop.js.map +1 -1
- package/esm/models/getconfigurationsop.d.ts +6 -0
- package/esm/models/getconfigurationsop.d.ts.map +1 -1
- package/esm/models/getconfigurationsop.js +2 -0
- package/esm/models/getconfigurationsop.js.map +1 -1
- package/esm/models/getdeploymentop.d.ts +45 -7
- package/esm/models/getdeploymentop.d.ts.map +1 -1
- package/esm/models/getdeploymentop.js +30 -2
- package/esm/models/getdeploymentop.js.map +1 -1
- package/esm/models/getintegrationresourceop.d.ts +13 -13
- package/esm/models/getintegrationresourceop.d.ts.map +1 -1
- package/esm/models/getintegrationresourceop.js +13 -13
- package/esm/models/getintegrationresourceop.js.map +1 -1
- package/esm/models/getprojectsop.d.ts +57 -0
- package/esm/models/getprojectsop.d.ts.map +1 -1
- package/esm/models/getprojectsop.js +24 -0
- package/esm/models/getprojectsop.js.map +1 -1
- package/esm/models/getteammembersop.d.ts +102 -9
- package/esm/models/getteammembersop.d.ts.map +1 -1
- package/esm/models/getteammembersop.js +60 -3
- package/esm/models/getteammembersop.js.map +1 -1
- package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.d.ts +247 -0
- package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.d.ts.map +1 -0
- package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.js +246 -0
- package/esm/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.js.map +1 -0
- package/esm/models/getwebhookop.d.ts +6 -0
- package/esm/models/getwebhookop.d.ts.map +1 -1
- package/esm/models/getwebhookop.js +2 -0
- package/esm/models/getwebhookop.js.map +1 -1
- package/esm/models/getwebhooksop.d.ts +27 -15
- package/esm/models/getwebhooksop.d.ts.map +1 -1
- package/esm/models/getwebhooksop.js +19 -15
- package/esm/models/getwebhooksop.js.map +1 -1
- package/esm/models/inviteusertoteamop.d.ts +3 -0
- package/esm/models/inviteusertoteamop.d.ts.map +1 -1
- package/esm/models/inviteusertoteamop.js +1 -0
- package/esm/models/inviteusertoteamop.js.map +1 -1
- package/esm/models/patchteamop.d.ts +253 -0
- package/esm/models/patchteamop.d.ts.map +1 -1
- package/esm/models/patchteamop.js +150 -0
- package/esm/models/patchteamop.js.map +1 -1
- package/esm/models/removeprojectenvop.d.ts +9 -9
- package/esm/models/removeprojectenvop.js +3 -3
- package/esm/models/removeprojectenvop.js.map +1 -1
- package/esm/models/team.d.ts +47 -0
- package/esm/models/team.d.ts.map +1 -1
- package/esm/models/team.js +36 -0
- package/esm/models/team.js.map +1 -1
- package/esm/models/teamlimited.d.ts +3 -0
- package/esm/models/teamlimited.d.ts.map +1 -1
- package/esm/models/teamlimited.js +1 -0
- package/esm/models/teamlimited.js.map +1 -1
- package/esm/models/updatefirewallconfigop.d.ts +32 -32
- package/esm/models/updatefirewallconfigop.d.ts.map +1 -1
- package/esm/models/updatefirewallconfigop.js +49 -49
- package/esm/models/updatefirewallconfigop.js.map +1 -1
- package/esm/models/updateinvoiceop.d.ts +36 -15
- package/esm/models/updateinvoiceop.d.ts.map +1 -1
- package/esm/models/updateinvoiceop.js +37 -16
- package/esm/models/updateinvoiceop.js.map +1 -1
- package/esm/models/updateprojectdatacacheop.d.ts +21 -0
- package/esm/models/updateprojectdatacacheop.d.ts.map +1 -1
- package/esm/models/updateprojectdatacacheop.js.map +1 -1
- package/esm/models/updateprojectop.d.ts +21 -0
- package/esm/models/updateprojectop.d.ts.map +1 -1
- package/esm/models/updateprojectop.js.map +1 -1
- package/esm/models/userevent.d.ts +406 -305
- package/esm/models/userevent.d.ts.map +1 -1
- package/esm/models/userevent.js +467 -365
- package/esm/models/userevent.js.map +1 -1
- package/esm/sdk/integrations.d.ts +16 -0
- package/esm/sdk/integrations.d.ts.map +1 -1
- package/esm/sdk/integrations.js +20 -0
- package/esm/sdk/integrations.js.map +1 -1
- package/esm/sdk/sdk.d.ts +3 -1
- package/esm/sdk/sdk.d.ts.map +1 -1
- package/esm/sdk/sdk.js +5 -0
- package/esm/sdk/sdk.js.map +1 -1
- package/examples/package-lock.json +1 -1
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/src/__tests__/accessgroups.test.ts +3 -1
- package/src/__tests__/edgeconfig.test.ts +6 -6
- package/src/__tests__/integrations.test.ts +65 -0
- package/src/__tests__/rollingrelease.test.ts +2 -6
- package/src/__tests__/security.test.ts +1 -11
- package/src/__tests__/vercel.test.ts +36 -1
- package/src/funcs/domainsCheckDomainPrice.ts +2 -2
- package/src/funcs/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.ts +207 -0
- package/src/funcs/integrationsConnectIntegrationResourceToProject.ts +213 -0
- package/src/funcs/integrationsCreateIntegrationStoreDirect.ts +207 -0
- package/src/funcs/marketplaceExchangeSsoToken.ts +2 -2
- package/src/funcs/marketplaceSubmitInvoice.ts +2 -2
- package/src/funcs/marketplaceUpdateInvoice.ts +2 -2
- package/src/funcs/projectsGetProjects.ts +1 -0
- package/src/lib/config.ts +3 -3
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +9 -1
- package/src/mcp-server/tools/getV1IntegrationsIntegrationIntegrationIdOrSlugProductsProductIdOrSlugPlans.ts +41 -0
- package/src/mcp-server/tools/integrationsConnectIntegrationResourceToProject.ts +37 -0
- package/src/mcp-server/tools/integrationsCreateIntegrationStoreDirect.ts +39 -0
- package/src/models/acceptprojecttransferrequestop.ts +88 -1
- package/src/models/authuser.ts +1 -1
- package/src/models/canceldeploymentop.ts +71 -24
- package/src/models/connectintegrationresourcetoprojectop.ts +185 -0
- package/src/models/createdeploymentop.ts +545 -503
- package/src/models/createintegrationstoredirectop.ts +15739 -0
- package/src/models/createprojectenvop.ts +2 -2
- package/src/models/createprojectop.ts +364 -343
- package/src/models/createwebhookop.ts +4 -0
- package/src/models/editprojectenvop.ts +1 -1
- package/src/models/filterprojectenvsop.ts +3 -3
- package/src/models/getconfigurationop.ts +2 -0
- package/src/models/getconfigurationproductsop.ts +1326 -1163
- package/src/models/getconfigurationsop.ts +2 -0
- package/src/models/getdeploymentop.ts +59 -9
- package/src/models/getintegrationresourceop.ts +26 -20
- package/src/models/getprojectsop.ts +63 -0
- package/src/models/getteammembersop.ts +84 -3
- package/src/models/getv1integrationsintegrationintegrationidorslugproductsproductidorslugplansop.ts +575 -0
- package/src/models/getwebhookop.ts +2 -0
- package/src/models/getwebhooksop.ts +31 -25
- package/src/models/inviteusertoteamop.ts +1 -0
- package/src/models/patchteamop.ts +254 -0
- package/src/models/removeprojectenvop.ts +3 -3
- package/src/models/team.ts +92 -0
- package/src/models/teamlimited.ts +1 -0
- package/src/models/updatefirewallconfigop.ts +74 -68
- package/src/models/updateinvoiceop.ts +78 -27
- package/src/models/updateprojectdatacacheop.ts +21 -0
- package/src/models/updateprojectop.ts +21 -0
- package/src/models/userevent.ts +918 -682
- package/src/sdk/integrations.ts +41 -0
- package/src/sdk/sdk.ts +23 -1
- package/vercel-spec.json +4249 -1150
|
@@ -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) {
|
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.
|
|
65
|
-
genVersion: "2.
|
|
66
|
-
userAgent: "speakeasy-sdk/typescript 1.10.
|
|
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;
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -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.
|
|
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
|
+
};
|