cloudflare
Version:
The official TypeScript library for the Cloudflare API
714 lines (597 loc) • 17.2 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 ACLsAPI from "./acls";
export class ACLs extends APIResource {
/**
* Creates a new Site ACL.
*/
create(
siteId: string,
params: ACLCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ACLCreateResponse> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/magic/sites/${siteId}/acls`, {
body,
...options,
}) as Core.APIPromise<{ result: ACLCreateResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Update a specific Site ACL.
*/
update(
siteId: string,
aclIdentifier: string,
params: ACLUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ACLUpdateResponse> {
const { account_id, ...body } = params;
return (
this._client.put(`/accounts/${account_id}/magic/sites/${siteId}/acls/${aclIdentifier}`, {
body,
...options,
}) as Core.APIPromise<{ result: ACLUpdateResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Lists Site ACLs associated with an account.
*/
list(
siteId: string,
params: ACLListParams,
options?: Core.RequestOptions,
): Core.APIPromise<ACLListResponse> {
const { account_id } = params;
return (
this._client.get(`/accounts/${account_id}/magic/sites/${siteId}/acls`, options) as Core.APIPromise<{
result: ACLListResponse;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Remove a specific Site ACL.
*/
delete(
siteId: string,
aclIdentifier: string,
params: ACLDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<ACLDeleteResponse> {
const { account_id } = params;
return (
this._client.delete(
`/accounts/${account_id}/magic/sites/${siteId}/acls/${aclIdentifier}`,
options,
) as Core.APIPromise<{ result: ACLDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get a specific Site ACL.
*/
get(
siteId: string,
aclIdentifier: string,
params: ACLGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<ACLGetResponse> {
const { account_id } = params;
return (
this._client.get(
`/accounts/${account_id}/magic/sites/${siteId}/acls/${aclIdentifier}`,
options,
) as Core.APIPromise<{ result: ACLGetResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export interface ACLCreateResponse {
acls?: Array<ACLCreateResponse.ACL>;
}
export namespace ACLCreateResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
export interface ACL {
/**
* Identifier
*/
id?: string;
/**
* Description for the ACL.
*/
description?: string;
lan_1?: ACL.LAN1;
lan_2?: ACL.LAN2;
/**
* The name of the ACL.
*/
name?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace ACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLUpdateResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
acl?: ACLUpdateResponse.ACL;
}
export namespace ACLUpdateResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
export interface ACL {
/**
* Identifier
*/
id?: string;
/**
* Description for the ACL.
*/
description?: string;
lan_1?: ACL.LAN1;
lan_2?: ACL.LAN2;
/**
* The name of the ACL.
*/
name?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace ACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLListResponse {
acls?: Array<ACLListResponse.ACL>;
}
export namespace ACLListResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
export interface ACL {
/**
* Identifier
*/
id?: string;
/**
* Description for the ACL.
*/
description?: string;
lan_1?: ACL.LAN1;
lan_2?: ACL.LAN2;
/**
* The name of the ACL.
*/
name?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace ACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLDeleteResponse {
deleted?: boolean;
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
deleted_acl?: ACLDeleteResponse.DeletedACL;
}
export namespace ACLDeleteResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
export interface DeletedACL {
/**
* Identifier
*/
id?: string;
/**
* Description for the ACL.
*/
description?: string;
lan_1?: DeletedACL.LAN1;
lan_2?: DeletedACL.LAN2;
/**
* The name of the ACL.
*/
name?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace DeletedACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLGetResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
acl?: ACLGetResponse.ACL;
}
export namespace ACLGetResponse {
/**
* Bidirectional ACL policy for local network traffic within a site.
*/
export interface ACL {
/**
* Identifier
*/
id?: string;
/**
* Description for the ACL.
*/
description?: string;
lan_1?: ACL.LAN1;
lan_2?: ACL.LAN2;
/**
* The name of the ACL.
*/
name?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace ACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLCreateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
acl?: ACLCreateParams.ACL;
}
export namespace ACLCreateParams {
export interface ACL {
lan_1: ACL.LAN1;
lan_2: ACL.LAN2;
/**
* The name of the ACL.
*/
name: string;
/**
* Description for the ACL.
*/
description?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace ACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLUpdateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
acl?: ACLUpdateParams.ACL;
}
export namespace ACLUpdateParams {
export interface ACL {
/**
* Description for the ACL.
*/
description?: string;
lan_1?: ACL.LAN1;
lan_2?: ACL.LAN2;
/**
* The name of the ACL.
*/
name?: string;
protocols?: Array<'tcp' | 'udp' | 'icmp'>;
}
export namespace ACL {
export interface LAN1 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
export interface LAN2 {
/**
* The identifier for the LAN you want to create an ACL policy with.
*/
lan_id: string;
/**
* The name of the LAN based on the provided lan_id.
*/
lan_name?: string;
/**
* Array of ports on the provided LAN that will be included in the ACL. If no ports
* are provided, communication on any port on this LAN is allowed.
*/
ports?: Array<number>;
/**
* Array of subnet IPs within the LAN that will be included in the ACL. If no
* subnets are provided, communication on any subnets on this LAN are allowed.
*/
subnets?: Array<string | string>;
}
}
}
export interface ACLListParams {
/**
* Identifier
*/
account_id: string;
}
export interface ACLDeleteParams {
/**
* Identifier
*/
account_id: string;
}
export interface ACLGetParams {
/**
* Identifier
*/
account_id: string;
}
export namespace ACLs {
export import ACLCreateResponse = ACLsAPI.ACLCreateResponse;
export import ACLUpdateResponse = ACLsAPI.ACLUpdateResponse;
export import ACLListResponse = ACLsAPI.ACLListResponse;
export import ACLDeleteResponse = ACLsAPI.ACLDeleteResponse;
export import ACLGetResponse = ACLsAPI.ACLGetResponse;
export import ACLCreateParams = ACLsAPI.ACLCreateParams;
export import ACLUpdateParams = ACLsAPI.ACLUpdateParams;
export import ACLListParams = ACLsAPI.ACLListParams;
export import ACLDeleteParams = ACLsAPI.ACLDeleteParams;
export import ACLGetParams = ACLsAPI.ACLGetParams;
}