cloudflare
Version:
The official TypeScript library for the Cloudflare API
306 lines (260 loc) • 7.99 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 RoutesAPI from "./routes";
import * as IPsAPI from "./ips";
import * as NetworksAPI from "./networks";
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../../../pagination";
export class Routes extends APIResource {
ips: IPsAPI.IPs = new IPsAPI.IPs(this._client);
networks: NetworksAPI.Networks = new NetworksAPI.Networks(this._client);
/**
* Routes a private network through a Cloudflare Tunnel.
*/
create(params: RouteCreateParams, options?: Core.RequestOptions): Core.APIPromise<TunnelRoute> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/teamnet/routes`, { body, ...options }) as Core.APIPromise<{
result: TunnelRoute;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Lists and filters private network routes in an account.
*/
list(
params: RouteListParams,
options?: Core.RequestOptions,
): Core.PagePromise<TunnelTeamnetsV4PagePaginationArray, TunnelTeamnet> {
const { account_id, ...query } = params;
return this._client.getAPIList(
`/accounts/${account_id}/teamnet/routes`,
TunnelTeamnetsV4PagePaginationArray,
{ query, ...options },
);
}
/**
* Deletes a private network route from an account.
*/
delete(
routeId: string,
params: RouteDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<TunnelRoute> {
const { account_id } = params;
return (
this._client.delete(`/accounts/${account_id}/teamnet/routes/${routeId}`, options) as Core.APIPromise<{
result: TunnelRoute;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates an existing private network route in an account. The fields that are
* meant to be updated should be provided in the body of the request.
*/
edit(
routeId: string,
params: RouteEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<TunnelRoute> {
const { account_id, ...body } = params;
return (
this._client.patch(`/accounts/${account_id}/teamnet/routes/${routeId}`, {
body,
...options,
}) as Core.APIPromise<{ result: TunnelRoute }>
)._thenUnwrap((obj) => obj.result);
}
}
export class TunnelTeamnetsV4PagePaginationArray extends V4PagePaginationArray<TunnelTeamnet> {}
export interface TunnelRoute {
/**
* UUID of the route.
*/
id?: string;
/**
* Optional remark describing the route.
*/
comment?: string;
/**
* Timestamp of when the route was created.
*/
created_at?: unknown;
/**
* Timestamp of when the route was deleted. If `null`, the route has not been
* deleted.
*/
deleted_at?: string | null;
/**
* The private IPv4 or IPv6 range connected by the route, in CIDR notation.
*/
network?: string;
/**
* UUID of the Cloudflare Tunnel serving the route.
*/
tunnel_id?: unknown;
/**
* UUID of the Tunnel Virtual Network this route belongs to. If no virtual networks
* are configured, the route is assigned to the default virtual network of the
* account.
*/
virtual_network_id?: unknown;
}
export interface TunnelTeamnet {
/**
* UUID of the route.
*/
id?: string;
/**
* Optional remark describing the route.
*/
comment?: string;
/**
* Timestamp of when the route was created.
*/
created_at?: unknown;
/**
* Timestamp of when the route was deleted. If `null`, the route has not been
* deleted.
*/
deleted_at?: string | null;
/**
* The private IPv4 or IPv6 range connected by the route, in CIDR notation.
*/
network?: string;
/**
* The type of tunnel.
*/
tun_type?: 'cfd_tunnel' | 'warp_connector' | 'ip_sec' | 'gre' | 'cni';
/**
* UUID of the Cloudflare Tunnel serving the route.
*/
tunnel_id?: unknown;
/**
* The user-friendly name of the Cloudflare Tunnel serving the route.
*/
tunnel_name?: unknown;
/**
* UUID of the Tunnel Virtual Network this route belongs to. If no virtual networks
* are configured, the route is assigned to the default virtual network of the
* account.
*/
virtual_network_id?: unknown;
/**
* A user-friendly name for the virtual network.
*/
virtual_network_name?: string;
}
export interface RouteCreateParams {
/**
* Path param: Cloudflare account ID
*/
account_id: string;
/**
* Body param: The private IPv4 or IPv6 range connected by the route, in CIDR
* notation.
*/
ip_network: string;
/**
* Body param: Optional remark describing the route.
*/
comment?: string;
/**
* Body param: UUID of the Tunnel Virtual Network this route belongs to. If no
* virtual networks are configured, the route is assigned to the default virtual
* network of the account.
*/
virtual_network_id?: unknown;
}
export interface RouteListParams extends V4PagePaginationArrayParams {
/**
* Path param: Cloudflare account ID
*/
account_id: string;
/**
* Query param: Optional remark describing the route.
*/
comment?: string;
/**
* Query param: If provided, include only routes that were created (and not
* deleted) before this time.
*/
existed_at?: unknown;
/**
* Query param: If `true`, only include deleted routes. If `false`, exclude deleted
* routes. If empty, all routes will be included.
*/
is_deleted?: unknown;
/**
* Query param: If set, only list routes that are contained within this IP range.
*/
network_subset?: unknown;
/**
* Query param: If set, only list routes that contain this IP range.
*/
network_superset?: unknown;
/**
* Query param: The types of tunnels to filter separated by a comma.
*/
tun_types?: string;
/**
* Query param: UUID of the Cloudflare Tunnel serving the route.
*/
tunnel_id?: unknown;
/**
* Query param: UUID of the Tunnel Virtual Network this route belongs to. If no
* virtual networks are configured, the route is assigned to the default virtual
* network of the account.
*/
virtual_network_id?: unknown;
}
export interface RouteDeleteParams {
/**
* Cloudflare account ID
*/
account_id: string;
}
export interface RouteEditParams {
/**
* Path param: Cloudflare account ID
*/
account_id: string;
/**
* Body param: Optional remark describing the route.
*/
comment?: string;
/**
* Body param: The private IPv4 or IPv6 range connected by the route, in CIDR
* notation.
*/
network?: string;
/**
* Body param: The type of tunnel.
*/
tun_type?: 'cfd_tunnel' | 'warp_connector' | 'ip_sec' | 'gre' | 'cni';
/**
* Body param: UUID of the Cloudflare Tunnel serving the route.
*/
tunnel_id?: unknown;
/**
* Body param: UUID of the Tunnel Virtual Network this route belongs to. If no
* virtual networks are configured, the route is assigned to the default virtual
* network of the account.
*/
virtual_network_id?: unknown;
}
export namespace Routes {
export import TunnelRoute = RoutesAPI.TunnelRoute;
export import TunnelTeamnet = RoutesAPI.TunnelTeamnet;
export import TunnelTeamnetsV4PagePaginationArray = RoutesAPI.TunnelTeamnetsV4PagePaginationArray;
export import RouteCreateParams = RoutesAPI.RouteCreateParams;
export import RouteListParams = RoutesAPI.RouteListParams;
export import RouteDeleteParams = RoutesAPI.RouteDeleteParams;
export import RouteEditParams = RoutesAPI.RouteEditParams;
export import IPs = IPsAPI.IPs;
export import IPGetParams = IPsAPI.IPGetParams;
export import Networks = NetworksAPI.Networks;
export import NetworkCreateParams = NetworksAPI.NetworkCreateParams;
export import NetworkDeleteParams = NetworksAPI.NetworkDeleteParams;
export import NetworkEditParams = NetworksAPI.NetworkEditParams;
}