/** * @type RateLimitingRule: A rate limiting rule. * * @property ruleId: The ID of the rate limiting rule. * - **Pattern:** /^.*$/ * * @property description: The description of the rate limiting rule. * - **Pattern:** /^.*$/ * * @property expression: The expression that defines when to evaluate the rate limiting rule. * - **Pattern:** /^.*$/ * * @property characteristics: Set of parameters defining how to group requests when tracking the request rate. * * @property action: The action applied by the rate limiting rule. Valid actions are \"block\", \"managed_challenge\", \"js_challenge\", \"legacy_captcha\", and \"log\". * - **Pattern:** /^.*$/ * * @property period: The period of time to consider when evaluating the request rate (in seconds). Valid values are 10, 60, 120, 300, and 600. * * @property requestsPerPeriod: The limit for the number of requests in the specified period of time. * * @property mitigationTimeout: After the rate is reached, the rate limiting rule applies the rule action to further requests for the period of time defined in this field (in seconds). When set to 0, the rule throttles requests over the maximum configured rate. When greater than 0, the action is presented for the selected duration after the configured rate is exceeded. Valid values are 0, 60, 120, 300, 600, 3600, and 86400. * * @property countingExpression: The expression that defines what kind of requests we want to rate limit. * - **Pattern:** /^.*$/ * * @property lastUpdated: Date when the rate limiting rule was last updated. * * @property enabled: Whether or not the rate limiting rule is enabled. * */ export type RateLimitingRule = { ruleId: string; description: string; expression: string; characteristics: Array; action: string; period: number; requestsPerPeriod: number; mitigationTimeout: number; countingExpression?: string; lastUpdated: string; enabled: boolean; } & { [key: string]: any; };