// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import * as Core from 'cloudflare/core'; import { APIResource } from 'cloudflare/resource'; import * as ConfigsAPI from 'cloudflare/resources/hyperdrive/configs'; import { SinglePage } from 'cloudflare/pagination'; export class Configs extends APIResource { /** * Creates and returns a new Hyperdrive configuration. */ create( params: ConfigCreateParams, options?: Core.RequestOptions, ): Core.APIPromise { 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 { 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 { 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 { 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 { 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 { 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 {} 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; }