cloudflare
Version:
The official TypeScript library for the Cloudflare API
495 lines (418 loc) • 14.3 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 PoliciesAPI from "./policies";
import * as DefaultPolicyAPI from "./default-policy";
import * as ExcludesAPI from "./excludes";
import * as FallbackDomainsAPI from "./fallback-domains";
import * as IncludesAPI from "./includes";
import { SinglePage } from "../../../../pagination";
export class Policies extends APIResource {
defaultPolicy: DefaultPolicyAPI.DefaultPolicy = new DefaultPolicyAPI.DefaultPolicy(this._client);
excludes: ExcludesAPI.Excludes = new ExcludesAPI.Excludes(this._client);
fallbackDomains: FallbackDomainsAPI.FallbackDomains = new FallbackDomainsAPI.FallbackDomains(this._client);
includes: IncludesAPI.Includes = new IncludesAPI.Includes(this._client);
/**
* Creates a device settings profile to be applied to certain devices matching the
* criteria.
*/
create(
params: PolicyCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<DevicesDeviceSettingsPolicy | null> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/devices/policy`, { body, ...options }) as Core.APIPromise<{
result: DevicesDeviceSettingsPolicy | null;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches a list of the device settings profiles for an account.
*/
list(
params: PolicyListParams,
options?: Core.RequestOptions,
): Core.PagePromise<DevicesDeviceSettingsPoliciesSinglePage, DevicesDeviceSettingsPolicy> {
const { account_id } = params;
return this._client.getAPIList(
`/accounts/${account_id}/devices/policies`,
DevicesDeviceSettingsPoliciesSinglePage,
options,
);
}
/**
* Deletes a device settings profile and fetches a list of the remaining profiles
* for an account.
*/
delete(
policyId: string,
params: PolicyDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<PolicyDeleteResponse | null> {
const { account_id } = params;
return (
this._client.delete(`/accounts/${account_id}/devices/policy/${policyId}`, options) as Core.APIPromise<{
result: PolicyDeleteResponse | null;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates a configured device settings profile.
*/
edit(
policyId: string,
params: PolicyEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<DevicesDeviceSettingsPolicy | null> {
const { account_id, ...body } = params;
return (
this._client.patch(`/accounts/${account_id}/devices/policy/${policyId}`, {
body,
...options,
}) as Core.APIPromise<{ result: DevicesDeviceSettingsPolicy | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches a device settings profile by ID.
*/
get(
policyId: string,
params: PolicyGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<DevicesDeviceSettingsPolicy | null> {
const { account_id } = params;
return (
this._client.get(`/accounts/${account_id}/devices/policy/${policyId}`, options) as Core.APIPromise<{
result: DevicesDeviceSettingsPolicy | null;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export class DevicesDeviceSettingsPoliciesSinglePage extends SinglePage<DevicesDeviceSettingsPolicy> {}
export interface DevicesDeviceSettingsPolicy {
/**
* Whether to allow the user to switch WARP between modes.
*/
allow_mode_switch?: boolean;
/**
* Whether to receive update notifications when a new version of the client is
* available.
*/
allow_updates?: boolean;
/**
* Whether to allow devices to leave the organization.
*/
allowed_to_leave?: boolean;
/**
* The amount of time in minutes to reconnect after having been disabled.
*/
auto_connect?: number;
/**
* Turn on the captive portal after the specified amount of time.
*/
captive_portal?: number;
/**
* Whether the policy is the default policy for an account.
*/
default?: boolean;
/**
* A description of the policy.
*/
description?: string;
/**
* If the `dns_server` field of a fallback domain is not present, the client will
* fall back to a best guess of the default/system DNS resolvers unless this policy
* option is set to `true`.
*/
disable_auto_fallback?: boolean;
/**
* Whether the policy will be applied to matching devices.
*/
enabled?: boolean;
exclude?: Array<ExcludesAPI.DevicesSplitTunnel>;
/**
* Whether to add Microsoft IPs to Split Tunnel exclusions.
*/
exclude_office_ips?: boolean;
fallback_domains?: Array<FallbackDomainsAPI.DevicesFallbackDomain>;
gateway_unique_id?: string;
include?: Array<IncludesAPI.DevicesSplitTunnelInclude>;
/**
* The amount of time in minutes a user is allowed access to their LAN. A value of
* 0 will allow LAN access until the next WARP reconnection, such as a reboot or a
* laptop waking from sleep. Note that this field is omitted from the response if
* null or unset.
*/
lan_allow_minutes?: number;
/**
* The size of the subnet for the local access network. Note that this field is
* omitted from the response if null or unset.
*/
lan_allow_subnet_size?: number;
/**
* The wirefilter expression to match devices.
*/
match?: string;
/**
* The name of the device settings profile.
*/
name?: string;
/**
* Device ID.
*/
policy_id?: string;
/**
* The precedence of the policy. Lower values indicate higher precedence. Policies
* will be evaluated in ascending order of this field.
*/
precedence?: number;
service_mode_v2?: DevicesDeviceSettingsPolicy.ServiceModeV2;
/**
* The URL to launch when the Send Feedback button is clicked.
*/
support_url?: string;
/**
* Whether to allow the user to turn off the WARP switch and disconnect the client.
*/
switch_locked?: boolean;
}
export namespace DevicesDeviceSettingsPolicy {
export interface ServiceModeV2 {
/**
* The mode to run the WARP client under.
*/
mode?: string;
/**
* The port number when used with proxy mode.
*/
port?: number;
}
}
export type PolicyDeleteResponse = Array<DevicesDeviceSettingsPolicy>;
export interface PolicyCreateParams {
/**
* Path param:
*/
account_id: string;
/**
* Body param: The wirefilter expression to match devices.
*/
match: string;
/**
* Body param: The name of the device settings profile.
*/
name: string;
/**
* Body param: The precedence of the policy. Lower values indicate higher
* precedence. Policies will be evaluated in ascending order of this field.
*/
precedence: number;
/**
* Body param: Whether to allow the user to switch WARP between modes.
*/
allow_mode_switch?: boolean;
/**
* Body param: Whether to receive update notifications when a new version of the
* client is available.
*/
allow_updates?: boolean;
/**
* Body param: Whether to allow devices to leave the organization.
*/
allowed_to_leave?: boolean;
/**
* Body param: The amount of time in minutes to reconnect after having been
* disabled.
*/
auto_connect?: number;
/**
* Body param: Turn on the captive portal after the specified amount of time.
*/
captive_portal?: number;
/**
* Body param: A description of the policy.
*/
description?: string;
/**
* Body param: If the `dns_server` field of a fallback domain is not present, the
* client will fall back to a best guess of the default/system DNS resolvers unless
* this policy option is set to `true`.
*/
disable_auto_fallback?: boolean;
/**
* Body param: Whether the policy will be applied to matching devices.
*/
enabled?: boolean;
/**
* Body param: Whether to add Microsoft IPs to Split Tunnel exclusions.
*/
exclude_office_ips?: boolean;
/**
* Body param: The amount of time in minutes a user is allowed access to their LAN.
* A value of 0 will allow LAN access until the next WARP reconnection, such as a
* reboot or a laptop waking from sleep. Note that this field is omitted from the
* response if null or unset.
*/
lan_allow_minutes?: number;
/**
* Body param: The size of the subnet for the local access network. Note that this
* field is omitted from the response if null or unset.
*/
lan_allow_subnet_size?: number;
/**
* Body param:
*/
service_mode_v2?: PolicyCreateParams.ServiceModeV2;
/**
* Body param: The URL to launch when the Send Feedback button is clicked.
*/
support_url?: string;
/**
* Body param: Whether to allow the user to turn off the WARP switch and disconnect
* the client.
*/
switch_locked?: boolean;
}
export namespace PolicyCreateParams {
export interface ServiceModeV2 {
/**
* The mode to run the WARP client under.
*/
mode?: string;
/**
* The port number when used with proxy mode.
*/
port?: number;
}
}
export interface PolicyListParams {
account_id: string;
}
export interface PolicyDeleteParams {
account_id: string;
}
export interface PolicyEditParams {
/**
* Path param:
*/
account_id: string;
/**
* Body param: Whether to allow the user to switch WARP between modes.
*/
allow_mode_switch?: boolean;
/**
* Body param: Whether to receive update notifications when a new version of the
* client is available.
*/
allow_updates?: boolean;
/**
* Body param: Whether to allow devices to leave the organization.
*/
allowed_to_leave?: boolean;
/**
* Body param: The amount of time in minutes to reconnect after having been
* disabled.
*/
auto_connect?: number;
/**
* Body param: Turn on the captive portal after the specified amount of time.
*/
captive_portal?: number;
/**
* Body param: A description of the policy.
*/
description?: string;
/**
* Body param: If the `dns_server` field of a fallback domain is not present, the
* client will fall back to a best guess of the default/system DNS resolvers unless
* this policy option is set to `true`.
*/
disable_auto_fallback?: boolean;
/**
* Body param: Whether the policy will be applied to matching devices.
*/
enabled?: boolean;
/**
* Body param: Whether to add Microsoft IPs to Split Tunnel exclusions.
*/
exclude_office_ips?: boolean;
/**
* Body param: The wirefilter expression to match devices.
*/
match?: string;
/**
* Body param: The name of the device settings profile.
*/
name?: string;
/**
* Body param: The precedence of the policy. Lower values indicate higher
* precedence. Policies will be evaluated in ascending order of this field.
*/
precedence?: number;
/**
* Body param:
*/
service_mode_v2?: PolicyEditParams.ServiceModeV2;
/**
* Body param: The URL to launch when the Send Feedback button is clicked.
*/
support_url?: string;
/**
* Body param: Whether to allow the user to turn off the WARP switch and disconnect
* the client.
*/
switch_locked?: boolean;
}
export namespace PolicyEditParams {
export interface ServiceModeV2 {
/**
* The mode to run the WARP client under.
*/
mode?: string;
/**
* The port number when used with proxy mode.
*/
port?: number;
}
}
export interface PolicyGetParams {
account_id: string;
}
export namespace Policies {
export import DevicesDeviceSettingsPolicy = PoliciesAPI.DevicesDeviceSettingsPolicy;
export import PolicyDeleteResponse = PoliciesAPI.PolicyDeleteResponse;
export import DevicesDeviceSettingsPoliciesSinglePage = PoliciesAPI.DevicesDeviceSettingsPoliciesSinglePage;
export import PolicyCreateParams = PoliciesAPI.PolicyCreateParams;
export import PolicyListParams = PoliciesAPI.PolicyListParams;
export import PolicyDeleteParams = PoliciesAPI.PolicyDeleteParams;
export import PolicyEditParams = PoliciesAPI.PolicyEditParams;
export import PolicyGetParams = PoliciesAPI.PolicyGetParams;
export import DefaultPolicy = DefaultPolicyAPI.DefaultPolicy;
export import DefaultPolicyGetResponse = DefaultPolicyAPI.DefaultPolicyGetResponse;
export import DefaultPolicyGetParams = DefaultPolicyAPI.DefaultPolicyGetParams;
export import Excludes = ExcludesAPI.Excludes;
export import DevicesSplitTunnel = ExcludesAPI.DevicesSplitTunnel;
export import ExcludeUpdateResponse = ExcludesAPI.ExcludeUpdateResponse;
export import ExcludeGetResponse = ExcludesAPI.ExcludeGetResponse;
export import DevicesSplitTunnelsSinglePage = ExcludesAPI.DevicesSplitTunnelsSinglePage;
export import ExcludeUpdateParams = ExcludesAPI.ExcludeUpdateParams;
export import ExcludeListParams = ExcludesAPI.ExcludeListParams;
export import ExcludeGetParams = ExcludesAPI.ExcludeGetParams;
export import FallbackDomains = FallbackDomainsAPI.FallbackDomains;
export import DevicesFallbackDomain = FallbackDomainsAPI.DevicesFallbackDomain;
export import FallbackDomainUpdateResponse = FallbackDomainsAPI.FallbackDomainUpdateResponse;
export import FallbackDomainGetResponse = FallbackDomainsAPI.FallbackDomainGetResponse;
export import DevicesFallbackDomainsSinglePage = FallbackDomainsAPI.DevicesFallbackDomainsSinglePage;
export import FallbackDomainUpdateParams = FallbackDomainsAPI.FallbackDomainUpdateParams;
export import FallbackDomainListParams = FallbackDomainsAPI.FallbackDomainListParams;
export import FallbackDomainGetParams = FallbackDomainsAPI.FallbackDomainGetParams;
export import Includes = IncludesAPI.Includes;
export import DevicesSplitTunnelInclude = IncludesAPI.DevicesSplitTunnelInclude;
export import IncludeUpdateResponse = IncludesAPI.IncludeUpdateResponse;
export import IncludeGetResponse = IncludesAPI.IncludeGetResponse;
export import DevicesSplitTunnelIncludesSinglePage = IncludesAPI.DevicesSplitTunnelIncludesSinglePage;
export import IncludeUpdateParams = IncludesAPI.IncludeUpdateParams;
export import IncludeListParams = IncludesAPI.IncludeListParams;
export import IncludeGetParams = IncludesAPI.IncludeGetParams;
}