cloudflare
Version:
The official TypeScript library for the Cloudflare API
251 lines (223 loc) • 6.23 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 ConfigsAPI from "./configs";
import { SinglePage } from "../../pagination";
export class Configs extends APIResource {
/**
* Creates and returns a new Hyperdrive configuration.
*/
create(
params: ConfigCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConfigCreateResponse | null> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/hyperdrive/configs`, {
body,
...options,
}) as Core.APIPromise<{ result: ConfigCreateResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates and returns the specified Hyperdrive configuration.
*/
update(
hyperdriveId: string,
params: ConfigUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConfigUpdateResponse | null> {
const { account_id, ...body } = params;
return (
this._client.put(`/accounts/${account_id}/hyperdrive/configs/${hyperdriveId}`, {
body,
...options,
}) as Core.APIPromise<{ result: ConfigUpdateResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Returns a list of Hyperdrives
*/
list(
params: ConfigListParams,
options?: Core.RequestOptions,
): Core.PagePromise<ConfigListResponsesSinglePage, ConfigListResponse> {
const { account_id } = params;
return this._client.getAPIList(
`/accounts/${account_id}/hyperdrive/configs`,
ConfigListResponsesSinglePage,
options,
);
}
/**
* Deletes the specified Hyperdrive.
*/
delete(
hyperdriveId: string,
params: ConfigDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConfigDeleteResponse | null> {
const { account_id } = params;
return (
this._client.delete(
`/accounts/${account_id}/hyperdrive/configs/${hyperdriveId}`,
options,
) as Core.APIPromise<{ result: ConfigDeleteResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Patches and returns the specified Hyperdrive configuration. Updates to the
* origin and caching settings are applied with an all-or-nothing approach.
*/
edit(
hyperdriveId: string,
params: ConfigEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConfigEditResponse | null> {
const { account_id, ...body } = params;
return (
this._client.patch(`/accounts/${account_id}/hyperdrive/configs/${hyperdriveId}`, {
body,
...options,
}) as Core.APIPromise<{ result: ConfigEditResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Returns the specified Hyperdrive configuration.
*/
get(
hyperdriveId: string,
params: ConfigGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConfigGetResponse | null> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/hyperdrive/configs/${hyperdriveId}`,
options,
) as Core.APIPromise<{ result: ConfigGetResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
}
export class ConfigListResponsesSinglePage extends SinglePage<ConfigListResponse> {}
export interface ConfigCreateResponse {
/**
* Identifier
*/
id?: string;
}
export interface ConfigUpdateResponse {
/**
* Identifier
*/
id?: string;
}
export interface ConfigListResponse {
/**
* Identifier
*/
id?: string;
}
export type ConfigDeleteResponse = unknown | string;
export interface ConfigEditResponse {
/**
* Identifier
*/
id?: string;
}
export interface ConfigGetResponse {
/**
* Identifier
*/
id?: string;
}
export interface ConfigCreateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
origin: ConfigCreateParams.Origin;
}
export namespace ConfigCreateParams {
export interface Origin {
/**
* The password required to access your origin database. This value is write-only
* and never returned by the API.
*/
password: string;
}
}
export interface ConfigUpdateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
origin: ConfigUpdateParams.Origin;
}
export namespace ConfigUpdateParams {
export interface Origin {
/**
* The password required to access your origin database. This value is write-only
* and never returned by the API.
*/
password: string;
}
}
export interface ConfigListParams {
/**
* Identifier
*/
account_id: string;
}
export interface ConfigDeleteParams {
/**
* Identifier
*/
account_id: string;
}
export interface ConfigEditParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
origin?: ConfigEditParams.Origin;
}
export namespace ConfigEditParams {
export interface Origin {
/**
* The password required to access your origin database. This value is write-only
* and never returned by the API.
*/
password: string;
}
}
export interface ConfigGetParams {
/**
* Identifier
*/
account_id: string;
}
export namespace Configs {
export import ConfigCreateResponse = ConfigsAPI.ConfigCreateResponse;
export import ConfigUpdateResponse = ConfigsAPI.ConfigUpdateResponse;
export import ConfigListResponse = ConfigsAPI.ConfigListResponse;
export import ConfigDeleteResponse = ConfigsAPI.ConfigDeleteResponse;
export import ConfigEditResponse = ConfigsAPI.ConfigEditResponse;
export import ConfigGetResponse = ConfigsAPI.ConfigGetResponse;
export import ConfigListResponsesSinglePage = ConfigsAPI.ConfigListResponsesSinglePage;
export import ConfigCreateParams = ConfigsAPI.ConfigCreateParams;
export import ConfigUpdateParams = ConfigsAPI.ConfigUpdateParams;
export import ConfigListParams = ConfigsAPI.ConfigListParams;
export import ConfigDeleteParams = ConfigsAPI.ConfigDeleteParams;
export import ConfigEditParams = ConfigsAPI.ConfigEditParams;
export import ConfigGetParams = ConfigsAPI.ConfigGetParams;
}