@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
text/typescript
/*
* 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,
));
}
}