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>

732 lines (683 loc) 23.4 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../lib/primitives.js"; import { safeParse } from "../lib/schemas.js"; import { ClosedEnum } from "../types/enums.js"; import { Result as SafeParseResult } from "../types/fp.js"; import * as types from "../types/primitives.js"; import { SDKValidationError } from "./sdkvalidationerror.js"; export type ApproveRollingReleaseStageRequestBody = { /** * The index of the stage to transition to */ nextStageIndex: number; /** * The id of the canary deployment to approve for the next stage */ canaryDeploymentId: string; }; export type ApproveRollingReleaseStageRequest = { /** * Project ID or project name (URL-encoded) */ idOrName: string; /** * The Team identifier to perform the request on behalf of. */ teamId?: string | undefined; /** * The Team slug to perform the request on behalf of. */ slug?: string | undefined; requestBody?: ApproveRollingReleaseStageRequestBody | undefined; }; /** * The current state of the rolling release */ export const ApproveRollingReleaseStageState = { Aborted: "ABORTED", Active: "ACTIVE", Complete: "COMPLETE", } as const; /** * The current state of the rolling release */ export type ApproveRollingReleaseStageState = ClosedEnum< typeof ApproveRollingReleaseStageState >; /** * When set to `PAUSED`, the rollout is frozen at the current percentage until continued. */ export const ApproveRollingReleaseStageSubstate = { Paused: "PAUSED", } as const; /** * When set to `PAUSED`, the rollout is frozen at the current percentage until continued. */ export type ApproveRollingReleaseStageSubstate = ClosedEnum< typeof ApproveRollingReleaseStageSubstate >; /** * The state of the deployment depending on the process of deploying, or if it is ready or in an error state */ export const ApproveRollingReleaseStageReadyState = { Blocked: "BLOCKED", Building: "BUILDING", Canceled: "CANCELED", Error: "ERROR", Initializing: "INITIALIZING", Queued: "QUEUED", Ready: "READY", } as const; /** * The state of the deployment depending on the process of deploying, or if it is ready or in an error state */ export type ApproveRollingReleaseStageReadyState = ClosedEnum< typeof ApproveRollingReleaseStageReadyState >; /** * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. */ export const ApproveRollingReleaseStageTarget = { Production: "production", Staging: "staging", } as const; /** * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. */ export type ApproveRollingReleaseStageTarget = ClosedEnum< typeof ApproveRollingReleaseStageTarget >; /** * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. */ export const ApproveRollingReleaseStageSource = { ApiTriggerGitDeploy: "api-trigger-git-deploy", Cli: "cli", CloneRepo: "clone/repo", Drop: "drop", Git: "git", GitDeployHook: "git-deploy-hook", Import: "import", ImportRepo: "import/repo", Redeploy: "redeploy", V0Web: "v0-web", } as const; /** * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. */ export type ApproveRollingReleaseStageSource = ClosedEnum< typeof ApproveRollingReleaseStageSource >; /** * The current deployment receiving production traffic */ export type ApproveRollingReleaseStageCurrentDeployment = { /** * The name of the project associated with the deployment at the time that the deployment was created */ name: string; /** * A number containing the date when the deployment was created in milliseconds */ createdAt: number; /** * The state of the deployment depending on the process of deploying, or if it is ready or in an error state */ readyState: ApproveRollingReleaseStageReadyState; /** * A string holding the unique ID of the deployment */ id: string; /** * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. */ target?: ApproveRollingReleaseStageTarget | null | undefined; readyStateAt?: number | undefined; /** * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. */ source?: ApproveRollingReleaseStageSource | undefined; /** * A string with the unique URL of the deployment */ url: string; }; /** * The state of the deployment depending on the process of deploying, or if it is ready or in an error state */ export const ApproveRollingReleaseStageRollingReleaseReadyState = { Blocked: "BLOCKED", Building: "BUILDING", Canceled: "CANCELED", Error: "ERROR", Initializing: "INITIALIZING", Queued: "QUEUED", Ready: "READY", } as const; /** * The state of the deployment depending on the process of deploying, or if it is ready or in an error state */ export type ApproveRollingReleaseStageRollingReleaseReadyState = ClosedEnum< typeof ApproveRollingReleaseStageRollingReleaseReadyState >; /** * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. */ export const ApproveRollingReleaseStageRollingReleaseTarget = { Production: "production", Staging: "staging", } as const; /** * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. */ export type ApproveRollingReleaseStageRollingReleaseTarget = ClosedEnum< typeof ApproveRollingReleaseStageRollingReleaseTarget >; /** * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. */ export const ApproveRollingReleaseStageRollingReleaseSource = { ApiTriggerGitDeploy: "api-trigger-git-deploy", Cli: "cli", CloneRepo: "clone/repo", Drop: "drop", Git: "git", GitDeployHook: "git-deploy-hook", Import: "import", ImportRepo: "import/repo", Redeploy: "redeploy", V0Web: "v0-web", } as const; /** * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. */ export type ApproveRollingReleaseStageRollingReleaseSource = ClosedEnum< typeof ApproveRollingReleaseStageRollingReleaseSource >; /** * The canary deployment being rolled out */ export type ApproveRollingReleaseStageCanaryDeployment = { /** * The name of the project associated with the deployment at the time that the deployment was created */ name: string; /** * A number containing the date when the deployment was created in milliseconds */ createdAt: number; /** * The state of the deployment depending on the process of deploying, or if it is ready or in an error state */ readyState: ApproveRollingReleaseStageRollingReleaseReadyState; /** * A string holding the unique ID of the deployment */ id: string; /** * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. */ target?: ApproveRollingReleaseStageRollingReleaseTarget | null | undefined; readyStateAt?: number | undefined; /** * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. */ source?: ApproveRollingReleaseStageRollingReleaseSource | undefined; /** * A string with the unique URL of the deployment */ url: string; }; /** * The advancement type of the rolling release */ export const ApproveRollingReleaseStageAdvancementType = { Automatic: "automatic", ManualApproval: "manual-approval", } as const; /** * The advancement type of the rolling release */ export type ApproveRollingReleaseStageAdvancementType = ClosedEnum< typeof ApproveRollingReleaseStageAdvancementType >; /** * All stages configured for this rolling release */ export type ApproveRollingReleaseStageStages = { /** * The zero-based index of the stage */ index: number; /** * Whether or not this stage is the final stage (targetPercentage === 100) */ isFinalStage: boolean; /** * The percentage of traffic to serve to the canary deployment (0-100) */ targetPercentage: number; /** * Whether or not this stage requires manual approval to proceed */ requireApproval: boolean; /** * Duration in seconds for automatic advancement, null for manual stages or the final stage */ duration: number | null; /** * Whether to linearly shift traffic over the duration of this stage */ linearShift?: boolean | undefined; }; /** * The currently active stage, null if the rollout is aborted */ export type ApproveRollingReleaseStageActiveStage = { /** * The zero-based index of the stage */ index: number; /** * Whether or not this stage is the final stage (targetPercentage === 100) */ isFinalStage: boolean; /** * The percentage of traffic to serve to the canary deployment (0-100) */ targetPercentage: number; /** * Whether or not this stage requires manual approval to proceed */ requireApproval: boolean; /** * Duration in seconds for automatic advancement, null for manual stages or the final stage */ duration: number | null; /** * Whether to linearly shift traffic over the duration of this stage */ linearShift?: boolean | undefined; }; /** * The next stage to be activated, null if not in ACTIVE state */ export type ApproveRollingReleaseStageNextStage = { /** * The zero-based index of the stage */ index: number; /** * Whether or not this stage is the final stage (targetPercentage === 100) */ isFinalStage: boolean; /** * The percentage of traffic to serve to the canary deployment (0-100) */ targetPercentage: number; /** * Whether or not this stage requires manual approval to proceed */ requireApproval: boolean; /** * Duration in seconds for automatic advancement, null for manual stages or the final stage */ duration: number | null; /** * Whether to linearly shift traffic over the duration of this stage */ linearShift?: boolean | undefined; }; /** * Rolling release information including configuration and document details, or null if no rolling release exists */ export type ApproveRollingReleaseStageRollingRelease = { /** * The current state of the rolling release */ state: ApproveRollingReleaseStageState; /** * When set to `PAUSED`, the rollout is frozen at the current percentage until continued. */ substate: ApproveRollingReleaseStageSubstate | null; /** * The current deployment receiving production traffic */ currentDeployment: ApproveRollingReleaseStageCurrentDeployment | null; /** * The canary deployment being rolled out */ canaryDeployment: ApproveRollingReleaseStageCanaryDeployment | null; /** * The ID of a deployment queued for the next rolling release */ queuedDeploymentId: string | null; /** * The advancement type of the rolling release */ advancementType: ApproveRollingReleaseStageAdvancementType; /** * All stages configured for this rolling release */ stages: Array<ApproveRollingReleaseStageStages>; /** * The currently active stage, null if the rollout is aborted */ activeStage: ApproveRollingReleaseStageActiveStage | null; /** * The next stage to be activated, null if not in ACTIVE state */ nextStage: ApproveRollingReleaseStageNextStage | null; /** * Unix timestamp in milliseconds when the rolling release started */ startedAt: number; /** * Unix timestamp in milliseconds when the rolling release was last updated */ updatedAt: number; /** * When set (for example while {@link substate} is `PAUSED`), the canary traffic percentage persisted on the rollout document — use for dashboard display when linear shift is active. */ currentCanaryPercentage?: number | undefined; }; /** * The response format for rolling release endpoints that return rolling release information */ export type ApproveRollingReleaseStageResponseBody = { /** * Rolling release information including configuration and document details, or null if no rolling release exists */ rollingRelease: ApproveRollingReleaseStageRollingRelease | null; }; /** @internal */ export type ApproveRollingReleaseStageRequestBody$Outbound = { nextStageIndex: number; canaryDeploymentId: string; }; /** @internal */ export const ApproveRollingReleaseStageRequestBody$outboundSchema: z.ZodType< ApproveRollingReleaseStageRequestBody$Outbound, z.ZodTypeDef, ApproveRollingReleaseStageRequestBody > = z.object({ nextStageIndex: z.number(), canaryDeploymentId: z.string(), }); export function approveRollingReleaseStageRequestBodyToJSON( approveRollingReleaseStageRequestBody: ApproveRollingReleaseStageRequestBody, ): string { return JSON.stringify( ApproveRollingReleaseStageRequestBody$outboundSchema.parse( approveRollingReleaseStageRequestBody, ), ); } /** @internal */ export type ApproveRollingReleaseStageRequest$Outbound = { idOrName: string; teamId?: string | undefined; slug?: string | undefined; RequestBody?: ApproveRollingReleaseStageRequestBody$Outbound | undefined; }; /** @internal */ export const ApproveRollingReleaseStageRequest$outboundSchema: z.ZodType< ApproveRollingReleaseStageRequest$Outbound, z.ZodTypeDef, ApproveRollingReleaseStageRequest > = z.object({ idOrName: z.string(), teamId: z.string().optional(), slug: z.string().optional(), requestBody: z.lazy(() => ApproveRollingReleaseStageRequestBody$outboundSchema ).optional(), }).transform((v) => { return remap$(v, { requestBody: "RequestBody", }); }); export function approveRollingReleaseStageRequestToJSON( approveRollingReleaseStageRequest: ApproveRollingReleaseStageRequest, ): string { return JSON.stringify( ApproveRollingReleaseStageRequest$outboundSchema.parse( approveRollingReleaseStageRequest, ), ); } /** @internal */ export const ApproveRollingReleaseStageState$inboundSchema: z.ZodNativeEnum< typeof ApproveRollingReleaseStageState > = z.nativeEnum(ApproveRollingReleaseStageState); /** @internal */ export const ApproveRollingReleaseStageSubstate$inboundSchema: z.ZodNativeEnum< typeof ApproveRollingReleaseStageSubstate > = z.nativeEnum(ApproveRollingReleaseStageSubstate); /** @internal */ export const ApproveRollingReleaseStageReadyState$inboundSchema: z.ZodNativeEnum<typeof ApproveRollingReleaseStageReadyState> = z.nativeEnum( ApproveRollingReleaseStageReadyState, ); /** @internal */ export const ApproveRollingReleaseStageTarget$inboundSchema: z.ZodNativeEnum< typeof ApproveRollingReleaseStageTarget > = z.nativeEnum(ApproveRollingReleaseStageTarget); /** @internal */ export const ApproveRollingReleaseStageSource$inboundSchema: z.ZodNativeEnum< typeof ApproveRollingReleaseStageSource > = z.nativeEnum(ApproveRollingReleaseStageSource); /** @internal */ export const ApproveRollingReleaseStageCurrentDeployment$inboundSchema: z.ZodType< ApproveRollingReleaseStageCurrentDeployment, z.ZodTypeDef, unknown > = z.object({ name: types.string(), createdAt: types.number(), readyState: ApproveRollingReleaseStageReadyState$inboundSchema, id: types.string(), target: z.nullable(ApproveRollingReleaseStageTarget$inboundSchema) .optional(), readyStateAt: types.optional(types.number()), source: types.optional(ApproveRollingReleaseStageSource$inboundSchema), url: types.string(), }); export function approveRollingReleaseStageCurrentDeploymentFromJSON( jsonString: string, ): SafeParseResult< ApproveRollingReleaseStageCurrentDeployment, SDKValidationError > { return safeParse( jsonString, (x) => ApproveRollingReleaseStageCurrentDeployment$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'ApproveRollingReleaseStageCurrentDeployment' from JSON`, ); } /** @internal */ export const ApproveRollingReleaseStageRollingReleaseReadyState$inboundSchema: z.ZodNativeEnum<typeof ApproveRollingReleaseStageRollingReleaseReadyState> = z .nativeEnum(ApproveRollingReleaseStageRollingReleaseReadyState); /** @internal */ export const ApproveRollingReleaseStageRollingReleaseTarget$inboundSchema: z.ZodNativeEnum<typeof ApproveRollingReleaseStageRollingReleaseTarget> = z .nativeEnum(ApproveRollingReleaseStageRollingReleaseTarget); /** @internal */ export const ApproveRollingReleaseStageRollingReleaseSource$inboundSchema: z.ZodNativeEnum<typeof ApproveRollingReleaseStageRollingReleaseSource> = z .nativeEnum(ApproveRollingReleaseStageRollingReleaseSource); /** @internal */ export const ApproveRollingReleaseStageCanaryDeployment$inboundSchema: z.ZodType<ApproveRollingReleaseStageCanaryDeployment, z.ZodTypeDef, unknown> = z.object({ name: types.string(), createdAt: types.number(), readyState: ApproveRollingReleaseStageRollingReleaseReadyState$inboundSchema, id: types.string(), target: z.nullable( ApproveRollingReleaseStageRollingReleaseTarget$inboundSchema, ).optional(), readyStateAt: types.optional(types.number()), source: types.optional( ApproveRollingReleaseStageRollingReleaseSource$inboundSchema, ), url: types.string(), }); export function approveRollingReleaseStageCanaryDeploymentFromJSON( jsonString: string, ): SafeParseResult< ApproveRollingReleaseStageCanaryDeployment, SDKValidationError > { return safeParse( jsonString, (x) => ApproveRollingReleaseStageCanaryDeployment$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'ApproveRollingReleaseStageCanaryDeployment' from JSON`, ); } /** @internal */ export const ApproveRollingReleaseStageAdvancementType$inboundSchema: z.ZodNativeEnum<typeof ApproveRollingReleaseStageAdvancementType> = z .nativeEnum(ApproveRollingReleaseStageAdvancementType); /** @internal */ export const ApproveRollingReleaseStageStages$inboundSchema: z.ZodType< ApproveRollingReleaseStageStages, z.ZodTypeDef, unknown > = z.object({ index: types.number(), isFinalStage: types.boolean(), targetPercentage: types.number(), requireApproval: types.boolean(), duration: types.nullable(types.number()), linearShift: types.optional(types.boolean()), }); export function approveRollingReleaseStageStagesFromJSON( jsonString: string, ): SafeParseResult<ApproveRollingReleaseStageStages, SDKValidationError> { return safeParse( jsonString, (x) => ApproveRollingReleaseStageStages$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ApproveRollingReleaseStageStages' from JSON`, ); } /** @internal */ export const ApproveRollingReleaseStageActiveStage$inboundSchema: z.ZodType< ApproveRollingReleaseStageActiveStage, z.ZodTypeDef, unknown > = z.object({ index: types.number(), isFinalStage: types.boolean(), targetPercentage: types.number(), requireApproval: types.boolean(), duration: types.nullable(types.number()), linearShift: types.optional(types.boolean()), }); export function approveRollingReleaseStageActiveStageFromJSON( jsonString: string, ): SafeParseResult<ApproveRollingReleaseStageActiveStage, SDKValidationError> { return safeParse( jsonString, (x) => ApproveRollingReleaseStageActiveStage$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ApproveRollingReleaseStageActiveStage' from JSON`, ); } /** @internal */ export const ApproveRollingReleaseStageNextStage$inboundSchema: z.ZodType< ApproveRollingReleaseStageNextStage, z.ZodTypeDef, unknown > = z.object({ index: types.number(), isFinalStage: types.boolean(), targetPercentage: types.number(), requireApproval: types.boolean(), duration: types.nullable(types.number()), linearShift: types.optional(types.boolean()), }); export function approveRollingReleaseStageNextStageFromJSON( jsonString: string, ): SafeParseResult<ApproveRollingReleaseStageNextStage, SDKValidationError> { return safeParse( jsonString, (x) => ApproveRollingReleaseStageNextStage$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ApproveRollingReleaseStageNextStage' from JSON`, ); } /** @internal */ export const ApproveRollingReleaseStageRollingRelease$inboundSchema: z.ZodType< ApproveRollingReleaseStageRollingRelease, z.ZodTypeDef, unknown > = z.object({ state: ApproveRollingReleaseStageState$inboundSchema, substate: types.nullable(ApproveRollingReleaseStageSubstate$inboundSchema), currentDeployment: types.nullable( z.lazy(() => ApproveRollingReleaseStageCurrentDeployment$inboundSchema), ), canaryDeployment: types.nullable( z.lazy(() => ApproveRollingReleaseStageCanaryDeployment$inboundSchema), ), queuedDeploymentId: types.nullable(types.string()), advancementType: ApproveRollingReleaseStageAdvancementType$inboundSchema, stages: z.array(z.lazy(() => ApproveRollingReleaseStageStages$inboundSchema)), activeStage: types.nullable( z.lazy(() => ApproveRollingReleaseStageActiveStage$inboundSchema), ), nextStage: types.nullable( z.lazy(() => ApproveRollingReleaseStageNextStage$inboundSchema), ), startedAt: types.number(), updatedAt: types.number(), currentCanaryPercentage: types.optional(types.number()), }); export function approveRollingReleaseStageRollingReleaseFromJSON( jsonString: string, ): SafeParseResult< ApproveRollingReleaseStageRollingRelease, SDKValidationError > { return safeParse( jsonString, (x) => ApproveRollingReleaseStageRollingRelease$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'ApproveRollingReleaseStageRollingRelease' from JSON`, ); } /** @internal */ export const ApproveRollingReleaseStageResponseBody$inboundSchema: z.ZodType< ApproveRollingReleaseStageResponseBody, z.ZodTypeDef, unknown > = z.object({ rollingRelease: types.nullable( z.lazy(() => ApproveRollingReleaseStageRollingRelease$inboundSchema), ), }); export function approveRollingReleaseStageResponseBodyFromJSON( jsonString: string, ): SafeParseResult<ApproveRollingReleaseStageResponseBody, SDKValidationError> { return safeParse( jsonString, (x) => ApproveRollingReleaseStageResponseBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ApproveRollingReleaseStageResponseBody' from JSON`, ); }