cloudflare
Version:
The official TypeScript library for the Cloudflare API
165 lines (148 loc) • 4.5 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../../core/resource';
import { APIPromise } from '../../../../core/api-promise';
import { buildHeaders } from '../../../../internal/headers';
import { RequestOptions } from '../../../../internal/request-options';
import { path } from '../../../../internal/utils/path';
export class BaseManaged extends APIResource {
static override readonly _key: readonly ['r2', 'buckets', 'domains', 'managed'] = Object.freeze([
'r2',
'buckets',
'domains',
'managed',
] as const);
/**
* Enables or disables public access to the R2 bucket through its managed r2.dev
* domain. Custom domain access is unaffected. The r2.dev domain is rate-limited
* and intended for development use.
*
* @example
* ```ts
* const managed =
* await client.r2.buckets.domains.managed.update(
* 'example-bucket',
* {
* account_id: '023e105f4ecef8ad9ca31a8372d0c353',
* enabled: true,
* },
* );
* ```
*/
update(
bucketName: string,
params: ManagedUpdateParams,
options?: RequestOptions,
): APIPromise<ManagedUpdateResponse> {
const { account_id, 'cf-r2-jurisdiction': cfR2Jurisdiction, ...body } = params;
return (
this._client.put(path`/accounts/${account_id}/r2/buckets/${bucketName}/domains/managed`, {
body,
...options,
headers: buildHeaders([
{
...(cfR2Jurisdiction?.toString() != null ?
{ 'cf-r2-jurisdiction': cfR2Jurisdiction?.toString() }
: undefined),
},
options?.headers,
]),
}) as APIPromise<{ result: ManagedUpdateResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Gets the R2 bucket's managed r2.dev domain and whether public access is enabled.
* The r2.dev domain is rate-limited and intended for development use.
*
* @example
* ```ts
* const manageds =
* await client.r2.buckets.domains.managed.list(
* 'example-bucket',
* { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
* );
* ```
*/
list(
bucketName: string,
params: ManagedListParams,
options?: RequestOptions,
): APIPromise<ManagedListResponse> {
const { account_id, 'cf-r2-jurisdiction': cfR2Jurisdiction } = params;
return (
this._client.get(path`/accounts/${account_id}/r2/buckets/${bucketName}/domains/managed`, {
...options,
headers: buildHeaders([
{
...(cfR2Jurisdiction?.toString() != null ?
{ 'cf-r2-jurisdiction': cfR2Jurisdiction?.toString() }
: undefined),
},
options?.headers,
]),
}) as APIPromise<{ result: ManagedListResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export class Managed extends BaseManaged {}
export interface ManagedUpdateResponse {
/**
* Bucket ID.
*/
bucketId: string;
/**
* Domain name of the bucket's r2.dev domain.
*/
domain: string;
/**
* Whether this bucket is publicly accessible at the r2.dev domain.
*/
enabled: boolean;
}
export interface ManagedListResponse {
/**
* Bucket ID.
*/
bucketId: string;
/**
* Domain name of the bucket's r2.dev domain.
*/
domain: string;
/**
* Whether this bucket is publicly accessible at the r2.dev domain.
*/
enabled: boolean;
}
export interface ManagedUpdateParams {
/**
* Path param: Cloudflare account ID that owns the R2 resource.
*/
account_id: string;
/**
* Body param: Whether to enable public bucket access at the r2.dev domain.
*/
enabled: boolean;
/**
* Header param: Jurisdiction where objects in this bucket are guaranteed to be
* stored.
*/
'cf-r2-jurisdiction'?: 'default' | 'eu' | 'us' | 'fedramp' | 'fedramp-high';
}
export interface ManagedListParams {
/**
* Path param: Cloudflare account ID that owns the R2 resource.
*/
account_id: string;
/**
* Header param: Jurisdiction where objects in this bucket are guaranteed to be
* stored.
*/
'cf-r2-jurisdiction'?: 'default' | 'eu' | 'us' | 'fedramp' | 'fedramp-high';
}
export declare namespace Managed {
export {
type ManagedUpdateResponse as ManagedUpdateResponse,
type ManagedListResponse as ManagedListResponse,
type ManagedUpdateParams as ManagedUpdateParams,
type ManagedListParams as ManagedListParams,
};
}