import { APIResource } from "../../resource.js"; import * as Core from "../../core.js"; import { SinglePage } from "../../pagination.js"; export declare class Rules extends APIResource { /** * Only available for the Waiting Room Advanced subscription. Creates a rule for a * waiting room. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const waitingRoomRule of client.waitingRooms.rules.create( * '699d98642c564d2e855e9661899b7252', * { * zone_id: '023e105f4ecef8ad9ca31a8372d0c353', * rules: { * action: 'bypass_waiting_room', * expression: 'ip.src in {10.20.30.40}', * }, * }, * )) { * // ... * } * ``` */ create(waitingRoomId: string, params: RuleCreateParams, options?: Core.RequestOptions): Core.PagePromise; /** * Only available for the Waiting Room Advanced subscription. Replaces all rules * for a waiting room. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const waitingRoomRule of client.waitingRooms.rules.update( * '699d98642c564d2e855e9661899b7252', * { * zone_id: '023e105f4ecef8ad9ca31a8372d0c353', * rules: [ * { * action: 'bypass_waiting_room', * expression: 'ip.src in {10.20.30.40}', * }, * ], * }, * )) { * // ... * } * ``` */ update(waitingRoomId: string, params: RuleUpdateParams, options?: Core.RequestOptions): Core.PagePromise; /** * Deletes a rule for a waiting room. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const waitingRoomRule of client.waitingRooms.rules.delete( * '699d98642c564d2e855e9661899b7252', * '25756b2dfe6e378a06b033b670413757', * { zone_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * )) { * // ... * } * ``` */ delete(waitingRoomId: string, ruleId: string, params: RuleDeleteParams, options?: Core.RequestOptions): Core.PagePromise; /** * Patches a rule for a waiting room. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const waitingRoomRule of client.waitingRooms.rules.edit( * '699d98642c564d2e855e9661899b7252', * '25756b2dfe6e378a06b033b670413757', * { * zone_id: '023e105f4ecef8ad9ca31a8372d0c353', * action: 'bypass_waiting_room', * expression: 'ip.src in {10.20.30.40}', * }, * )) { * // ... * } * ``` */ edit(waitingRoomId: string, ruleId: string, params: RuleEditParams, options?: Core.RequestOptions): Core.PagePromise; /** * Lists rules for a waiting room. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const waitingRoomRule of client.waitingRooms.rules.get( * '699d98642c564d2e855e9661899b7252', * { zone_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * )) { * // ... * } * ``` */ get(waitingRoomId: string, params: RuleGetParams, options?: Core.RequestOptions): Core.PagePromise; } export declare class WaitingRoomRulesSinglePage extends SinglePage { } export interface WaitingRoomRule { /** * The ID of the rule. */ id?: string; /** * The action to take when the expression matches. */ action?: 'bypass_waiting_room'; /** * The description of the rule. */ description?: string; /** * When set to true, the rule is enabled. */ enabled?: boolean; /** * Criteria defining when there is a match for the current rule. */ expression?: string; last_updated?: string; /** * The version of the rule. */ version?: string; } export interface RuleCreateParams { /** * Path param: Identifier. */ zone_id: string; /** * Body param: */ rules: RuleCreateParams.Rules; } export declare namespace RuleCreateParams { interface Rules { /** * The action to take when the expression matches. */ action: 'bypass_waiting_room'; /** * Criteria defining when there is a match for the current rule. */ expression: string; /** * The description of the rule. */ description?: string; /** * When set to true, the rule is enabled. */ enabled?: boolean; } } export interface RuleUpdateParams { /** * Path param: Identifier. */ zone_id: string; /** * Body param: */ rules: Array; } export declare namespace RuleUpdateParams { interface Rule { /** * The action to take when the expression matches. */ action: 'bypass_waiting_room'; /** * Criteria defining when there is a match for the current rule. */ expression: string; /** * The description of the rule. */ description?: string; /** * When set to true, the rule is enabled. */ enabled?: boolean; } } export interface RuleDeleteParams { /** * Identifier. */ zone_id: string; } export interface RuleEditParams { /** * Path param: Identifier. */ zone_id: string; /** * Body param: The action to take when the expression matches. */ action: 'bypass_waiting_room'; /** * Body param: Criteria defining when there is a match for the current rule. */ expression: string; /** * Body param: The description of the rule. */ description?: string; /** * Body param: When set to true, the rule is enabled. */ enabled?: boolean; /** * Body param: Reorder the position of a rule */ position?: RuleEditParams.Index | RuleEditParams.Before | RuleEditParams.After; } export declare namespace RuleEditParams { interface Index { /** * Places the rule in the exact position specified by the integer number * . Position numbers start with 1. Existing rules in the ruleset * from the specified position number onward are shifted one position (no rule is * overwritten). */ index?: number; } interface Before { /** * Places the rule before rule . Use this argument with an empty rule ID * value ("") to set the rule as the first rule in the ruleset. */ before?: string; } interface After { /** * Places the rule after rule . Use this argument with an empty rule ID * value ("") to set the rule as the last rule in the ruleset. */ after?: string; } } export interface RuleGetParams { /** * Identifier. */ zone_id: string; } export declare namespace Rules { export { type WaitingRoomRule as WaitingRoomRule, WaitingRoomRulesSinglePage as WaitingRoomRulesSinglePage, type RuleCreateParams as RuleCreateParams, type RuleUpdateParams as RuleUpdateParams, type RuleDeleteParams as RuleDeleteParams, type RuleEditParams as RuleEditParams, type RuleGetParams as RuleGetParams, }; } //# sourceMappingURL=rules.d.ts.map