import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface WaapAdvancedRuleConfig extends cdktf.TerraformMetaArguments { /** * The description assigned to the rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#description WaapAdvancedRule#description} */ readonly description?: string; /** * The WAAP domain ID for which the Advanced Rule is configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#domain_id WaapAdvancedRule#domain_id} */ readonly domainId: number; /** * Whether the rule is enabled. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#enabled WaapAdvancedRule#enabled} */ readonly enabled: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#id WaapAdvancedRule#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The name assigned to the rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#name WaapAdvancedRule#name} */ readonly name: string; /** * The WAAP request/response phase for applying the rule. The 'access' phase is responsible for modifying the request before it is sent to the origin server. The 'header_filter' phase is responsible for modifying the HTTP headers of a response before they are sent back to the client.The 'body_filter' phase is responsible for modifying the body of a response before it is sent back to the client. Default is 'access'. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#phase WaapAdvancedRule#phase} */ readonly phase?: string; /** * A CEL syntax expression that contains the rule's conditions. Allowed objects are: request, whois, session, response, tags, user_defined_tags, user_agent, client_data. More info can be found here: https://gcore.com/docs/waap/waap-rules/advanced-rules * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#source WaapAdvancedRule#source} */ readonly source: string; /** * action block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#action WaapAdvancedRule#action} */ readonly action: WaapAdvancedRuleAction; } export interface WaapAdvancedRuleActionBlock { /** * How long a rule's block action will apply to subsequent requests. Can be specified in seconds or by using a numeral followed by 's', 'm', 'h', or 'd' to represent time format (seconds, minutes, hours, or days). Example: 12h. Must match the pattern ^[0-9]*[smhd]?$ * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#action_duration WaapAdvancedRule#action_duration} */ readonly actionDuration?: string; /** * A custom HTTP status code that the WAAP returns if a rule blocks a request. It must be one of these values {403, 405, 418, 429}. Default is 403. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#status_code WaapAdvancedRule#status_code} */ readonly statusCode?: number; } export declare function waapAdvancedRuleActionBlockToTerraform(struct?: WaapAdvancedRuleActionBlockOutputReference | WaapAdvancedRuleActionBlock): any; export declare function waapAdvancedRuleActionBlockToHclTerraform(struct?: WaapAdvancedRuleActionBlockOutputReference | WaapAdvancedRuleActionBlock): any; export declare class WaapAdvancedRuleActionBlockOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): WaapAdvancedRuleActionBlock | undefined; set internalValue(value: WaapAdvancedRuleActionBlock | undefined); private _actionDuration?; get actionDuration(): string; set actionDuration(value: string); resetActionDuration(): void; get actionDurationInput(): string; private _statusCode?; get statusCode(): number; set statusCode(value: number); resetStatusCode(): void; get statusCodeInput(): number; } export interface WaapAdvancedRuleActionTag { /** * The list of user defined tags to tag the request with. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#tags WaapAdvancedRule#tags} */ readonly tags: string[]; } export declare function waapAdvancedRuleActionTagToTerraform(struct?: WaapAdvancedRuleActionTagOutputReference | WaapAdvancedRuleActionTag): any; export declare function waapAdvancedRuleActionTagToHclTerraform(struct?: WaapAdvancedRuleActionTagOutputReference | WaapAdvancedRuleActionTag): any; export declare class WaapAdvancedRuleActionTagOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): WaapAdvancedRuleActionTag | undefined; set internalValue(value: WaapAdvancedRuleActionTag | undefined); private _tags?; get tags(): string[]; set tags(value: string[]); get tagsInput(): string[]; } export interface WaapAdvancedRuleAction { /** * The WAAP allows the request. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#allow WaapAdvancedRule#allow} */ readonly allow?: boolean | cdktf.IResolvable; /** * The WAAP requires the user to solve a CAPTCHA challenge. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#captcha WaapAdvancedRule#captcha} */ readonly captcha?: boolean | cdktf.IResolvable; /** * The WAAP performs automatic browser validation. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#handshake WaapAdvancedRule#handshake} */ readonly handshake?: boolean | cdktf.IResolvable; /** * The WAAP monitors the request but took no action. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#monitor WaapAdvancedRule#monitor} */ readonly monitor?: boolean | cdktf.IResolvable; /** * block block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#block WaapAdvancedRule#block} */ readonly block?: WaapAdvancedRuleActionBlock; /** * tag block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#tag WaapAdvancedRule#tag} */ readonly tag?: WaapAdvancedRuleActionTag; } export declare function waapAdvancedRuleActionToTerraform(struct?: WaapAdvancedRuleActionOutputReference | WaapAdvancedRuleAction): any; export declare function waapAdvancedRuleActionToHclTerraform(struct?: WaapAdvancedRuleActionOutputReference | WaapAdvancedRuleAction): any; export declare class WaapAdvancedRuleActionOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): WaapAdvancedRuleAction | undefined; set internalValue(value: WaapAdvancedRuleAction | undefined); private _allow?; get allow(): boolean | cdktf.IResolvable; set allow(value: boolean | cdktf.IResolvable); resetAllow(): void; get allowInput(): any; private _captcha?; get captcha(): boolean | cdktf.IResolvable; set captcha(value: boolean | cdktf.IResolvable); resetCaptcha(): void; get captchaInput(): any; private _handshake?; get handshake(): boolean | cdktf.IResolvable; set handshake(value: boolean | cdktf.IResolvable); resetHandshake(): void; get handshakeInput(): any; private _monitor?; get monitor(): boolean | cdktf.IResolvable; set monitor(value: boolean | cdktf.IResolvable); resetMonitor(): void; get monitorInput(): any; private _block; get block(): WaapAdvancedRuleActionBlockOutputReference; putBlock(value: WaapAdvancedRuleActionBlock): void; resetBlock(): void; get blockInput(): WaapAdvancedRuleActionBlock; private _tag; get tag(): WaapAdvancedRuleActionTagOutputReference; putTag(value: WaapAdvancedRuleActionTag): void; resetTag(): void; get tagInput(): WaapAdvancedRuleActionTag; } /** * Represents a {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule gcore_waap_advanced_rule} */ export declare class WaapAdvancedRule extends cdktf.TerraformResource { static readonly tfResourceType = "gcore_waap_advanced_rule"; /** * Generates CDKTF code for importing a WaapAdvancedRule resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the WaapAdvancedRule to import * @param importFromId The id of the existing WaapAdvancedRule that should be imported. Refer to the {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the WaapAdvancedRule to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_advanced_rule gcore_waap_advanced_rule} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options WaapAdvancedRuleConfig */ constructor(scope: Construct, id: string, config: WaapAdvancedRuleConfig); private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _domainId?; get domainId(): number; set domainId(value: number); get domainIdInput(): number; private _enabled?; get enabled(): boolean | cdktf.IResolvable; set enabled(value: boolean | cdktf.IResolvable); get enabledInput(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _phase?; get phase(): string; set phase(value: string); resetPhase(): void; get phaseInput(): string; private _source?; get source(): string; set source(value: string); get sourceInput(): string; private _action; get action(): WaapAdvancedRuleActionOutputReference; putAction(value: WaapAdvancedRuleAction): void; get actionInput(): WaapAdvancedRuleAction; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }