cloudflare
Version:
The official TypeScript library for the Cloudflare API
159 lines (137 loc) • 4.22 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 { isRequestOptions } from "../core";
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from "../pagination";
export class Filters extends APIResource {
/**
* Creates one or more filters.
*/
create(
zoneIdentifier: string,
body: FilterCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<FilterCreateResponse | null> {
return (
this._client.post(`/zones/${zoneIdentifier}/filters`, { body, ...options }) as Core.APIPromise<{
result: FilterCreateResponse | null;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates an existing filter.
*/
update(
zoneIdentifier: string,
id: string,
body: FilterUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<FirewallFilter> {
return (
this._client.put(`/zones/${zoneIdentifier}/filters/${id}`, { body, ...options }) as Core.APIPromise<{
result: FirewallFilter;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches filters in a zone. You can filter the results using several optional
* parameters.
*/
list(
zoneIdentifier: string,
query?: FilterListParams,
options?: Core.RequestOptions,
): Core.PagePromise<FirewallFiltersV4PagePaginationArray, FirewallFilter>;
list(
zoneIdentifier: string,
options?: Core.RequestOptions,
): Core.PagePromise<FirewallFiltersV4PagePaginationArray, FirewallFilter>;
list(
zoneIdentifier: string,
query: FilterListParams | Core.RequestOptions = {},
options?: Core.RequestOptions,
): Core.PagePromise<FirewallFiltersV4PagePaginationArray, FirewallFilter> {
if (isRequestOptions(query)) {
return this.list(zoneIdentifier, {}, query);
}
return this._client.getAPIList(`/zones/${zoneIdentifier}/filters`, FirewallFiltersV4PagePaginationArray, {
query,
...options,
});
}
/**
* Deletes an existing filter.
*/
delete(
zoneIdentifier: string,
id: string,
body: FilterDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<FirewallFilter> {
return (
this._client.delete(`/zones/${zoneIdentifier}/filters/${id}`, { body, ...options }) as Core.APIPromise<{
result: FirewallFilter;
}>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches the details of a filter.
*/
get(zoneIdentifier: string, id: string, options?: Core.RequestOptions): Core.APIPromise<FirewallFilter> {
return (
this._client.get(`/zones/${zoneIdentifier}/filters/${id}`, options) as Core.APIPromise<{
result: FirewallFilter;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export class FirewallFiltersV4PagePaginationArray extends V4PagePaginationArray<FirewallFilter> {}
export interface FirewallFilter {
/**
* The unique identifier of the filter.
*/
id?: string;
/**
* An informative summary of the filter.
*/
description?: string;
/**
* The filter expression. For more information, refer to
* [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/).
*/
expression?: string;
/**
* When true, indicates that the filter is currently paused.
*/
paused?: boolean;
/**
* A short reference tag. Allows you to select related filters.
*/
ref?: string;
}
export type FilterCreateResponse = Array<FirewallFilter>;
export type FilterCreateParams = unknown;
export type FilterUpdateParams = unknown;
export interface FilterListParams extends V4PagePaginationArrayParams {
/**
* The unique identifier of the filter.
*/
id?: string;
/**
* A case-insensitive string to find in the description.
*/
description?: string;
/**
* A case-insensitive string to find in the expression.
*/
expression?: string;
/**
* When true, indicates that the filter is currently paused.
*/
paused?: boolean;
/**
* The filter ref (a short reference tag) to search for. Must be an exact match.
*/
ref?: string;
}
export type FilterDeleteParams = unknown;