@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, 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
+ DeleteRollingReleaseConfigRequest,
15
+ DeleteRollingReleaseConfigRequest$outboundSchema,
16
+ DeleteRollingReleaseConfigResponseBody,
17
+ DeleteRollingReleaseConfigResponseBody$inboundSchema,
18
+ } from "../models/deleterollingreleaseconfigop.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
+ * Delete rolling release configuration
46
+ *
47
+ * @remarks
48
+ * Disable Rolling Releases for a project means that future deployments will not undergo a rolling release. Changing the config never alters a rollout that's already in-flight—it only affects the next production deployment. If you want to also stop the current rollout, call this endpoint to disable the feature, and then call either the /complete or /abort endpoint.
49
+ */
50
+ export function rollingReleaseDeleteRollingReleaseConfig(
51
+ client: VercelCore,
52
+ request: DeleteRollingReleaseConfigRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ DeleteRollingReleaseConfigResponseBody,
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: DeleteRollingReleaseConfigRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ DeleteRollingReleaseConfigResponseBody,
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) => DeleteRollingReleaseConfigRequest$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 = null;
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/config")(
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
+ 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: "deleteRollingReleaseConfig",
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: "DELETE",
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", "403", "404", "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
+ DeleteRollingReleaseConfigResponseBody,
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, DeleteRollingReleaseConfigResponseBody$inboundSchema),
196
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
197
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
198
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
199
+ M.fail([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
+ }
@@ -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, 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
+ GetRollingReleaseRequest,
15
+ GetRollingReleaseRequest$outboundSchema,
16
+ GetRollingReleaseResponseBody,
17
+ GetRollingReleaseResponseBody$inboundSchema,
18
+ } from "../models/getrollingreleaseop.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
+ * Get the active rolling release information for a project
46
+ *
47
+ * @remarks
48
+ * Return the Rolling Release for a project, regardless of whether the rollout is active, aborted, or completed. If the feature is enabled but no deployment has occurred yet, null will be returned.
49
+ */
50
+ export function rollingReleaseGetRollingRelease(
51
+ client: VercelCore,
52
+ request: GetRollingReleaseRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ GetRollingReleaseResponseBody,
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: GetRollingReleaseRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ GetRollingReleaseResponseBody,
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) => GetRollingReleaseRequest$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 = null;
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")(
119
+ pathParams,
120
+ );
121
+
122
+ const query = encodeFormQuery({
123
+ "slug": payload.slug,
124
+ "state": payload.state,
125
+ "teamId": payload.teamId,
126
+ });
127
+
128
+ const headers = new Headers(compactMap({
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: "getRollingRelease",
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: "GET",
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
+ GetRollingReleaseResponseBody,
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, GetRollingReleaseResponseBody$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
+ }
@@ -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, 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
+ GetRollingReleaseConfigRequest,
15
+ GetRollingReleaseConfigRequest$outboundSchema,
16
+ GetRollingReleaseConfigResponseBody,
17
+ GetRollingReleaseConfigResponseBody$inboundSchema,
18
+ } from "../models/getrollingreleaseconfigop.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
+ * Get rolling release configuration
46
+ *
47
+ * @remarks
48
+ * Get the Rolling Releases configuration for a project. The project-level config is simply a template that will be used for any future rolling release, and not the configuration for any active rolling release.
49
+ */
50
+ export function rollingReleaseGetRollingReleaseConfig(
51
+ client: VercelCore,
52
+ request: GetRollingReleaseConfigRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ GetRollingReleaseConfigResponseBody,
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: GetRollingReleaseConfigRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ GetRollingReleaseConfigResponseBody,
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) => GetRollingReleaseConfigRequest$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 = null;
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/config")(
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
+ 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: "getRollingReleaseConfig",
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: "GET",
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", "403", "404", "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
+ GetRollingReleaseConfigResponseBody,
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, GetRollingReleaseConfigResponseBody$inboundSchema),
196
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
197
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
198
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
199
+ M.fail([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
+ }