@vercel/sdk
Version:
<p align="center"> <a href="https://vercel.com"> <img src="https://assets.vercel.com/image/upload/v1588805858/repositories/vercel/logo.png" height="96"> <h3 align="center">Vercel</h3> </a> <p align="center">Develop. Preview. Ship.</p> </p>
181 lines (166 loc) • 5.36 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v3";
import { VercelCore } from "../core.js";
import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js";
import { matchStatusCode } from "../lib/http.js";
import * as M from "../lib/matchers.js";
import { compactMap } from "../lib/primitives.js";
import { safeParse } from "../lib/schemas.js";
import { RequestOptions } from "../lib/sdks.js";
import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
import { pathToFunc } from "../lib/url.js";
import {
ConnectionError,
InvalidRequestError,
RequestAbortedError,
RequestTimeoutError,
UnexpectedClientError,
} from "../models/httpclienterrors.js";
import {
PatchUrlProtectionBypassRequest,
PatchUrlProtectionBypassRequest$outboundSchema,
} from "../models/patchurlprotectionbypassop.js";
import { ResponseValidationError } from "../models/responsevalidationerror.js";
import { SDKValidationError } from "../models/sdkvalidationerror.js";
import { VercelError } from "../models/vercelerror.js";
import { APICall, APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
* Update the protection bypass for a URL
*
* @remarks
* Update the protection bypass for the alias or deployment URL (used for user access & comment access for deployments). Used as shareable links and user scoped access for Vercel Authentication and also to allow external (logged in) people to comment on previews for Preview Comments (next-live-mode).
*
* If set, this operation will use {@link Security.bearerToken} from the global security.
*/
export function aliasesPatchUrlProtectionBypass(
client: VercelCore,
request: PatchUrlProtectionBypassRequest,
options?: RequestOptions,
): APIPromise<
Result<
{ [k: string]: any },
| VercelError
| ResponseValidationError
| ConnectionError
| RequestAbortedError
| RequestTimeoutError
| InvalidRequestError
| UnexpectedClientError
| SDKValidationError
>
> {
return new APIPromise($do(
client,
request,
options,
));
}
async function $do(
client: VercelCore,
request: PatchUrlProtectionBypassRequest,
options?: RequestOptions,
): Promise<
[
Result<
{ [k: string]: any },
| VercelError
| ResponseValidationError
| ConnectionError
| RequestAbortedError
| RequestTimeoutError
| InvalidRequestError
| UnexpectedClientError
| SDKValidationError
>,
APICall,
]
> {
const parsed = safeParse(
request,
(value) => PatchUrlProtectionBypassRequest$outboundSchema.parse(value),
"Input validation failed",
);
if (!parsed.ok) {
return [parsed, { status: "invalid" }];
}
const payload = parsed.value;
const body = encodeJSON("body", payload.RequestBody, { explode: true });
const pathParams = {
id: encodeSimple("id", payload.id, {
explode: false,
charEncoding: "percent",
}),
};
const path = pathToFunc("/aliases/{id}/protection-bypass")(pathParams);
const query = encodeFormQuery({
"slug": payload.slug,
"teamId": payload.teamId,
});
const headers = new Headers(compactMap({
"Content-Type": "application/json",
Accept: "application/json",
}));
const secConfig = await extractSecurity(client._options.bearerToken);
const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
const requestSecurity = resolveGlobalSecurity(securityInput, [0]);
const context = {
options: client._options,
baseURL: options?.serverURL ?? client._baseURL ?? "",
operationID: "patchUrlProtectionBypass",
oAuth2Scopes: null,
resolvedSecurity: requestSecurity,
securitySource: client._options.bearerToken,
retryConfig: options?.retries
|| client._options.retryConfig
|| { strategy: "none" },
retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
};
const requestRes = client._createRequest(context, {
security: requestSecurity,
method: "PATCH",
baseURL: options?.serverURL,
path: path,
headers: headers,
query: query,
body: body,
userAgent: client._options.userAgent,
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
}, options);
if (!requestRes.ok) {
return [requestRes, { status: "invalid" }];
}
const req = requestRes.value;
const doResult = await client._do(req, {
context,
isErrorStatusCode: (statusCode: number) =>
matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
retryConfig: context.retryConfig,
retryCodes: context.retryCodes,
});
if (!doResult.ok) {
return [doResult, { status: "request-error", request: req }];
}
const response = doResult.value;
const [result] = await M.match<
{ [k: string]: any },
| VercelError
| ResponseValidationError
| ConnectionError
| RequestAbortedError
| RequestTimeoutError
| InvalidRequestError
| UnexpectedClientError
| SDKValidationError
>(
M.json(200, z.record(z.any())),
M.fail([400, 401, 403, 404, 409, 428, "4XX"]),
M.fail("5XX"),
)(response, req);
if (!result.ok) {
return [result, { status: "complete", request: req, response }];
}
return [result, { status: "complete", request: req, response }];
}