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