UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

170 lines (145 loc) 4.28 kB
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import * as Core from "../../../core"; import { APIResource } from "../../../resource"; import * as HostnamesAPI from "./hostnames"; import * as IPFSUniversalPathsAPI from "./ipfs-universal-paths/ipfs-universal-paths"; import { SinglePage } from "../../../pagination"; export class Hostnames extends APIResource { ipfsUniversalPaths: IPFSUniversalPathsAPI.IPFSUniversalPaths = new IPFSUniversalPathsAPI.IPFSUniversalPaths( this._client, ); /** * Create Web3 Hostname */ create( zoneIdentifier: string, body: HostnameCreateParams, options?: Core.RequestOptions, ): Core.APIPromise<Hostname> { return ( this._client.post(`/zones/${zoneIdentifier}/web3/hostnames`, { body, ...options }) as Core.APIPromise<{ result: Hostname; }> )._thenUnwrap((obj) => obj.result); } /** * List Web3 Hostnames */ list( zoneIdentifier: string, options?: Core.RequestOptions, ): Core.PagePromise<HostnamesSinglePage, Hostname> { return this._client.getAPIList(`/zones/${zoneIdentifier}/web3/hostnames`, HostnamesSinglePage, options); } /** * Delete Web3 Hostname */ delete( zoneIdentifier: string, identifier: string, body: HostnameDeleteParams, options?: Core.RequestOptions, ): Core.APIPromise<HostnameDeleteResponse | null> { return ( this._client.delete(`/zones/${zoneIdentifier}/web3/hostnames/${identifier}`, { body, ...options, }) as Core.APIPromise<{ result: HostnameDeleteResponse | null }> )._thenUnwrap((obj) => obj.result); } /** * Edit Web3 Hostname */ edit( zoneIdentifier: string, identifier: string, body: HostnameEditParams, options?: Core.RequestOptions, ): Core.APIPromise<Hostname> { return ( this._client.patch(`/zones/${zoneIdentifier}/web3/hostnames/${identifier}`, { body, ...options, }) as Core.APIPromise<{ result: Hostname }> )._thenUnwrap((obj) => obj.result); } /** * Web3 Hostname Details */ get(zoneIdentifier: string, identifier: string, options?: Core.RequestOptions): Core.APIPromise<Hostname> { return ( this._client.get(`/zones/${zoneIdentifier}/web3/hostnames/${identifier}`, options) as Core.APIPromise<{ result: Hostname; }> )._thenUnwrap((obj) => obj.result); } } export class HostnamesSinglePage extends SinglePage<Hostname> {} export interface Hostname { /** * Identifier */ id?: string; created_on?: string; /** * An optional description of the hostname. */ description?: string; /** * DNSLink value used if the target is ipfs. */ dnslink?: string; modified_on?: string; /** * The hostname that will point to the target gateway via CNAME. */ name?: string; /** * Status of the hostname's activation. */ status?: 'active' | 'pending' | 'deleting' | 'error'; /** * Target gateway of the hostname. */ target?: 'ethereum' | 'ipfs' | 'ipfs_universal_path'; } export interface HostnameDeleteResponse { /** * Identifier */ id: string; } export interface HostnameCreateParams { /** * Target gateway of the hostname. */ target: 'ethereum' | 'ipfs' | 'ipfs_universal_path'; /** * An optional description of the hostname. */ description?: string; /** * DNSLink value used if the target is ipfs. */ dnslink?: string; } export type HostnameDeleteParams = unknown; export interface HostnameEditParams { /** * An optional description of the hostname. */ description?: string; /** * DNSLink value used if the target is ipfs. */ dnslink?: string; } export namespace Hostnames { export import Hostname = HostnamesAPI.Hostname; export import HostnameDeleteResponse = HostnamesAPI.HostnameDeleteResponse; export import HostnamesSinglePage = HostnamesAPI.HostnamesSinglePage; export import HostnameCreateParams = HostnamesAPI.HostnameCreateParams; export import HostnameDeleteParams = HostnamesAPI.HostnameDeleteParams; export import HostnameEditParams = HostnamesAPI.HostnameEditParams; export import IPFSUniversalPaths = IPFSUniversalPathsAPI.IPFSUniversalPaths; }