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>

576 lines (547 loc) 20.7 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { vcrAddRepositoryPermission } from "../funcs/vcrAddRepositoryPermission.js"; import { vcrClearRepositoryPermissions } from "../funcs/vcrClearRepositoryPermissions.js"; import { vcrCreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploads } from "../funcs/vcrCreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploads.js"; import { vcrCreateRepository } from "../funcs/vcrCreateRepository.js"; import { vcrDeleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest } from "../funcs/vcrDeleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest.js"; import { vcrDeleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid } from "../funcs/vcrDeleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid.js"; import { vcrDeleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReference } from "../funcs/vcrDeleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReference.js"; import { vcrDeleteRepository } from "../funcs/vcrDeleteRepository.js"; import { vcrDeleteRepositoryImage } from "../funcs/vcrDeleteRepositoryImage.js"; import { vcrGetByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest } from "../funcs/vcrGetByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest.js"; import { vcrGetByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid } from "../funcs/vcrGetByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid.js"; import { vcrGetByTeamSlugByProjectSlugByRepositoryNameManifestsByReference } from "../funcs/vcrGetByTeamSlugByProjectSlugByRepositoryNameManifestsByReference.js"; import { vcrGetByTeamSlugByProjectSlugByRepositoryNameTagsList } from "../funcs/vcrGetByTeamSlugByProjectSlugByRepositoryNameTagsList.js"; import { vcrGetRepository } from "../funcs/vcrGetRepository.js"; import { vcrGetRepositoryImage } from "../funcs/vcrGetRepositoryImage.js"; import { vcrGetRepositoryTag } from "../funcs/vcrGetRepositoryTag.js"; import { vcrGetRoot } from "../funcs/vcrGetRoot.js"; import { vcrHeadByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest } from "../funcs/vcrHeadByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest.js"; import { vcrHeadByTeamSlugByProjectSlugByRepositoryNameManifestsByReference } from "../funcs/vcrHeadByTeamSlugByProjectSlugByRepositoryNameManifestsByReference.js"; import { vcrListRepositories } from "../funcs/vcrListRepositories.js"; import { vcrListRepositoryImages } from "../funcs/vcrListRepositoryImages.js"; import { vcrListRepositoryPermissions } from "../funcs/vcrListRepositoryPermissions.js"; import { vcrListRepositoryTags } from "../funcs/vcrListRepositoryTags.js"; import { vcrRemoveRepositoryPermission } from "../funcs/vcrRemoveRepositoryPermission.js"; import { vcrReplaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid } from "../funcs/vcrReplaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid.js"; import { vcrReplaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReference } from "../funcs/vcrReplaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReference.js"; import { vcrUpdateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid } from "../funcs/vcrUpdateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { AddRepositoryPermissionRequest, AddRepositoryPermissionResponseBody, } from "../models/addrepositorypermissionop.js"; import { ClearRepositoryPermissionsRequest } from "../models/clearrepositorypermissionsop.js"; import { CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest } from "../models/createbyteamslugbyprojectslugbyrepositorynameblobsuploadsop.js"; import { CreateRepositoryRequest, CreateRepositoryResponseBody, } from "../models/createrepositoryop.js"; import { DeleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigestRequest } from "../models/deletebyteamslugbyprojectslugbyrepositorynameblobsbydigestop.js"; import { DeleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest } from "../models/deletebyteamslugbyprojectslugbyrepositorynameblobsuploadsbyuuidop.js"; import { DeleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest } from "../models/deletebyteamslugbyprojectslugbyrepositorynamemanifestsbyreferenceop.js"; import { DeleteRepositoryImageRequest } from "../models/deleterepositoryimageop.js"; import { DeleteRepositoryRequest } from "../models/deleterepositoryop.js"; import { GetByTeamSlugByProjectSlugByRepositoryNameBlobsByDigestRequest } from "../models/getbyteamslugbyprojectslugbyrepositorynameblobsbydigestop.js"; import { GetByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest } from "../models/getbyteamslugbyprojectslugbyrepositorynameblobsuploadsbyuuidop.js"; import { GetByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest } from "../models/getbyteamslugbyprojectslugbyrepositorynamemanifestsbyreferenceop.js"; import { GetByTeamSlugByProjectSlugByRepositoryNameTagsListRequest, GetByTeamSlugByProjectSlugByRepositoryNameTagsListResponseBody, } from "../models/getbyteamslugbyprojectslugbyrepositorynametagslistop.js"; import { GetRepositoryImageRequest, GetRepositoryImageResponseBody, } from "../models/getrepositoryimageop.js"; import { GetRepositoryRequest, GetRepositoryResponseBody, } from "../models/getrepositoryop.js"; import { GetRepositoryTagRequest, GetRepositoryTagResponseBody, } from "../models/getrepositorytagop.js"; import { GetRootResponseBody } from "../models/getrootop.js"; import { HeadByTeamSlugByProjectSlugByRepositoryNameBlobsByDigestRequest } from "../models/headbyteamslugbyprojectslugbyrepositorynameblobsbydigestop.js"; import { HeadByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest } from "../models/headbyteamslugbyprojectslugbyrepositorynamemanifestsbyreferenceop.js"; import { ListRepositoriesRequest } from "../models/listrepositoriesop.js"; import { ListRepositoryImagesRequest } from "../models/listrepositoryimagesop.js"; import { ListRepositoryPermissionsRequest } from "../models/listrepositorypermissionsop.js"; import { ListRepositoryTagsRequest, ListRepositoryTagsResponseBody, } from "../models/listrepositorytagsop.js"; import { RemoveRepositoryPermissionRequest } from "../models/removerepositorypermissionop.js"; import { ReplaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest } from "../models/replacebyteamslugbyprojectslugbyrepositorynameblobsuploadsbyuuidop.js"; import { ReplaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest } from "../models/replacebyteamslugbyprojectslugbyrepositorynamemanifestsbyreferenceop.js"; import { UpdateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest } from "../models/updatebyteamslugbyprojectslugbyrepositorynameblobsuploadsbyuuidop.js"; import { VcrImageList } from "../models/vcrimagelist.js"; import { VcrRepositoryList } from "../models/vcrrepositorylist.js"; import { VcrRepositoryPermissionList } from "../models/vcrrepositorypermissionlist.js"; import { unwrapAsync } from "../types/fp.js"; export class Vcr extends ClientSDK { /** * Create a repository * * @remarks * Create a container registry repository for a project. */ async createRepository( request: CreateRepositoryRequest, options?: RequestOptions, ): Promise<CreateRepositoryResponseBody> { return unwrapAsync(vcrCreateRepository( this, request, options, )); } /** * List repositories * * @remarks * List container registry repositories for a project. */ async listRepositories( request: ListRepositoriesRequest, options?: RequestOptions, ): Promise<VcrRepositoryList> { return unwrapAsync(vcrListRepositories( this, request, options, )); } /** * Get a repository * * @remarks * Fetch a container registry repository for a project by ID or name. */ async getRepository( request: GetRepositoryRequest, options?: RequestOptions, ): Promise<GetRepositoryResponseBody> { return unwrapAsync(vcrGetRepository( this, request, options, )); } /** * Delete a repository * * @remarks * Schedule a repository for deletion. The repository is marked so it disappears from list/get immediately; subscriber-vcr reclaims every image (manifests, blobs, tags and rows) and finally deletes the repository row asynchronously via the VcrRepositoryRemoved event. */ async deleteRepository( request: DeleteRepositoryRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync(vcrDeleteRepository( this, request, options, )); } /** * List repository images * * @remarks * List images for a container registry repository, including their tags. */ async listRepositoryImages( request: ListRepositoryImagesRequest, options?: RequestOptions, ): Promise<VcrImageList> { return unwrapAsync(vcrListRepositoryImages( this, request, options, )); } /** * Add a repository permission * * @remarks * Grant a team access to a VCR repository. Sharing applies to the whole repository. */ async addRepositoryPermission( request: AddRepositoryPermissionRequest, options?: RequestOptions, ): Promise<AddRepositoryPermissionResponseBody> { return unwrapAsync(vcrAddRepositoryPermission( this, request, options, )); } /** * Remove a repository permission * * @remarks * Revoke a team's access to a VCR repository. */ async removeRepositoryPermission( request: RemoveRepositoryPermissionRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync(vcrRemoveRepositoryPermission( this, request, options, )); } /** * List repository permissions * * @remarks * List the teams a VCR repository is shared with. */ async listRepositoryPermissions( request: ListRepositoryPermissionsRequest, options?: RequestOptions, ): Promise<VcrRepositoryPermissionList> { return unwrapAsync(vcrListRepositoryPermissions( this, request, options, )); } /** * Clear all repository permissions * * @remarks * Revoke every team's access to a VCR repository. Clearing an unshared repository is a no-op. */ async clearRepositoryPermissions( request: ClearRepositoryPermissionsRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync(vcrClearRepositoryPermissions( this, request, options, )); } /** * List repository tags * * @remarks * List a repository's tags. */ async listRepositoryTags( request: ListRepositoryTagsRequest, options?: RequestOptions, ): Promise<ListRepositoryTagsResponseBody> { return unwrapAsync(vcrListRepositoryTags( this, request, options, )); } /** * Get a repository tag * * @remarks * Fetch a single tag from a repository, including the backing image's metadata and VHS-readiness status. */ async getRepositoryTag( request: GetRepositoryTagRequest, options?: RequestOptions, ): Promise<GetRepositoryTagResponseBody> { return unwrapAsync(vcrGetRepositoryTag( this, request, options, )); } /** * Get a repository image * * @remarks * Fetch an individual image from a repository, including its tags and Dockerfile history entries with discriminated layer details for UI rendering. The image may be addressed by its internal id (`image_...`) or by its manifest digest (`sha256:...`). */ async getRepositoryImage( request: GetRepositoryImageRequest, options?: RequestOptions, ): Promise<GetRepositoryImageResponseBody> { return unwrapAsync(vcrGetRepositoryImage( this, request, options, )); } /** * Delete a repository image * * @remarks * Schedule an image for deletion. The image is marked so it disappears from list/get immediately; subscriber-vcr reclaims the manifest, blobs, tags and row asynchronously via the VcrManifestRemoved event. */ async deleteRepositoryImage( request: DeleteRepositoryImageRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync(vcrDeleteRepositoryImage( this, request, options, )); } /** * Check registry API version support * * @remarks * GET /v2/ Docker Registry v2 version check. Returns a 401 challenge when no credentials are provided, prompting the Docker client to send auth. With valid credentials, returns 200 so the client can proceed. */ async getRoot( options?: RequestOptions, ): Promise<GetRootResponseBody> { return unwrapAsync(vcrGetRoot( this, options, )); } /** * Check if a blob exists * * @remarks * HEAD /v2/:teamSlug/:projectSlug/:repositoryName/blobs/:digest Check whether a blob exists. Used by the Docker client before pushing a layer to avoid re-uploading content that already exists. */ async headByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest( request: HeadByTeamSlugByProjectSlugByRepositoryNameBlobsByDigestRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrHeadByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest( this, request, options, ), ); } /** * Download a blob * * @remarks * GET /v2/:teamSlug/:projectSlug/:repositoryName/blobs/:digest Fetch a blob by digest. */ async getByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest( request: GetByTeamSlugByProjectSlugByRepositoryNameBlobsByDigestRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync( vcrGetByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest( this, request, options, ), ); } /** * Delete a blob * * @remarks * DELETE /v2/:teamSlug/:projectSlug/:repositoryName/blobs/:digest Blob deletion is intentionally not supported. Matches the behaviour of most public registries. */ async deleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest( request: DeleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigestRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync( vcrDeleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest( this, request, options, ), ); } /** * Get blob upload status * * @remarks * GET /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid Query the status of an in-progress blob upload. Used by clients to resume a partial upload after an interruption. */ async getByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( request: GetByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrGetByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( this, request, options, ), ); } /** * Cancel a blob upload * * @remarks * DELETE /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid Cancel an in-flight blob upload. Aborts the underlying S3 multipart upload (if one was started) and discards the session. */ async deleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( request: DeleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrDeleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( this, request, options, ), ); } /** * Upload a blob chunk * * @remarks * PATCH /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid Upload a chunk of blob data. The request body is streamed directly to S3 as a multipart upload part while hashing incrementally. The client may call this multiple times for chunked uploads. */ async updateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( request: UpdateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrUpdateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( this, request, options, ), ); } /** * Complete a blob upload * * @remarks * PUT /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid?digest=<digest> Complete the blob upload. This may include a final chunk of data in the request body (monolithic upload) or just finalize a previous chunked upload. */ async replaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( request: ReplaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuidRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrReplaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid( this, request, options, ), ); } /** * Start a blob upload * * @remarks * POST /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/[?mount=<digest>&from=<repo>] Initiate a blob upload. Returns a UUID in the Location header that the client uses for subsequent PATCH (chunk) and PUT (complete) requests. */ async createByTeamSlugByProjectSlugByRepositoryNameBlobsUploads( request: CreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrCreateByTeamSlugByProjectSlugByRepositoryNameBlobsUploads( this, request, options, ), ); } /** * Push an image manifest * * @remarks * PUT /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Upload an image manifest. The digest is computed from the body and returned in the Docker-Content-Digest header. */ async replaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( request: ReplaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrReplaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( this, request, options, ), ); } /** * Check if a manifest exists * * @remarks * HEAD /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Check whether a manifest exists. Used by Docker client during push to determine if a manifest (or config blob referenced by digest) is already present. */ async headByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( request: HeadByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrHeadByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( this, request, options, ), ); } /** * Pull an image manifest * * @remarks * GET /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Fetch a manifest by tag or digest. */ async getByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( request: GetByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest, options?: RequestOptions, ): Promise<void> { return unwrapAsync( vcrGetByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( this, request, options, ), ); } /** * Delete an image manifest * * @remarks * DELETE /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Reference must be a digest. */ async deleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( request: DeleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReferenceRequest, options?: RequestOptions, ): Promise<any> { return unwrapAsync( vcrDeleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReference( this, request, options, ), ); } /** * List image tags * * @remarks * GET /v2/:teamSlug/:projectSlug/:repositoryName/tags/list List the tags in a repository. */ async getByTeamSlugByProjectSlugByRepositoryNameTagsList( request: GetByTeamSlugByProjectSlugByRepositoryNameTagsListRequest, options?: RequestOptions, ): Promise<GetByTeamSlugByProjectSlugByRepositoryNameTagsListResponseBody> { return unwrapAsync(vcrGetByTeamSlugByProjectSlugByRepositoryNameTagsList( this, request, options, )); } }