cloudflare
Version:
The official TypeScript library for the Cloudflare API
185 lines (158 loc) • 5.18 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 ProxyEndpointsAPI from "./proxy-endpoints";
import { SinglePage } from "../../../pagination";
export class ProxyEndpoints extends APIResource {
/**
* Creates a new Zero Trust Gateway proxy endpoint.
*/
create(
params: ProxyEndpointCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ZeroTrustGatewayProxyEndpoints> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/gateway/proxy_endpoints`, {
body,
...options,
}) as Core.APIPromise<{ result: ZeroTrustGatewayProxyEndpoints }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches a single Zero Trust Gateway proxy endpoint.
*/
list(
params: ProxyEndpointListParams,
options?: Core.RequestOptions,
): Core.PagePromise<ZeroTrustGatewayProxyEndpointsSinglePage, ZeroTrustGatewayProxyEndpoints> {
const { account_id } = params;
return this._client.getAPIList(
`/accounts/${account_id}/gateway/proxy_endpoints`,
ZeroTrustGatewayProxyEndpointsSinglePage,
options,
);
}
/**
* Deletes a configured Zero Trust Gateway proxy endpoint.
*/
delete(
proxyEndpointId: string,
params: ProxyEndpointDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<ProxyEndpointDeleteResponse> {
const { account_id } = params;
return (
this._client.delete(
`/accounts/${account_id}/gateway/proxy_endpoints/${proxyEndpointId}`,
options,
) as Core.APIPromise<{ result: ProxyEndpointDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates a configured Zero Trust Gateway proxy endpoint.
*/
edit(
proxyEndpointId: string,
params: ProxyEndpointEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<ZeroTrustGatewayProxyEndpoints> {
const { account_id, ...body } = params;
return (
this._client.patch(`/accounts/${account_id}/gateway/proxy_endpoints/${proxyEndpointId}`, {
body,
...options,
}) as Core.APIPromise<{ result: ZeroTrustGatewayProxyEndpoints }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches all Zero Trust Gateway proxy endpoints for an account.
*/
get(
proxyEndpointId: string,
params: ProxyEndpointGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<ZeroTrustGatewayProxyEndpoints> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/gateway/proxy_endpoints/${proxyEndpointId}`,
options,
) as Core.APIPromise<{ result: ZeroTrustGatewayProxyEndpoints }>
)._thenUnwrap((obj) => obj.result);
}
}
export class ZeroTrustGatewayProxyEndpointsSinglePage extends SinglePage<ZeroTrustGatewayProxyEndpoints> {}
export interface ZeroTrustGatewayProxyEndpoints {
id?: string;
created_at?: string;
/**
* A list of CIDRs to restrict ingress connections.
*/
ips?: Array<string>;
/**
* The name of the proxy endpoint.
*/
name?: string;
/**
* The subdomain to be used as the destination in the proxy client.
*/
subdomain?: string;
updated_at?: string;
}
export type ProxyEndpointDeleteResponse = unknown | string;
export interface ProxyEndpointCreateParams {
/**
* Path param:
*/
account_id: string;
/**
* Body param: A list of CIDRs to restrict ingress connections.
*/
ips: Array<string>;
/**
* Body param: The name of the proxy endpoint.
*/
name: string;
/**
* Body param: The subdomain to be used as the destination in the proxy client.
*/
subdomain?: string;
}
export interface ProxyEndpointListParams {
account_id: string;
}
export interface ProxyEndpointDeleteParams {
account_id: string;
}
export interface ProxyEndpointEditParams {
/**
* Path param:
*/
account_id: string;
/**
* Body param: A list of CIDRs to restrict ingress connections.
*/
ips?: Array<string>;
/**
* Body param: The name of the proxy endpoint.
*/
name?: string;
/**
* Body param: The subdomain to be used as the destination in the proxy client.
*/
subdomain?: string;
}
export interface ProxyEndpointGetParams {
account_id: string;
}
export namespace ProxyEndpoints {
export import ZeroTrustGatewayProxyEndpoints = ProxyEndpointsAPI.ZeroTrustGatewayProxyEndpoints;
export import ProxyEndpointDeleteResponse = ProxyEndpointsAPI.ProxyEndpointDeleteResponse;
export import ZeroTrustGatewayProxyEndpointsSinglePage = ProxyEndpointsAPI.ZeroTrustGatewayProxyEndpointsSinglePage;
export import ProxyEndpointCreateParams = ProxyEndpointsAPI.ProxyEndpointCreateParams;
export import ProxyEndpointListParams = ProxyEndpointsAPI.ProxyEndpointListParams;
export import ProxyEndpointDeleteParams = ProxyEndpointsAPI.ProxyEndpointDeleteParams;
export import ProxyEndpointEditParams = ProxyEndpointsAPI.ProxyEndpointEditParams;
export import ProxyEndpointGetParams = ProxyEndpointsAPI.ProxyEndpointGetParams;
}