UNPKG

@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>

189 lines (175 loc) 6.28 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { VercelCore } from "../core.js"; import { 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 { ResponseValidationError } from "../models/responsevalidationerror.js"; import { SDKValidationError } from "../models/sdkvalidationerror.js"; import { UpdateResourceSecretsRequest, UpdateResourceSecretsRequest$outboundSchema, } from "../models/updateresourcesecretsop.js"; import { VercelError } from "../models/vercelerror.js"; import { APICall, APIPromise } from "../types/async.js"; import { Result } from "../types/fp.js"; /** * Deprecated: true. Update Resource Secrets (Deprecated) * * @remarks * This endpoint is deprecated and replaced with the endpoint [Update Resource Secrets](#update-resource-secrets). <br/> This endpoint updates the secrets of a resource. If a resource has projects connected, the connected secrets are updated with the new secrets. The old secrets may still be used by existing connected projects because they are not automatically redeployed. Redeployment is a manual action and must be completed by the user. All new project connections will use the new secrets.<br/> <br/> Use cases for this endpoint:<br/> <br/> - Resetting the credentials of a database in the partner. If the user requests the credentials to be updated in the partner’s application, the partner post the new set of secrets to Vercel, the user should redeploy their application and the expire the old credentials.<br/> * * If set, this operation will use {@link Security.bearerToken} from the global security. * * @deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. */ export function marketplaceUpdateResourceSecrets( client: VercelCore, request: UpdateResourceSecretsRequest, options?: RequestOptions, ): APIPromise< Result< void, | VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError > > { return new APIPromise($do( client, request, options, )); } async function $do( client: VercelCore, request: UpdateResourceSecretsRequest, options?: RequestOptions, ): Promise< [ Result< void, | VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError >, APICall, ] > { const parsed = safeParse( request, (value) => UpdateResourceSecretsRequest$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 = { integrationConfigurationId: encodeSimple( "integrationConfigurationId", payload.integrationConfigurationId, { explode: false, charEncoding: "percent" }, ), integrationProductIdOrSlug: encodeSimple( "integrationProductIdOrSlug", payload.integrationProductIdOrSlug, { explode: false, charEncoding: "percent" }, ), resourceId: encodeSimple("resourceId", payload.resourceId, { explode: false, charEncoding: "percent", }), }; const path = pathToFunc( "/v1/installations/{integrationConfigurationId}/products/{integrationProductIdOrSlug}/resources/{resourceId}/secrets", )(pathParams); const headers = new Headers(compactMap({ "Content-Type": "application/json", Accept: "*/*", })); 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: "update-resource-secrets", 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: "PUT", baseURL: options?.serverURL, path: path, headers: headers, 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< void, | VercelError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError >( M.nil(201, z.void()), M.fail([400, 401, 403, 404, 409, 410, 422, "4XX"]), M.fail("5XX"), )(response, req); if (!result.ok) { return [result, { status: "complete", request: req, response }]; } return [result, { status: "complete", request: req, response }]; }