cloudflare
Version:
The official TypeScript library for the Cloudflare API
157 lines (135 loc) • 3.85 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import * as Core from "../../core";
import { APIResource } from "../../resource";
import * as BucketsAPI from "./buckets";
import { CursorPagination, type CursorPaginationParams } from "../../pagination";
export class Buckets extends APIResource {
/**
* Creates a new R2 bucket.
*/
create(params: BucketCreateParams, options?: Core.RequestOptions): Core.APIPromise<Bucket> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/r2/buckets`, { body, ...options }) as Core.APIPromise<{
result: Bucket;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Lists all R2 buckets on your account
*/
list(
params: BucketListParams,
options?: Core.RequestOptions,
): Core.PagePromise<BucketsCursorPagination, Bucket> {
const { account_id, ...query } = params;
return this._client.getAPIList(`/accounts/${account_id}/r2/buckets`, BucketsCursorPagination, {
query,
...options,
});
}
/**
* Deletes an existing R2 bucket.
*/
delete(
bucketName: string,
params: BucketDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<BucketDeleteResponse> {
const { account_id } = params;
return (
this._client.delete(`/accounts/${account_id}/r2/buckets/${bucketName}`, options) as Core.APIPromise<{
result: BucketDeleteResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Gets metadata for an existing R2 bucket.
*/
get(bucketName: string, params: BucketGetParams, options?: Core.RequestOptions): Core.APIPromise<Bucket> {
const { account_id } = params;
return (
this._client.get(`/accounts/${account_id}/r2/buckets/${bucketName}`, options) as Core.APIPromise<{
result: Bucket;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export class BucketsCursorPagination extends CursorPagination<Bucket> {}
/**
* A single R2 bucket
*/
export interface Bucket {
/**
* Creation timestamp
*/
creation_date?: string;
/**
* Location of the bucket
*/
location?: 'apac' | 'eeur' | 'enam' | 'weur' | 'wnam';
/**
* Name of the bucket
*/
name?: string;
}
export type BucketDeleteResponse = unknown;
export interface BucketCreateParams {
/**
* Path param: Account ID
*/
account_id: string;
/**
* Body param: Name of the bucket
*/
name: string;
/**
* Body param: Location of the bucket
*/
locationHint?: 'apac' | 'eeur' | 'enam' | 'weur' | 'wnam';
}
export interface BucketListParams extends CursorPaginationParams {
/**
* Path param: Account ID
*/
account_id: string;
/**
* Query param: Direction to order buckets
*/
direction?: 'asc' | 'desc';
/**
* Query param: Bucket names to filter by. Only buckets with this phrase in their
* name will be returned.
*/
name_contains?: string;
/**
* Query param: Field to order buckets by
*/
order?: 'name';
/**
* Query param: Bucket name to start searching after. Buckets are ordered
* lexicographically.
*/
start_after?: string;
}
export interface BucketDeleteParams {
/**
* Account ID
*/
account_id: string;
}
export interface BucketGetParams {
/**
* Account ID
*/
account_id: string;
}
export namespace Buckets {
export import Bucket = BucketsAPI.Bucket;
export import BucketDeleteResponse = BucketsAPI.BucketDeleteResponse;
export import BucketsCursorPagination = BucketsAPI.BucketsCursorPagination;
export import BucketCreateParams = BucketsAPI.BucketCreateParams;
export import BucketListParams = BucketsAPI.BucketListParams;
export import BucketDeleteParams = BucketsAPI.BucketDeleteParams;
export import BucketGetParams = BucketsAPI.BucketGetParams;
}