UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

257 lines (221 loc) 5.26 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 WANsAPI from "./wans"; import { SinglePage } from "../../../pagination"; export class WANs extends APIResource { /** * Creates a new WAN. */ create( siteId: string, params: WANCreateParams, options?: Core.RequestOptions, ): Core.APIPromise<WANCreateResponse> { const { account_id, ...body } = params; return ( this._client.post(`/accounts/${account_id}/magic/sites/${siteId}/wans`, { body, ...options, }) as Core.APIPromise<{ result: WANCreateResponse }> )._thenUnwrap((obj) => obj.result); } /** * Update a specific WAN. */ update( siteId: string, wanId: string, params: WANUpdateParams, options?: Core.RequestOptions, ): Core.APIPromise<WAN> { const { account_id, ...body } = params; return ( this._client.put(`/accounts/${account_id}/magic/sites/${siteId}/wans/${wanId}`, { body, ...options, }) as Core.APIPromise<{ result: WAN }> )._thenUnwrap((obj) => obj.result); } /** * Lists WANs associated with an account and site. */ list( siteId: string, params: WANListParams, options?: Core.RequestOptions, ): Core.PagePromise<WANsSinglePage, WAN> { const { account_id } = params; return this._client.getAPIList( `/accounts/${account_id}/magic/sites/${siteId}/wans`, WANsSinglePage, options, ); } /** * Remove a specific WAN. */ delete( siteId: string, wanId: string, params: WANDeleteParams, options?: Core.RequestOptions, ): Core.APIPromise<WAN> { const { account_id, body } = params; return ( this._client.delete(`/accounts/${account_id}/magic/sites/${siteId}/wans/${wanId}`, { body: body, ...options, }) as Core.APIPromise<{ result: WAN }> )._thenUnwrap((obj) => obj.result); } /** * Get a specific WAN. */ get( siteId: string, wanId: string, params: WANGetParams, options?: Core.RequestOptions, ): Core.APIPromise<WAN> { const { account_id } = params; return ( this._client.get( `/accounts/${account_id}/magic/sites/${siteId}/wans/${wanId}`, options, ) as Core.APIPromise<{ result: WAN }> )._thenUnwrap((obj) => obj.result); } } export class WANsSinglePage extends SinglePage<WAN> {} export interface WAN { /** * Identifier */ id?: string; name?: string; physport?: number; /** * Priority of WAN for traffic loadbalancing. */ priority?: number; /** * Identifier */ site_id?: string; /** * (optional) if omitted, use DHCP. Submit secondary_address when site is in high * availability mode. */ static_addressing?: WANStaticAddressing; /** * VLAN port number. */ vlan_tag?: number; } /** * (optional) if omitted, use DHCP. Submit secondary_address when site is in high * availability mode. */ export interface WANStaticAddressing { /** * A valid CIDR notation representing an IP range. */ address: string; /** * A valid IPv4 address. */ gateway_address: string; /** * A valid CIDR notation representing an IP range. */ secondary_address?: string; } export type WANCreateResponse = Array<WAN>; export interface WANCreateParams { /** * Path param: Identifier */ account_id: string; /** * Body param: */ physport: number; /** * Body param: VLAN port number. */ vlan_tag: number; /** * Body param: */ name?: string; /** * Body param: */ priority?: number; /** * Body param: (optional) if omitted, use DHCP. Submit secondary_address when site * is in high availability mode. */ static_addressing?: WANStaticAddressing; } export interface WANUpdateParams { /** * Path param: Identifier */ account_id: string; /** * Body param: */ name?: string; /** * Body param: */ physport?: number; /** * Body param: */ priority?: number; /** * Body param: (optional) if omitted, use DHCP. Submit secondary_address when site * is in high availability mode. */ static_addressing?: WANStaticAddressing; /** * Body param: VLAN port number. */ vlan_tag?: number; } export interface WANListParams { /** * Identifier */ account_id: string; } export interface WANDeleteParams { /** * Path param: Identifier */ account_id: string; /** * Body param: */ body: unknown; } export interface WANGetParams { /** * Identifier */ account_id: string; } export namespace WANs { export import WAN = WANsAPI.WAN; export import WANStaticAddressing = WANsAPI.WANStaticAddressing; export import WANCreateResponse = WANsAPI.WANCreateResponse; export import WANsSinglePage = WANsAPI.WANsSinglePage; export import WANCreateParams = WANsAPI.WANCreateParams; export import WANUpdateParams = WANsAPI.WANUpdateParams; export import WANListParams = WANsAPI.WANListParams; export import WANDeleteParams = WANsAPI.WANDeleteParams; export import WANGetParams = WANsAPI.WANGetParams; }