cloudflare
Version:
The official TypeScript library for the Cloudflare API
262 lines (229 loc) • 7.34 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 { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';
export class BaseMaintenanceConfigs extends APIResource {
static override readonly _key: readonly ['r2DataCatalog', 'maintenanceConfigs'] = Object.freeze([
'r2DataCatalog',
'maintenanceConfigs',
] as const);
/**
* Update the maintenance configuration for a catalog. This allows you to enable or
* disable compaction and adjust target file sizes for optimization.
*
* @deprecated Use `POST /accounts/{account_id}/basin-catalog/{bucket_name}/maintenance-configs` instead.
*/
update(
bucketName: string,
params: MaintenanceConfigUpdateParams,
options?: RequestOptions,
): APIPromise<MaintenanceConfigUpdateResponse> {
const { account_id, ...body } = params;
return (
this._client.post(path`/accounts/${account_id}/r2-catalog/${bucketName}/maintenance-configs`, {
body,
...options,
}) as APIPromise<{ result: MaintenanceConfigUpdateResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Retrieve the maintenance configuration for a specific catalog, including
* compaction settings and credential status.
*
* @deprecated Use `GET /accounts/{account_id}/basin-catalog/{bucket_name}/maintenance-configs` instead.
*/
get(
bucketName: string,
params: MaintenanceConfigGetParams,
options?: RequestOptions,
): APIPromise<MaintenanceConfigGetResponse> {
const { account_id } = params;
return (
this._client.get(
path`/accounts/${account_id}/r2-catalog/${bucketName}/maintenance-configs`,
options,
) as APIPromise<{ result: MaintenanceConfigGetResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export class MaintenanceConfigs extends BaseMaintenanceConfigs {}
/**
* Configures maintenance for the catalog.
*/
export interface MaintenanceConfigUpdateResponse {
/**
* Configures compaction for catalog maintenance.
*/
compaction?: MaintenanceConfigUpdateResponse.Compaction;
/**
* Scheduling interval between normal table maintenance runs.
*/
interval?: string;
/**
* Configures snapshot expiration settings.
*/
snapshot_expiration?: MaintenanceConfigUpdateResponse.SnapshotExpiration;
}
export namespace MaintenanceConfigUpdateResponse {
/**
* Configures compaction for catalog maintenance.
*/
export interface Compaction {
/**
* Specifies the state of maintenance operations.
*/
state: 'enabled' | 'disabled';
/**
* Sets the target file size for compaction in megabytes. Defaults to "128".
*/
target_size_mb: '64' | '128' | '256' | '512';
}
/**
* Configures snapshot expiration settings.
*/
export interface SnapshotExpiration {
/**
* Specifies the maximum age for snapshots. The system deletes snapshots older than
* this age. Format: <number><unit> where unit is d (days), h (hours), m (minutes),
* or s (seconds). Examples: "7d" (7 days), "48h" (48 hours), "2880m" (2,880
* minutes). Defaults to "7d".
*/
max_snapshot_age: string;
/**
* Specifies the minimum number of snapshots to retain. Defaults to 100.
*/
min_snapshots_to_keep: number;
/**
* Specifies the state of maintenance operations.
*/
state: 'enabled' | 'disabled';
}
}
/**
* Contains maintenance configuration and credential status.
*/
export interface MaintenanceConfigGetResponse {
/**
* Shows the credential configuration status.
*/
credential_status: 'present' | 'absent';
/**
* Configures maintenance for the catalog.
*/
maintenance_config: MaintenanceConfigGetResponse.MaintenanceConfig;
}
export namespace MaintenanceConfigGetResponse {
/**
* Configures maintenance for the catalog.
*/
export interface MaintenanceConfig {
/**
* Configures compaction for catalog maintenance.
*/
compaction?: MaintenanceConfig.Compaction;
/**
* Scheduling interval between normal table maintenance runs.
*/
interval?: string;
/**
* Configures snapshot expiration settings.
*/
snapshot_expiration?: MaintenanceConfig.SnapshotExpiration;
}
export namespace MaintenanceConfig {
/**
* Configures compaction for catalog maintenance.
*/
export interface Compaction {
/**
* Specifies the state of maintenance operations.
*/
state: 'enabled' | 'disabled';
/**
* Sets the target file size for compaction in megabytes. Defaults to "128".
*/
target_size_mb: '64' | '128' | '256' | '512';
}
/**
* Configures snapshot expiration settings.
*/
export interface SnapshotExpiration {
/**
* Specifies the maximum age for snapshots. The system deletes snapshots older than
* this age. Format: <number><unit> where unit is d (days), h (hours), m (minutes),
* or s (seconds). Examples: "7d" (7 days), "48h" (48 hours), "2880m" (2,880
* minutes). Defaults to "7d".
*/
max_snapshot_age: string;
/**
* Specifies the minimum number of snapshots to retain. Defaults to 100.
*/
min_snapshots_to_keep: number;
/**
* Specifies the state of maintenance operations.
*/
state: 'enabled' | 'disabled';
}
}
}
export interface MaintenanceConfigUpdateParams {
/**
* Path param: Identifies the account.
*/
account_id: string;
/**
* Body param: Updates compaction configuration (all fields optional).
*/
compaction?: MaintenanceConfigUpdateParams.Compaction;
/**
* Body param: Updates snapshot expiration configuration (all fields optional).
*/
snapshot_expiration?: MaintenanceConfigUpdateParams.SnapshotExpiration;
}
export namespace MaintenanceConfigUpdateParams {
/**
* Updates compaction configuration (all fields optional).
*/
export interface Compaction {
/**
* Specifies the state of maintenance operations.
*/
state?: 'enabled' | 'disabled';
/**
* Sets the target file size for compaction in megabytes. Defaults to "128".
*/
target_size_mb?: '64' | '128' | '256' | '512';
}
/**
* Updates snapshot expiration configuration (all fields optional).
*/
export interface SnapshotExpiration {
/**
* Updates the maximum age for snapshots optionally.
*/
max_snapshot_age?: string;
/**
* Updates the minimum number of snapshots to retain optionally.
*/
min_snapshots_to_keep?: number;
/**
* Specifies the state of maintenance operations.
*/
state?: 'enabled' | 'disabled';
}
}
export interface MaintenanceConfigGetParams {
/**
* Identifies the account.
*/
account_id: string;
}
export declare namespace MaintenanceConfigs {
export {
type MaintenanceConfigUpdateResponse as MaintenanceConfigUpdateResponse,
type MaintenanceConfigGetResponse as MaintenanceConfigGetResponse,
type MaintenanceConfigUpdateParams as MaintenanceConfigUpdateParams,
type MaintenanceConfigGetParams as MaintenanceConfigGetParams,
};
}