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>

453 lines (430 loc) 11.8 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { featureFlagsCreateFlag } from "../funcs/featureFlagsCreateFlag.js"; import { featureFlagsCreateFlagSegment } from "../funcs/featureFlagsCreateFlagSegment.js"; import { featureFlagsCreateSDKKey } from "../funcs/featureFlagsCreateSDKKey.js"; import { featureFlagsDeleteFlag } from "../funcs/featureFlagsDeleteFlag.js"; import { featureFlagsDeleteFlagSegment } from "../funcs/featureFlagsDeleteFlagSegment.js"; import { featureFlagsDeleteSDKKey } from "../funcs/featureFlagsDeleteSDKKey.js"; import { featureFlagsGetDeploymentFeatureFlags } from "../funcs/featureFlagsGetDeploymentFeatureFlags.js"; import { featureFlagsGetFlag } from "../funcs/featureFlagsGetFlag.js"; import { featureFlagsGetFlagSegment } from "../funcs/featureFlagsGetFlagSegment.js"; import { featureFlagsGetFlagSettings } from "../funcs/featureFlagsGetFlagSettings.js"; import { featureFlagsGetSDKKeys } from "../funcs/featureFlagsGetSDKKeys.js"; import { featureFlagsListFlags } from "../funcs/featureFlagsListFlags.js"; import { featureFlagsListFlagSegments } from "../funcs/featureFlagsListFlagSegments.js"; import { featureFlagsListFlagsV2 } from "../funcs/featureFlagsListFlagsV2.js"; import { featureFlagsListFlagVersions } from "../funcs/featureFlagsListFlagVersions.js"; import { featureFlagsListTeamFlags } from "../funcs/featureFlagsListTeamFlags.js"; import { featureFlagsListTeamFlagSettings } from "../funcs/featureFlagsListTeamFlagSettings.js"; import { featureFlagsListTeamFlagsV2 } from "../funcs/featureFlagsListTeamFlagsV2.js"; import { featureFlagsUpdateFlag } from "../funcs/featureFlagsUpdateFlag.js"; import { featureFlagsUpdateFlagSegment } from "../funcs/featureFlagsUpdateFlagSegment.js"; import { featureFlagsUpdateFlagSettings } from "../funcs/featureFlagsUpdateFlagSettings.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { CreateFlagRequest, CreateFlagResponseBody, } from "../models/createflagop.js"; import { CreateFlagSegmentRequest, CreateFlagSegmentResponseBody, } from "../models/createflagsegmentop.js"; import { CreateSDKKeyRequest } from "../models/createsdkkeyop.js"; import { DeleteFlagRequest } from "../models/deleteflagop.js"; import { DeleteFlagSegmentRequest } from "../models/deleteflagsegmentop.js"; import { DeleteSDKKeyRequest } from "../models/deletesdkkeyop.js"; import { Flag } from "../models/flag.js"; import { FlagsSDKKeyWithSecrets } from "../models/flagssdkkeywithsecrets.js"; import { GetDeploymentFeatureFlagsRequest, GetDeploymentFeatureFlagsResponseBody, } from "../models/getdeploymentfeatureflagsop.js"; import { GetFlagRequest } from "../models/getflagop.js"; import { GetFlagSegmentRequest } from "../models/getflagsegmentop.js"; import { GetFlagSettingsRequest, GetFlagSettingsResponseBody, } from "../models/getflagsettingsop.js"; import { GetSDKKeysRequest, GetSDKKeysResponseBody, } from "../models/getsdkkeysop.js"; import { ListFlagSegmentsRequest, ListFlagSegmentsResponseBody, } from "../models/listflagsegmentsop.js"; import { ListFlagsRequest, ListFlagsResponseBody, } from "../models/listflagsop.js"; import { ListFlagsV2Request, ListFlagsV2ResponseBody, } from "../models/listflagsv2op.js"; import { ListFlagVersionsRequest, ListFlagVersionsResponseBody, } from "../models/listflagversionsop.js"; import { ListTeamFlagSettingsRequest, ListTeamFlagSettingsResponseBody, } from "../models/listteamflagsettingsop.js"; import { ListTeamFlagsRequest, ListTeamFlagsResponseBody, } from "../models/listteamflagsop.js"; import { ListTeamFlagsV2Request, ListTeamFlagsV2ResponseBody, } from "../models/listteamflagsv2op.js"; import { Segment } from "../models/segment.js"; import { UpdateFlagRequest, UpdateFlagResponseBody, } from "../models/updateflagop.js"; import { UpdateFlagSegmentRequest } from "../models/updateflagsegmentop.js"; import { UpdateFlagSettingsRequest, UpdateFlagSettingsResponse, } from "../models/updateflagsettingsop.js"; import { unwrapAsync } from "../types/fp.js"; export class FeatureFlags extends ClientSDK { /** * List flags * * @remarks * Retrieve feature flags for a project. Returns an opaque cursor for pagination. */ async listFlagsV2( request: ListFlagsV2Request, options?: RequestOptions, ): Promise<ListFlagsV2ResponseBody> { return unwrapAsync(featureFlagsListFlagsV2( this, request, options, )); } /** * List flags * * @remarks * Retrieve feature flags for a project. The list can be filtered by state and supports pagination. */ async listFlags( request: ListFlagsRequest, options?: RequestOptions, ): Promise<ListFlagsResponseBody> { return unwrapAsync(featureFlagsListFlags( this, request, options, )); } /** * Create a flag * * @remarks * Create a new feature flag for a project. The flag must have a unique slug within the project and specify its kind (boolean, string, number, or json). */ async createFlag( request: CreateFlagRequest, options?: RequestOptions, ): Promise<CreateFlagResponseBody> { return unwrapAsync(featureFlagsCreateFlag( this, request, options, )); } /** * Get a flag * * @remarks * Retrieve a specific feature flag by its ID or slug. */ async getFlag( request: GetFlagRequest, options?: RequestOptions, ): Promise<Flag | undefined> { return unwrapAsync(featureFlagsGetFlag( this, request, options, )); } /** * Update a flag * * @remarks * Update an existing feature flag. This endpoint supports partial updates, allowing you to modify specific properties like variants, environments, or state without providing the full flag configuration. */ async updateFlag( request: UpdateFlagRequest, options?: RequestOptions, ): Promise<UpdateFlagResponseBody | undefined> { return unwrapAsync(featureFlagsUpdateFlag( this, request, options, )); } /** * Delete a flag * * @remarks * Permanently delete a feature flag from the project. This action cannot be undone. Consider archiving the flag instead if you may need it in the future. */ async deleteFlag( request: DeleteFlagRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync(featureFlagsDeleteFlag( this, request, options, )); } /** * List flag versions * * @remarks * Lists flag versions for a given flag. */ async listFlagVersions( request: ListFlagVersionsRequest, options?: RequestOptions, ): Promise<ListFlagVersionsResponseBody | undefined> { return unwrapAsync(featureFlagsListFlagVersions( this, request, options, )); } /** * Get project flag settings * * @remarks * Retrieve feature flag settings for a project. */ async getFlagSettings( request: GetFlagSettingsRequest, options?: RequestOptions, ): Promise<GetFlagSettingsResponseBody> { return unwrapAsync(featureFlagsGetFlagSettings( this, request, options, )); } /** * Update project flag settings * * @remarks * Update feature flag settings for a project. */ async updateFlagSettings( request: UpdateFlagSettingsRequest, options?: RequestOptions, ): Promise<UpdateFlagSettingsResponse> { return unwrapAsync(featureFlagsUpdateFlagSettings( this, request, options, )); } /** * List team project flag settings * * @remarks * Retrieve feature flag settings for projects in a team. */ async listTeamFlagSettings( request: ListTeamFlagSettingsRequest, options?: RequestOptions, ): Promise<ListTeamFlagSettingsResponseBody> { return unwrapAsync(featureFlagsListTeamFlagSettings( this, request, options, )); } /** * List all flags for a team * * @remarks * Retrieve all feature flags for a team across all projects. Returns an opaque cursor for pagination. */ async listTeamFlagsV2( request: ListTeamFlagsV2Request, options?: RequestOptions, ): Promise<ListTeamFlagsV2ResponseBody> { return unwrapAsync(featureFlagsListTeamFlagsV2( this, request, options, )); } /** * List all flags for a team * * @remarks * Retrieve all feature flags for a team across all projects. The list can be filtered by state and supports pagination. */ async listTeamFlags( request: ListTeamFlagsRequest, options?: RequestOptions, ): Promise<ListTeamFlagsResponseBody> { return unwrapAsync(featureFlagsListTeamFlags( this, request, options, )); } /** * Create a segment * * @remarks * Create a new feature flag segment. */ async createFlagSegment( request: CreateFlagSegmentRequest, options?: RequestOptions, ): Promise<CreateFlagSegmentResponseBody> { return unwrapAsync(featureFlagsCreateFlagSegment( this, request, options, )); } /** * List segments * * @remarks * List all feature flag segments for a project. */ async listFlagSegments( request: ListFlagSegmentsRequest, options?: RequestOptions, ): Promise<ListFlagSegmentsResponseBody> { return unwrapAsync(featureFlagsListFlagSegments( this, request, options, )); } /** * Get a segment * * @remarks * Retrieve a feature flag segment by ID or slug. */ async getFlagSegment( request: GetFlagSegmentRequest, options?: RequestOptions, ): Promise<Segment> { return unwrapAsync(featureFlagsGetFlagSegment( this, request, options, )); } /** * Delete a segment * * @remarks * Delete a feature flag segment. */ async deleteFlagSegment( request: DeleteFlagSegmentRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync(featureFlagsDeleteFlagSegment( this, request, options, )); } /** * Update a segment * * @remarks * Update an existing feature flag segment. */ async updateFlagSegment( request: UpdateFlagSegmentRequest, options?: RequestOptions, ): Promise<Segment> { return unwrapAsync(featureFlagsUpdateFlagSegment( this, request, options, )); } /** * Retrieve the feature flags of a deployment * * @remarks * Retrieve the feature flags of a deployment. */ async getDeploymentFeatureFlags( request: GetDeploymentFeatureFlagsRequest, options?: RequestOptions, ): Promise<GetDeploymentFeatureFlagsResponseBody> { return unwrapAsync(featureFlagsGetDeploymentFeatureFlags( this, request, options, )); } /** * Get all SDK keys * * @remarks * Gets all SDK keys for a project. */ async getSDKKeys( request: GetSDKKeysRequest, options?: RequestOptions, ): Promise<GetSDKKeysResponseBody> { return unwrapAsync(featureFlagsGetSDKKeys( this, request, options, )); } /** * Create an SDK key * * @remarks * Creates an SDK key. */ async createSDKKey( request: CreateSDKKeyRequest, options?: RequestOptions, ): Promise<FlagsSDKKeyWithSecrets> { return unwrapAsync(featureFlagsCreateSDKKey( this, request, options, )); } /** * Delete an SDK key * * @remarks * Deletes an SDK key. */ async deleteSDKKey( request: DeleteSDKKeyRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync(featureFlagsDeleteSDKKey( this, request, options, )); } }