@vercel/sdk 1.8.0 → 1.8.1

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 (200) hide show
  1. package/README.md +19 -2
  2. package/bin/mcp-server.js +2900 -969
  3. package/bin/mcp-server.js.map +37 -16
  4. package/docs/sdks/edgeconfig/README.md +80 -0
  5. package/docs/sdks/rollingrelease/README.md +487 -0
  6. package/esm/__tests__/edgeconfig.test.js +17 -0
  7. package/esm/__tests__/edgeconfig.test.js.map +1 -1
  8. package/esm/__tests__/projects.test.js +13 -15
  9. package/esm/__tests__/projects.test.js.map +1 -1
  10. package/esm/__tests__/rollingrelease.test.d.ts +2 -0
  11. package/esm/__tests__/rollingrelease.test.d.ts.map +1 -0
  12. package/esm/__tests__/rollingrelease.test.js +326 -0
  13. package/esm/__tests__/rollingrelease.test.js.map +1 -0
  14. package/esm/__tests__/teams.test.js +2 -2
  15. package/esm/__tests__/teams.test.js.map +1 -1
  16. package/esm/__tests__/vercel.test.js +2 -2
  17. package/esm/__tests__/vercel.test.js.map +1 -1
  18. package/esm/funcs/edgeConfigPatchEdgeConfigItems.d.ts +20 -0
  19. package/esm/funcs/edgeConfigPatchEdgeConfigItems.d.ts.map +1 -0
  20. package/esm/funcs/edgeConfigPatchEdgeConfigItems.js +96 -0
  21. package/esm/funcs/edgeConfigPatchEdgeConfigItems.js.map +1 -0
  22. package/esm/funcs/rollingReleaseApproveRollingReleaseStage.d.ts +20 -0
  23. package/esm/funcs/rollingReleaseApproveRollingReleaseStage.d.ts.map +1 -0
  24. package/esm/funcs/rollingReleaseApproveRollingReleaseStage.js +95 -0
  25. package/esm/funcs/rollingReleaseApproveRollingReleaseStage.js.map +1 -0
  26. package/esm/funcs/rollingReleaseCompleteRollingRelease.d.ts +20 -0
  27. package/esm/funcs/rollingReleaseCompleteRollingRelease.d.ts.map +1 -0
  28. package/esm/funcs/rollingReleaseCompleteRollingRelease.js +95 -0
  29. package/esm/funcs/rollingReleaseCompleteRollingRelease.js.map +1 -0
  30. package/esm/funcs/rollingReleaseDeleteRollingReleaseConfig.d.ts +20 -0
  31. package/esm/funcs/rollingReleaseDeleteRollingReleaseConfig.d.ts.map +1 -0
  32. package/esm/funcs/rollingReleaseDeleteRollingReleaseConfig.js +94 -0
  33. package/esm/funcs/rollingReleaseDeleteRollingReleaseConfig.js.map +1 -0
  34. package/esm/funcs/rollingReleaseGetRollingRelease.d.ts +20 -0
  35. package/esm/funcs/rollingReleaseGetRollingRelease.d.ts.map +1 -0
  36. package/esm/funcs/rollingReleaseGetRollingRelease.js +95 -0
  37. package/esm/funcs/rollingReleaseGetRollingRelease.js.map +1 -0
  38. package/esm/funcs/rollingReleaseGetRollingReleaseConfig.d.ts +20 -0
  39. package/esm/funcs/rollingReleaseGetRollingReleaseConfig.d.ts.map +1 -0
  40. package/esm/funcs/rollingReleaseGetRollingReleaseConfig.js +94 -0
  41. package/esm/funcs/rollingReleaseGetRollingReleaseConfig.js.map +1 -0
  42. package/esm/funcs/rollingReleaseUpdateRollingReleaseConfig.d.ts +20 -0
  43. package/esm/funcs/rollingReleaseUpdateRollingReleaseConfig.d.ts.map +1 -0
  44. package/esm/funcs/rollingReleaseUpdateRollingReleaseConfig.js +94 -0
  45. package/esm/funcs/rollingReleaseUpdateRollingReleaseConfig.js.map +1 -0
  46. package/esm/lib/config.d.ts +3 -3
  47. package/esm/lib/config.js +3 -3
  48. package/esm/mcp-server/mcp-server.js +1 -1
  49. package/esm/mcp-server/server.d.ts.map +1 -1
  50. package/esm/mcp-server/server.js +15 -1
  51. package/esm/mcp-server/server.js.map +1 -1
  52. package/esm/mcp-server/tools/edgeConfigPatchEdgeConfigItems.d.ts +7 -0
  53. package/esm/mcp-server/tools/edgeConfigPatchEdgeConfigItems.d.ts.map +1 -0
  54. package/esm/mcp-server/tools/edgeConfigPatchEdgeConfigItems.js +28 -0
  55. package/esm/mcp-server/tools/edgeConfigPatchEdgeConfigItems.js.map +1 -0
  56. package/esm/mcp-server/tools/rollingReleaseApproveRollingReleaseStage.d.ts +7 -0
  57. package/esm/mcp-server/tools/rollingReleaseApproveRollingReleaseStage.d.ts.map +1 -0
  58. package/esm/mcp-server/tools/rollingReleaseApproveRollingReleaseStage.js +28 -0
  59. package/esm/mcp-server/tools/rollingReleaseApproveRollingReleaseStage.js.map +1 -0
  60. package/esm/mcp-server/tools/rollingReleaseCompleteRollingRelease.d.ts +7 -0
  61. package/esm/mcp-server/tools/rollingReleaseCompleteRollingRelease.d.ts.map +1 -0
  62. package/esm/mcp-server/tools/rollingReleaseCompleteRollingRelease.js +28 -0
  63. package/esm/mcp-server/tools/rollingReleaseCompleteRollingRelease.js.map +1 -0
  64. package/esm/mcp-server/tools/rollingReleaseDeleteRollingReleaseConfig.d.ts +7 -0
  65. package/esm/mcp-server/tools/rollingReleaseDeleteRollingReleaseConfig.d.ts.map +1 -0
  66. package/esm/mcp-server/tools/rollingReleaseDeleteRollingReleaseConfig.js +28 -0
  67. package/esm/mcp-server/tools/rollingReleaseDeleteRollingReleaseConfig.js.map +1 -0
  68. package/esm/mcp-server/tools/rollingReleaseGetRollingRelease.d.ts +7 -0
  69. package/esm/mcp-server/tools/rollingReleaseGetRollingRelease.d.ts.map +1 -0
  70. package/esm/mcp-server/tools/rollingReleaseGetRollingRelease.js +28 -0
  71. package/esm/mcp-server/tools/rollingReleaseGetRollingRelease.js.map +1 -0
  72. package/esm/mcp-server/tools/rollingReleaseGetRollingReleaseConfig.d.ts +7 -0
  73. package/esm/mcp-server/tools/rollingReleaseGetRollingReleaseConfig.d.ts.map +1 -0
  74. package/esm/mcp-server/tools/rollingReleaseGetRollingReleaseConfig.js +28 -0
  75. package/esm/mcp-server/tools/rollingReleaseGetRollingReleaseConfig.js.map +1 -0
  76. package/esm/mcp-server/tools/rollingReleaseUpdateRollingReleaseConfig.d.ts +7 -0
  77. package/esm/mcp-server/tools/rollingReleaseUpdateRollingReleaseConfig.d.ts.map +1 -0
  78. package/esm/mcp-server/tools/rollingReleaseUpdateRollingReleaseConfig.js +28 -0
  79. package/esm/mcp-server/tools/rollingReleaseUpdateRollingReleaseConfig.js.map +1 -0
  80. package/esm/models/approverollingreleasestageop.d.ts +661 -0
  81. package/esm/models/approverollingreleasestageop.d.ts.map +1 -0
  82. package/esm/models/approverollingreleasestageop.js +481 -0
  83. package/esm/models/approverollingreleasestageop.js.map +1 -0
  84. package/esm/models/completerollingreleaseop.d.ts +656 -0
  85. package/esm/models/completerollingreleaseop.d.ts.map +1 -0
  86. package/esm/models/completerollingreleaseop.js +478 -0
  87. package/esm/models/completerollingreleaseop.js.map +1 -0
  88. package/esm/models/createprojectop.d.ts +11 -5
  89. package/esm/models/createprojectop.d.ts.map +1 -1
  90. package/esm/models/createprojectop.js.map +1 -1
  91. package/esm/models/deleterollingreleaseconfigop.d.ts +67 -0
  92. package/esm/models/deleterollingreleaseconfigop.d.ts.map +1 -0
  93. package/esm/models/deleterollingreleaseconfigop.js +60 -0
  94. package/esm/models/deleterollingreleaseconfigop.js.map +1 -0
  95. package/esm/models/getedgeconfigbackupop.d.ts +30 -30
  96. package/esm/models/getedgeconfigbackupop.d.ts.map +1 -1
  97. package/esm/models/getedgeconfigbackupop.js +30 -30
  98. package/esm/models/getedgeconfigbackupop.js.map +1 -1
  99. package/esm/models/getfirewallconfigop.d.ts +15 -15
  100. package/esm/models/getfirewallconfigop.d.ts.map +1 -1
  101. package/esm/models/getfirewallconfigop.js +15 -17
  102. package/esm/models/getfirewallconfigop.js.map +1 -1
  103. package/esm/models/getinvoiceop.d.ts +8 -8
  104. package/esm/models/getinvoiceop.d.ts.map +1 -1
  105. package/esm/models/getinvoiceop.js +12 -12
  106. package/esm/models/getinvoiceop.js.map +1 -1
  107. package/esm/models/getprojectsop.d.ts +11 -5
  108. package/esm/models/getprojectsop.d.ts.map +1 -1
  109. package/esm/models/getprojectsop.js.map +1 -1
  110. package/esm/models/getrollingreleaseconfigop.d.ts +152 -0
  111. package/esm/models/getrollingreleaseconfigop.d.ts.map +1 -0
  112. package/esm/models/getrollingreleaseconfigop.js +118 -0
  113. package/esm/models/getrollingreleaseconfigop.js.map +1 -0
  114. package/esm/models/getrollingreleaseop.d.ts +665 -0
  115. package/esm/models/getrollingreleaseop.d.ts.map +1 -0
  116. package/esm/models/getrollingreleaseop.js +463 -0
  117. package/esm/models/getrollingreleaseop.js.map +1 -0
  118. package/esm/models/patchedgeconfigitemsop.d.ts +387 -0
  119. package/esm/models/patchedgeconfigitemsop.d.ts.map +1 -0
  120. package/esm/models/patchedgeconfigitemsop.js +393 -0
  121. package/esm/models/patchedgeconfigitemsop.js.map +1 -0
  122. package/esm/models/putfirewallconfigop.d.ts +2 -139
  123. package/esm/models/putfirewallconfigop.d.ts.map +1 -1
  124. package/esm/models/putfirewallconfigop.js +2 -119
  125. package/esm/models/putfirewallconfigop.js.map +1 -1
  126. package/esm/models/submitbillingdataop.d.ts +15 -15
  127. package/esm/models/submitbillingdataop.d.ts.map +1 -1
  128. package/esm/models/submitbillingdataop.js +15 -16
  129. package/esm/models/submitbillingdataop.js.map +1 -1
  130. package/esm/models/team.d.ts +7 -7
  131. package/esm/models/team.d.ts.map +1 -1
  132. package/esm/models/team.js +4 -4
  133. package/esm/models/team.js.map +1 -1
  134. package/esm/models/updateprojectdatacacheop.d.ts +11 -5
  135. package/esm/models/updateprojectdatacacheop.d.ts.map +1 -1
  136. package/esm/models/updateprojectdatacacheop.js.map +1 -1
  137. package/esm/models/updateprojectop.d.ts +11 -5
  138. package/esm/models/updateprojectop.d.ts.map +1 -1
  139. package/esm/models/updateprojectop.js.map +1 -1
  140. package/esm/models/updaterollingreleaseconfigop.d.ts +179 -0
  141. package/esm/models/updaterollingreleaseconfigop.d.ts.map +1 -0
  142. package/esm/models/updaterollingreleaseconfigop.js +168 -0
  143. package/esm/models/updaterollingreleaseconfigop.js.map +1 -0
  144. package/esm/sdk/edgeconfig.d.ts +8 -0
  145. package/esm/sdk/edgeconfig.d.ts.map +1 -1
  146. package/esm/sdk/edgeconfig.js +10 -0
  147. package/esm/sdk/edgeconfig.js.map +1 -1
  148. package/esm/sdk/rollingrelease.d.ts +52 -0
  149. package/esm/sdk/rollingrelease.d.ts.map +1 -0
  150. package/esm/sdk/rollingrelease.js +68 -0
  151. package/esm/sdk/rollingrelease.js.map +1 -0
  152. package/esm/sdk/sdk.d.ts +3 -0
  153. package/esm/sdk/sdk.d.ts.map +1 -1
  154. package/esm/sdk/sdk.js +4 -0
  155. package/esm/sdk/sdk.js.map +1 -1
  156. package/jsr.json +1 -1
  157. package/package.json +1 -1
  158. package/src/__tests__/edgeconfig.test.ts +20 -0
  159. package/src/__tests__/projects.test.ts +13 -15
  160. package/src/__tests__/rollingrelease.test.ts +344 -0
  161. package/src/__tests__/teams.test.ts +2 -2
  162. package/src/__tests__/vercel.test.ts +2 -2
  163. package/src/funcs/edgeConfigPatchEdgeConfigItems.ts +207 -0
  164. package/src/funcs/rollingReleaseApproveRollingReleaseStage.ts +208 -0
  165. package/src/funcs/rollingReleaseCompleteRollingRelease.ts +208 -0
  166. package/src/funcs/rollingReleaseDeleteRollingReleaseConfig.ts +207 -0
  167. package/src/funcs/rollingReleaseGetRollingRelease.ts +208 -0
  168. package/src/funcs/rollingReleaseGetRollingReleaseConfig.ts +207 -0
  169. package/src/funcs/rollingReleaseUpdateRollingReleaseConfig.ts +207 -0
  170. package/src/lib/config.ts +3 -3
  171. package/src/mcp-server/mcp-server.ts +1 -1
  172. package/src/mcp-server/server.ts +15 -1
  173. package/src/mcp-server/tools/edgeConfigPatchEdgeConfigItems.ts +38 -0
  174. package/src/mcp-server/tools/rollingReleaseApproveRollingReleaseStage.ts +40 -0
  175. package/src/mcp-server/tools/rollingReleaseCompleteRollingRelease.ts +39 -0
  176. package/src/mcp-server/tools/rollingReleaseDeleteRollingReleaseConfig.ts +39 -0
  177. package/src/mcp-server/tools/rollingReleaseGetRollingRelease.ts +38 -0
  178. package/src/mcp-server/tools/rollingReleaseGetRollingReleaseConfig.ts +39 -0
  179. package/src/mcp-server/tools/rollingReleaseUpdateRollingReleaseConfig.ts +39 -0
  180. package/src/models/approverollingreleasestageop.ts +1139 -0
  181. package/src/models/completerollingreleaseop.ts +1094 -0
  182. package/src/models/createprojectop.ts +11 -5
  183. package/src/models/deleterollingreleaseconfigop.ts +150 -0
  184. package/src/models/getedgeconfigbackupop.ts +59 -59
  185. package/src/models/getfirewallconfigop.ts +24 -32
  186. package/src/models/getinvoiceop.ts +16 -15
  187. package/src/models/getprojectsop.ts +11 -5
  188. package/src/models/getrollingreleaseconfigop.ts +322 -0
  189. package/src/models/getrollingreleaseop.ts +1000 -0
  190. package/src/models/patchedgeconfigitemsop.ts +749 -0
  191. package/src/models/putfirewallconfigop.ts +4 -230
  192. package/src/models/submitbillingdataop.ts +40 -37
  193. package/src/models/team.ts +11 -11
  194. package/src/models/updateprojectdatacacheop.ts +11 -5
  195. package/src/models/updateprojectop.ts +11 -5
  196. package/src/models/updaterollingreleaseconfigop.ts +432 -0
  197. package/src/sdk/edgeconfig.ts +22 -0
  198. package/src/sdk/rollingrelease.ts +140 -0
  199. package/src/sdk/sdk.ts +6 -0
  200. package/vercel-spec.json +2111 -264
@@ -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, encodeSimple } 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
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/httpclienterrors.js";
20
+ import {
21
+ PatchEdgeConfigItemsRequest,
22
+ PatchEdgeConfigItemsRequest$outboundSchema,
23
+ PatchEdgeConfigItemsResponseBody,
24
+ PatchEdgeConfigItemsResponseBody$inboundSchema,
25
+ } from "../models/patchedgeconfigitemsop.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 { APICall, APIPromise } from "../types/async.js";
42
+ import { Result } from "../types/fp.js";
43
+
44
+ /**
45
+ * Update Edge Config items in batch
46
+ *
47
+ * @remarks
48
+ * Update multiple Edge Config Items in batch.
49
+ */
50
+ export function edgeConfigPatchEdgeConfigItems(
51
+ client: VercelCore,
52
+ request: PatchEdgeConfigItemsRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ PatchEdgeConfigItemsResponseBody,
57
+ | VercelBadRequestError
58
+ | VercelForbiddenError
59
+ | VercelNotFoundError
60
+ | VercelError
61
+ | ResponseValidationError
62
+ | ConnectionError
63
+ | RequestAbortedError
64
+ | RequestTimeoutError
65
+ | InvalidRequestError
66
+ | UnexpectedClientError
67
+ | SDKValidationError
68
+ >
69
+ > {
70
+ return new APIPromise($do(
71
+ client,
72
+ request,
73
+ options,
74
+ ));
75
+ }
76
+
77
+ async function $do(
78
+ client: VercelCore,
79
+ request: PatchEdgeConfigItemsRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ PatchEdgeConfigItemsResponseBody,
85
+ | VercelBadRequestError
86
+ | VercelForbiddenError
87
+ | VercelNotFoundError
88
+ | VercelError
89
+ | ResponseValidationError
90
+ | ConnectionError
91
+ | RequestAbortedError
92
+ | RequestTimeoutError
93
+ | InvalidRequestError
94
+ | UnexpectedClientError
95
+ | SDKValidationError
96
+ >,
97
+ APICall,
98
+ ]
99
+ > {
100
+ const parsed = safeParse(
101
+ request,
102
+ (value) => PatchEdgeConfigItemsRequest$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
+ edgeConfigId: encodeSimple("edgeConfigId", payload.edgeConfigId, {
113
+ explode: false,
114
+ charEncoding: "percent",
115
+ }),
116
+ };
117
+
118
+ const path = pathToFunc("/v1/edge-config/{edgeConfigId}/items")(pathParams);
119
+
120
+ const query = encodeFormQuery({
121
+ "dryRun": payload.dryRun,
122
+ "slug": payload.slug,
123
+ "teamId": payload.teamId,
124
+ });
125
+
126
+ const headers = new Headers(compactMap({
127
+ "Content-Type": "application/json",
128
+ Accept: "application/json",
129
+ }));
130
+
131
+ const secConfig = await extractSecurity(client._options.bearerToken);
132
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
133
+ const requestSecurity = resolveGlobalSecurity(securityInput);
134
+
135
+ const context = {
136
+ options: client._options,
137
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
138
+ operationID: "patchEdgeConfigItems",
139
+ oAuth2Scopes: [],
140
+
141
+ resolvedSecurity: requestSecurity,
142
+
143
+ securitySource: client._options.bearerToken,
144
+ retryConfig: options?.retries
145
+ || client._options.retryConfig
146
+ || { strategy: "none" },
147
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
148
+ };
149
+
150
+ const requestRes = client._createRequest(context, {
151
+ security: requestSecurity,
152
+ method: "PATCH",
153
+ baseURL: options?.serverURL,
154
+ path: path,
155
+ headers: headers,
156
+ query: query,
157
+ body: body,
158
+ userAgent: client._options.userAgent,
159
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
160
+ }, options);
161
+ if (!requestRes.ok) {
162
+ return [requestRes, { status: "invalid" }];
163
+ }
164
+ const req = requestRes.value;
165
+
166
+ const doResult = await client._do(req, {
167
+ context,
168
+ errorCodes: ["400", "401", "402", "403", "404", "409", "4XX", "5XX"],
169
+ retryConfig: context.retryConfig,
170
+ retryCodes: context.retryCodes,
171
+ });
172
+ if (!doResult.ok) {
173
+ return [doResult, { status: "request-error", request: req }];
174
+ }
175
+ const response = doResult.value;
176
+
177
+ const responseFields = {
178
+ HttpMeta: { Response: response, Request: req },
179
+ };
180
+
181
+ const [result] = await M.match<
182
+ PatchEdgeConfigItemsResponseBody,
183
+ | VercelBadRequestError
184
+ | VercelForbiddenError
185
+ | VercelNotFoundError
186
+ | VercelError
187
+ | ResponseValidationError
188
+ | ConnectionError
189
+ | RequestAbortedError
190
+ | RequestTimeoutError
191
+ | InvalidRequestError
192
+ | UnexpectedClientError
193
+ | SDKValidationError
194
+ >(
195
+ M.json(200, PatchEdgeConfigItemsResponseBody$inboundSchema),
196
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
197
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
198
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
199
+ M.fail([402, 403, 409, "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
+ }
@@ -0,0 +1,208 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { VercelCore } from "../core.js";
6
+ import { encodeFormQuery, encodeJSON, encodeSimple } 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
+ ApproveRollingReleaseStageRequest,
15
+ ApproveRollingReleaseStageRequest$outboundSchema,
16
+ ApproveRollingReleaseStageResponseBody,
17
+ ApproveRollingReleaseStageResponseBody$inboundSchema,
18
+ } from "../models/approverollingreleasestageop.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 { APICall, APIPromise } from "../types/async.js";
42
+ import { Result } from "../types/fp.js";
43
+
44
+ /**
45
+ * Update the active rolling release to the next stage for a project
46
+ *
47
+ * @remarks
48
+ * Advance a rollout to the next stage. This is only needed when rolling releases is configured to require manual approval.
49
+ */
50
+ export function rollingReleaseApproveRollingReleaseStage(
51
+ client: VercelCore,
52
+ request: ApproveRollingReleaseStageRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ ApproveRollingReleaseStageResponseBody,
57
+ | VercelBadRequestError
58
+ | VercelForbiddenError
59
+ | VercelNotFoundError
60
+ | VercelError
61
+ | ResponseValidationError
62
+ | ConnectionError
63
+ | RequestAbortedError
64
+ | RequestTimeoutError
65
+ | InvalidRequestError
66
+ | UnexpectedClientError
67
+ | SDKValidationError
68
+ >
69
+ > {
70
+ return new APIPromise($do(
71
+ client,
72
+ request,
73
+ options,
74
+ ));
75
+ }
76
+
77
+ async function $do(
78
+ client: VercelCore,
79
+ request: ApproveRollingReleaseStageRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ ApproveRollingReleaseStageResponseBody,
85
+ | VercelBadRequestError
86
+ | VercelForbiddenError
87
+ | VercelNotFoundError
88
+ | VercelError
89
+ | ResponseValidationError
90
+ | ConnectionError
91
+ | RequestAbortedError
92
+ | RequestTimeoutError
93
+ | InvalidRequestError
94
+ | UnexpectedClientError
95
+ | SDKValidationError
96
+ >,
97
+ APICall,
98
+ ]
99
+ > {
100
+ const parsed = safeParse(
101
+ request,
102
+ (value) => ApproveRollingReleaseStageRequest$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
+ idOrName: encodeSimple("idOrName", payload.idOrName, {
113
+ explode: false,
114
+ charEncoding: "percent",
115
+ }),
116
+ };
117
+
118
+ const path = pathToFunc(
119
+ "/v1/projects/{idOrName}/rolling-release/approve-stage",
120
+ )(pathParams);
121
+
122
+ const query = encodeFormQuery({
123
+ "slug": payload.slug,
124
+ "teamId": payload.teamId,
125
+ });
126
+
127
+ const headers = new Headers(compactMap({
128
+ "Content-Type": "application/json",
129
+ Accept: "application/json",
130
+ }));
131
+
132
+ const secConfig = await extractSecurity(client._options.bearerToken);
133
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
134
+ const requestSecurity = resolveGlobalSecurity(securityInput);
135
+
136
+ const context = {
137
+ options: client._options,
138
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
139
+ operationID: "approveRollingReleaseStage",
140
+ oAuth2Scopes: [],
141
+
142
+ resolvedSecurity: requestSecurity,
143
+
144
+ securitySource: client._options.bearerToken,
145
+ retryConfig: options?.retries
146
+ || client._options.retryConfig
147
+ || { strategy: "none" },
148
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
149
+ };
150
+
151
+ const requestRes = client._createRequest(context, {
152
+ security: requestSecurity,
153
+ method: "POST",
154
+ baseURL: options?.serverURL,
155
+ path: path,
156
+ headers: headers,
157
+ query: query,
158
+ body: body,
159
+ userAgent: client._options.userAgent,
160
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
161
+ }, options);
162
+ if (!requestRes.ok) {
163
+ return [requestRes, { status: "invalid" }];
164
+ }
165
+ const req = requestRes.value;
166
+
167
+ const doResult = await client._do(req, {
168
+ context,
169
+ errorCodes: ["400", "401", "403", "404", "4XX", "500", "5XX"],
170
+ retryConfig: context.retryConfig,
171
+ retryCodes: context.retryCodes,
172
+ });
173
+ if (!doResult.ok) {
174
+ return [doResult, { status: "request-error", request: req }];
175
+ }
176
+ const response = doResult.value;
177
+
178
+ const responseFields = {
179
+ HttpMeta: { Response: response, Request: req },
180
+ };
181
+
182
+ const [result] = await M.match<
183
+ ApproveRollingReleaseStageResponseBody,
184
+ | VercelBadRequestError
185
+ | VercelForbiddenError
186
+ | VercelNotFoundError
187
+ | VercelError
188
+ | ResponseValidationError
189
+ | ConnectionError
190
+ | RequestAbortedError
191
+ | RequestTimeoutError
192
+ | InvalidRequestError
193
+ | UnexpectedClientError
194
+ | SDKValidationError
195
+ >(
196
+ M.json(200, ApproveRollingReleaseStageResponseBody$inboundSchema),
197
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
198
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
199
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
200
+ M.fail([403, "4XX"]),
201
+ M.fail([500, "5XX"]),
202
+ )(response, req, { extraFields: responseFields });
203
+ if (!result.ok) {
204
+ return [result, { status: "complete", request: req, response }];
205
+ }
206
+
207
+ return [result, { status: "complete", request: req, response }];
208
+ }
@@ -0,0 +1,208 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { VercelCore } from "../core.js";
6
+ import { encodeFormQuery, encodeJSON, encodeSimple } 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
+ CompleteRollingReleaseRequest,
15
+ CompleteRollingReleaseRequest$outboundSchema,
16
+ CompleteRollingReleaseResponseBody,
17
+ CompleteRollingReleaseResponseBody$inboundSchema,
18
+ } from "../models/completerollingreleaseop.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 { APICall, APIPromise } from "../types/async.js";
42
+ import { Result } from "../types/fp.js";
43
+
44
+ /**
45
+ * Complete the rolling release for the project
46
+ *
47
+ * @remarks
48
+ * Force-complete a Rolling Release. The canary deployment will begin serving 100% of the traffic.
49
+ */
50
+ export function rollingReleaseCompleteRollingRelease(
51
+ client: VercelCore,
52
+ request: CompleteRollingReleaseRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ CompleteRollingReleaseResponseBody,
57
+ | VercelBadRequestError
58
+ | VercelForbiddenError
59
+ | VercelNotFoundError
60
+ | VercelError
61
+ | ResponseValidationError
62
+ | ConnectionError
63
+ | RequestAbortedError
64
+ | RequestTimeoutError
65
+ | InvalidRequestError
66
+ | UnexpectedClientError
67
+ | SDKValidationError
68
+ >
69
+ > {
70
+ return new APIPromise($do(
71
+ client,
72
+ request,
73
+ options,
74
+ ));
75
+ }
76
+
77
+ async function $do(
78
+ client: VercelCore,
79
+ request: CompleteRollingReleaseRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ CompleteRollingReleaseResponseBody,
85
+ | VercelBadRequestError
86
+ | VercelForbiddenError
87
+ | VercelNotFoundError
88
+ | VercelError
89
+ | ResponseValidationError
90
+ | ConnectionError
91
+ | RequestAbortedError
92
+ | RequestTimeoutError
93
+ | InvalidRequestError
94
+ | UnexpectedClientError
95
+ | SDKValidationError
96
+ >,
97
+ APICall,
98
+ ]
99
+ > {
100
+ const parsed = safeParse(
101
+ request,
102
+ (value) => CompleteRollingReleaseRequest$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
+ idOrName: encodeSimple("idOrName", payload.idOrName, {
113
+ explode: false,
114
+ charEncoding: "percent",
115
+ }),
116
+ };
117
+
118
+ const path = pathToFunc("/v1/projects/{idOrName}/rolling-release/complete")(
119
+ pathParams,
120
+ );
121
+
122
+ const query = encodeFormQuery({
123
+ "slug": payload.slug,
124
+ "teamId": payload.teamId,
125
+ });
126
+
127
+ const headers = new Headers(compactMap({
128
+ "Content-Type": "application/json",
129
+ Accept: "application/json",
130
+ }));
131
+
132
+ const secConfig = await extractSecurity(client._options.bearerToken);
133
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
134
+ const requestSecurity = resolveGlobalSecurity(securityInput);
135
+
136
+ const context = {
137
+ options: client._options,
138
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
139
+ operationID: "completeRollingRelease",
140
+ oAuth2Scopes: [],
141
+
142
+ resolvedSecurity: requestSecurity,
143
+
144
+ securitySource: client._options.bearerToken,
145
+ retryConfig: options?.retries
146
+ || client._options.retryConfig
147
+ || { strategy: "none" },
148
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
149
+ };
150
+
151
+ const requestRes = client._createRequest(context, {
152
+ security: requestSecurity,
153
+ method: "POST",
154
+ baseURL: options?.serverURL,
155
+ path: path,
156
+ headers: headers,
157
+ query: query,
158
+ body: body,
159
+ userAgent: client._options.userAgent,
160
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
161
+ }, options);
162
+ if (!requestRes.ok) {
163
+ return [requestRes, { status: "invalid" }];
164
+ }
165
+ const req = requestRes.value;
166
+
167
+ const doResult = await client._do(req, {
168
+ context,
169
+ errorCodes: ["400", "401", "403", "404", "4XX", "5XX"],
170
+ retryConfig: context.retryConfig,
171
+ retryCodes: context.retryCodes,
172
+ });
173
+ if (!doResult.ok) {
174
+ return [doResult, { status: "request-error", request: req }];
175
+ }
176
+ const response = doResult.value;
177
+
178
+ const responseFields = {
179
+ HttpMeta: { Response: response, Request: req },
180
+ };
181
+
182
+ const [result] = await M.match<
183
+ CompleteRollingReleaseResponseBody,
184
+ | VercelBadRequestError
185
+ | VercelForbiddenError
186
+ | VercelNotFoundError
187
+ | VercelError
188
+ | ResponseValidationError
189
+ | ConnectionError
190
+ | RequestAbortedError
191
+ | RequestTimeoutError
192
+ | InvalidRequestError
193
+ | UnexpectedClientError
194
+ | SDKValidationError
195
+ >(
196
+ M.json(200, CompleteRollingReleaseResponseBody$inboundSchema),
197
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
198
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
199
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
200
+ M.fail([403, "4XX"]),
201
+ M.fail("5XX"),
202
+ )(response, req, { extraFields: responseFields });
203
+ if (!result.ok) {
204
+ return [result, { status: "complete", request: req, response }];
205
+ }
206
+
207
+ return [result, { status: "complete", request: req, response }];
208
+ }