@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>
185 lines (175 loc) • 6.97 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import { rollingReleaseApproveRollingReleaseStage } from "../funcs/rollingReleaseApproveRollingReleaseStage.js";
import { rollingReleaseCompleteRollingRelease } from "../funcs/rollingReleaseCompleteRollingRelease.js";
import { rollingReleaseDeleteRollingReleaseConfig } from "../funcs/rollingReleaseDeleteRollingReleaseConfig.js";
import { rollingReleaseGetRollingRelease } from "../funcs/rollingReleaseGetRollingRelease.js";
import { rollingReleaseGetRollingReleaseBillingStatus } from "../funcs/rollingReleaseGetRollingReleaseBillingStatus.js";
import { rollingReleaseGetRollingReleaseConfig } from "../funcs/rollingReleaseGetRollingReleaseConfig.js";
import { rollingReleaseStartRollingRelease } from "../funcs/rollingReleaseStartRollingRelease.js";
import { rollingReleaseUpdateRollingReleaseConfig } from "../funcs/rollingReleaseUpdateRollingReleaseConfig.js";
import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import {
ApproveRollingReleaseStageRequest,
ApproveRollingReleaseStageResponseBody,
} from "../models/approverollingreleasestageop.js";
import {
CompleteRollingReleaseRequest,
CompleteRollingReleaseResponseBody,
} from "../models/completerollingreleaseop.js";
import {
DeleteRollingReleaseConfigRequest,
DeleteRollingReleaseConfigResponseBody,
} from "../models/deleterollingreleaseconfigop.js";
import {
GetRollingReleaseBillingStatusRequest,
GetRollingReleaseBillingStatusResponseBody,
} from "../models/getrollingreleasebillingstatusop.js";
import {
GetRollingReleaseConfigRequest,
GetRollingReleaseConfigResponseBody,
} from "../models/getrollingreleaseconfigop.js";
import {
GetRollingReleaseRequest,
GetRollingReleaseResponseBody,
} from "../models/getrollingreleaseop.js";
import {
StartRollingReleaseRequest,
StartRollingReleaseResponseBody,
} from "../models/startrollingreleaseop.js";
import {
UpdateRollingReleaseConfigRequest,
UpdateRollingReleaseConfigResponseBody,
} from "../models/updaterollingreleaseconfigop.js";
import { unwrapAsync } from "../types/fp.js";
export class RollingRelease extends ClientSDK {
/**
* Get rolling release billing status
*
* @remarks
* Get the Rolling Releases billing status for a project. The team level billing status is used to determine if the project can be configured for rolling releases.
*/
async getRollingReleaseBillingStatus(
request: GetRollingReleaseBillingStatusRequest,
options?: RequestOptions,
): Promise<GetRollingReleaseBillingStatusResponseBody> {
return unwrapAsync(rollingReleaseGetRollingReleaseBillingStatus(
this,
request,
options,
));
}
/**
* Get rolling release configuration
*
* @remarks
* 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.
*/
async getRollingReleaseConfig(
request: GetRollingReleaseConfigRequest,
options?: RequestOptions,
): Promise<GetRollingReleaseConfigResponseBody> {
return unwrapAsync(rollingReleaseGetRollingReleaseConfig(
this,
request,
options,
));
}
/**
* Delete rolling release configuration
*
* @remarks
* 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.
*/
async deleteRollingReleaseConfig(
request: DeleteRollingReleaseConfigRequest,
options?: RequestOptions,
): Promise<DeleteRollingReleaseConfigResponseBody> {
return unwrapAsync(rollingReleaseDeleteRollingReleaseConfig(
this,
request,
options,
));
}
/**
* Update the rolling release settings for the project
*
* @remarks
* Update (or disable) Rolling Releases for a project. When disabling with the resolve-on-disable feature flag enabled, any active rolling release document is resolved using the disableRolloutAction parameter: "abort" to roll back (default), or "complete" to promote the canary to production. When enabling or updating config, changes only affect the next production deployment and do not alter a rollout that's already in-flight. Note: Enabling Rolling Releases automatically enables skew protection on the project with the default value if it wasn't configured already.
*/
async updateRollingReleaseConfig(
request: UpdateRollingReleaseConfigRequest,
options?: RequestOptions,
): Promise<UpdateRollingReleaseConfigResponseBody> {
return unwrapAsync(rollingReleaseUpdateRollingReleaseConfig(
this,
request,
options,
));
}
/**
* Get the active rolling release information for a project
*
* @remarks
* 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.
*/
async getRollingRelease(
request: GetRollingReleaseRequest,
options?: RequestOptions,
): Promise<GetRollingReleaseResponseBody> {
return unwrapAsync(rollingReleaseGetRollingRelease(
this,
request,
options,
));
}
/**
* Update the active rolling release to the next stage for a project
*
* @remarks
* Advance a rollout to the next stage. This is only needed when rolling releases is configured to require manual approval.
*/
async approveRollingReleaseStage(
request: ApproveRollingReleaseStageRequest,
options?: RequestOptions,
): Promise<ApproveRollingReleaseStageResponseBody> {
return unwrapAsync(rollingReleaseApproveRollingReleaseStage(
this,
request,
options,
));
}
/**
* Start a rolling release for the project
*
* @remarks
* Start a rolling release for a deployment. If a rolling release is already active for the same canary deployment, returns the current state without side effects.
*/
async startRollingRelease(
request: StartRollingReleaseRequest,
options?: RequestOptions,
): Promise<StartRollingReleaseResponseBody> {
return unwrapAsync(rollingReleaseStartRollingRelease(
this,
request,
options,
));
}
/**
* Complete the rolling release for the project
*
* @remarks
* Force-complete a Rolling Release. The canary deployment will begin serving 100% of the traffic.
*/
async completeRollingRelease(
request: CompleteRollingReleaseRequest,
options?: RequestOptions,
): Promise<CompleteRollingReleaseResponseBody> {
return unwrapAsync(rollingReleaseCompleteRollingRelease(
this,
request,
options,
));
}
}