// AUTO-GENERATED by scripts/generate.ts from .generated-specs. Do not edit. import * as S from "@distilled.cloud/core/schema"; import * as API from "@distilled.cloud/core/api"; import * as T from "../traits.ts"; import { CloudflareProtocol, CloudflarePaginatedProtocol, type CloudflareOpError, type CloudflareOpContext, } from "../protocol.ts"; import { cloudflarePaginate, ResultInfo } from "../pagination.ts"; import { CloudflareError, CloudflareRateLimited } from "../errors.ts"; import * as Retry from "../retry.ts"; export type { CloudflareOpError, CloudflareOpContext }; /** Fallback camelCase→wire mapping for opaque content (mined from the distilled SDK). */ const KEY_DICTIONARY: Record> = { perPage: "per_page", resultInfo: "result_info", totalCount: "total_count", }; export type BulkDeleteRequestIdList = Array; export const BulkDeleteRequestIdList = /*@__PURE__*/ S.Array( S.String, ) as any as S.Schema; export interface BulkDeleteFiltersRequest { /** Defines an identifier. */ zoneId: string; id: BulkDeleteRequestIdList; } export const BulkDeleteFiltersRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), id: BulkDeleteRequestIdList.pipe(T.Query()), }) .pipe( T.Http({ method: "DELETE", uri: "/zones/{zone_id}/filters", code: 200 }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "BulkDeleteFiltersRequest", }) as any as S.Schema; export interface BulkDeleteResultItem { /** The unique identifier of the filter. */ id?: string | null; } export const BulkDeleteResultItem = /*@__PURE__*/ S.suspend(() => S.Struct({ id: S.optional(S.NullOr(S.String)), }), ).annotate({ identifier: "BulkDeleteResultItem", }) as any as S.Schema; export type BulkDeleteResultList = Array; export const BulkDeleteResultList = /*@__PURE__*/ S.Array( BulkDeleteResultItem, ) as any as S.Schema; export type BulkDeleteFiltersResponse = BulkDeleteResultList; export const BulkDeleteFiltersResponse = /*@__PURE__*/ S.suspend(() => BulkDeleteResultList.pipe( T.EnvelopePayloadRoot(), T.KeyDictionary(KEY_DICTIONARY), ), ).annotate({ identifier: "BulkDeleteFiltersResponse", }) as any as S.Schema; export interface BulkUpdateRequestBodyItem { /** 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 const BulkUpdateRequestBodyItem = /*@__PURE__*/ S.suspend(() => S.Struct({ id: S.optional(S.String), description: S.optional(S.String), expression: S.optional(S.String), paused: S.optional(S.Boolean), ref: S.optional(S.String), }), ).annotate({ identifier: "BulkUpdateRequestBodyItem", }) as any as S.Schema; export type BulkUpdateRequestBodyList = Array; export const BulkUpdateRequestBodyList = /*@__PURE__*/ S.Array( BulkUpdateRequestBodyItem, ) as any as S.Schema; export interface BulkPutFiltersRequest { /** Defines an identifier. */ zoneId: string; body: BulkUpdateRequestBodyList; } export const BulkPutFiltersRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), body: BulkUpdateRequestBodyList.pipe(T.HttpBody()), }) .pipe(T.Http({ method: "PUT", uri: "/zones/{zone_id}/filters", code: 200 })) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "BulkPutFiltersRequest", }) as any as S.Schema; export interface BulkUpdateResultItem { /** The unique identifier of the filter. */ id?: string | null; /** An informative summary of the filter. */ description?: string | null; /** The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). */ expression?: string | null; /** When true, indicates that the filter is currently paused. */ paused?: boolean | null; /** A short reference tag. Allows you to select related filters. */ ref?: string | null; } export const BulkUpdateResultItem = /*@__PURE__*/ S.suspend(() => S.Struct({ id: S.optional(S.NullOr(S.String)), description: S.optional(S.NullOr(S.String)), expression: S.optional(S.NullOr(S.String)), paused: S.optional(S.NullOr(S.Boolean)), ref: S.optional(S.NullOr(S.String)), }), ).annotate({ identifier: "BulkUpdateResultItem", }) as any as S.Schema; export type BulkUpdateResultList = Array; export const BulkUpdateResultList = /*@__PURE__*/ S.Array( BulkUpdateResultItem, ) as any as S.Schema; export interface BulkPutFiltersResponse { /** The unwrapped `result` payload of the v4 response envelope. */ result: BulkUpdateResultList; /** Pagination info from the envelope's `result_info`. */ resultInfo?: ResultInfo | null; } export const BulkPutFiltersResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ result: BulkUpdateResultList.pipe(T.EnvelopePayload()), resultInfo: S.optional(S.NullOr(ResultInfo).pipe(T.ResultInfo())), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "BulkPutFiltersResponse", }) as any as S.Schema; export type CreateRequestBodyItem = BulkUpdateRequestBodyItem; export const CreateRequestBodyItem = BulkUpdateRequestBodyItem; export type CreateRequestBodyList = Array; export const CreateRequestBodyList = /*@__PURE__*/ S.Array( BulkUpdateRequestBodyItem, ) as any as S.Schema; export interface CreateFilterRequest { /** Defines an identifier. */ zoneId: string; body: CreateRequestBodyList; } export const CreateFilterRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), body: CreateRequestBodyList.pipe(T.HttpBody()), }) .pipe( T.Http({ method: "POST", uri: "/zones/{zone_id}/filters", code: 200 }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "CreateFilterRequest", }) as any as S.Schema; export type CreateResultItem = BulkUpdateResultItem; export const CreateResultItem = BulkUpdateResultItem; export type CreateResultList = Array; export const CreateResultList = /*@__PURE__*/ S.Array( BulkUpdateResultItem, ) as any as S.Schema; export interface CreateFilterResponse { /** The unwrapped `result` payload of the v4 response envelope. */ result: CreateResultList; /** Pagination info from the envelope's `result_info`. */ resultInfo?: ResultInfo | null; } export const CreateFilterResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ result: CreateResultList.pipe(T.EnvelopePayload()), resultInfo: S.optional(S.NullOr(ResultInfo).pipe(T.ResultInfo())), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "CreateFilterResponse", }) as any as S.Schema; export interface DeleteFilterRequest { /** Defines an identifier. */ zoneId: string; /** The unique identifier of the filter. */ filterId: string; } export const DeleteFilterRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), filterId: S.String.pipe(T.Label("filter_id")), }) .pipe( T.Http({ method: "DELETE", uri: "/zones/{zone_id}/filters/{filter_id}", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "DeleteFilterRequest", }) as any as S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface DeleteFilterResponse { /** The unique identifier of the filter. */ id: string; } export const DeleteFilterResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ id: S.String, }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "DeleteFilterResponse", }) as any as S.Schema; export interface GetFilterRequest { /** Defines an identifier. */ zoneId: string; /** The unique identifier of the filter. */ filterId: string; } export const GetFilterRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), filterId: S.String.pipe(T.Label("filter_id")), }) .pipe( T.Http({ method: "GET", uri: "/zones/{zone_id}/filters/{filter_id}", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "GetFilterRequest", }) as any as S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface GetFilterResponse { /** The unique identifier of the filter. */ id?: string | null; /** An informative summary of the filter. */ description?: string | null; /** The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). */ expression?: string | null; /** When true, indicates that the filter is currently paused. */ paused?: boolean | null; /** A short reference tag. Allows you to select related filters. */ ref?: string | null; } export const GetFilterResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ id: S.optional(S.NullOr(S.String)), description: S.optional(S.NullOr(S.String)), expression: S.optional(S.NullOr(S.String)), paused: S.optional(S.NullOr(S.Boolean)), ref: S.optional(S.NullOr(S.String)), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "GetFilterResponse", }) as any as S.Schema; export interface ListFiltersRequest { /** Defines an identifier. */ zoneId: string; /** 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; /** Page number of paginated results. */ page?: number; /** When true, indicates that the filter is currently paused. */ paused?: boolean; /** Number of filters per page. */ perPage?: number; /** The filter ref (a short reference tag) to search for. Must be an exact match. */ ref?: string; } export const ListFiltersRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), id: S.optional(S.String.pipe(T.Query())), description: S.optional(S.String.pipe(T.Query())), expression: S.optional(S.String.pipe(T.Query())), page: S.optional(S.Number.pipe(T.Query())), paused: S.optional(S.Boolean.pipe(T.Query())), perPage: S.optional(S.Number.pipe(T.Query("per_page"))), ref: S.optional(S.String.pipe(T.Query())), }) .pipe(T.Http({ method: "GET", uri: "/zones/{zone_id}/filters", code: 200 })) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "ListFiltersRequest", }) as any as S.Schema; export type ListResultItem = BulkUpdateResultItem; export const ListResultItem = BulkUpdateResultItem; export type ListResultList = Array; export const ListResultList = /*@__PURE__*/ S.Array( BulkUpdateResultItem, ) as any as S.Schema; export interface ListFiltersResponse { /** The unwrapped `result` payload of the v4 response envelope. */ result: ListResultList; /** Pagination info from the envelope's `result_info`. */ resultInfo?: ResultInfo | null; } export const ListFiltersResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ result: ListResultList.pipe(T.EnvelopePayload()), resultInfo: S.optional(S.NullOr(ResultInfo).pipe(T.ResultInfo())), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "ListFiltersResponse", }) as any as S.Schema; export interface UpdateFilterRequest { /** Defines an identifier. */ zoneId: string; /** The unique identifier of the filter. */ filterId: 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 const UpdateFilterRequest = /*@__PURE__*/ S.suspend(() => S.Struct({ zoneId: S.String.pipe(T.Label("zone_id")), filterId: S.String.pipe(T.Label("filter_id")), description: S.optional(S.String), expression: S.optional(S.String), paused: S.optional(S.Boolean), ref: S.optional(S.String), }) .pipe( T.Http({ method: "PUT", uri: "/zones/{zone_id}/filters/{filter_id}", code: 200, }), ) .pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "UpdateFilterRequest", }) as any as S.Schema; /** Unwrapped `result` payload of the Cloudflare v4 response envelope. */ export interface UpdateFilterResponse { /** The unique identifier of the filter. */ id?: string | null; /** An informative summary of the filter. */ description?: string | null; /** The filter expression. For more information, refer to [Expressions](https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/). */ expression?: string | null; /** When true, indicates that the filter is currently paused. */ paused?: boolean | null; /** A short reference tag. Allows you to select related filters. */ ref?: string | null; } export const UpdateFilterResponse = /*@__PURE__*/ S.suspend(() => S.Struct({ id: S.optional(S.NullOr(S.String)), description: S.optional(S.NullOr(S.String)), expression: S.optional(S.NullOr(S.String)), paused: S.optional(S.NullOr(S.Boolean)), ref: S.optional(S.NullOr(S.String)), }).pipe(T.KeyDictionary(KEY_DICTIONARY)), ).annotate({ identifier: "UpdateFilterResponse", }) as any as S.Schema; export type BulkDeleteFiltersError = CloudflareOpError; /** Deletes one or more existing filters. */ export const bulkDeleteFilters: API.OperationMethod< BulkDeleteFiltersRequest, BulkDeleteFiltersResponse, BulkDeleteFiltersError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: BulkDeleteFiltersRequest, output: BulkDeleteFiltersResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, })); export type BulkPutFiltersError = CloudflareOpError; /** Updates one or more existing filters. */ export const bulkPutFilters: API.PaginatedOperationMethod< BulkPutFiltersRequest, BulkPutFiltersResponse, BulkPutFiltersError, CloudflareOpContext, BulkUpdateResultItem > = /*@__PURE__*/ API.makePaginated( () => ({ input: BulkPutFiltersRequest, output: BulkPutFiltersResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflarePaginatedProtocol, retry: Retry.Retry, pagination: { mode: "single", items: "result" } as const, }), cloudflarePaginate, ) as any; export type CreateFilterError = CloudflareOpError; /** Creates one or more filters. */ export const createFilter: API.PaginatedOperationMethod< CreateFilterRequest, CreateFilterResponse, CreateFilterError, CloudflareOpContext, BulkUpdateResultItem > = /*@__PURE__*/ API.makePaginated( () => ({ input: CreateFilterRequest, output: CreateFilterResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflarePaginatedProtocol, retry: Retry.Retry, pagination: { mode: "single", items: "result" } as const, }), cloudflarePaginate, ) as any; export type DeleteFilterError = CloudflareOpError; /** Deletes an existing filter. */ export const deleteFilter: API.OperationMethod< DeleteFilterRequest, DeleteFilterResponse, DeleteFilterError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: DeleteFilterRequest, output: DeleteFilterResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, })); export type GetFilterError = CloudflareOpError; /** Fetches the details of a filter. */ export const getFilter: API.OperationMethod< GetFilterRequest, GetFilterResponse, GetFilterError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: GetFilterRequest, output: GetFilterResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, })); export type ListFiltersError = CloudflareOpError; /** Fetches filters in a zone. You can filter the results using several optional parameters. */ export const listFilters: API.PaginatedOperationMethod< ListFiltersRequest, ListFiltersResponse, ListFiltersError, CloudflareOpContext, BulkUpdateResultItem > = /*@__PURE__*/ API.makePaginated( () => ({ input: ListFiltersRequest, output: ListFiltersResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflarePaginatedProtocol, retry: Retry.Retry, pagination: { mode: "page", inputToken: "page", outputToken: "resultInfo.page", items: "result", pageSize: "perPage", } as const, }), cloudflarePaginate, ) as any; export type UpdateFilterError = CloudflareOpError; /** Updates an existing filter. */ export const updateFilter: API.OperationMethod< UpdateFilterRequest, UpdateFilterResponse, UpdateFilterError, CloudflareOpContext > = /*@__PURE__*/ API.make(() => ({ input: UpdateFilterRequest, output: UpdateFilterResponse, errors: [CloudflareRateLimited, CloudflareError], protocol: CloudflareProtocol, retry: Retry.Retry, }));