import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface WaapFirewallRuleConfig extends cdktf.TerraformMetaArguments { /** * Description of the firewall rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#description WaapFirewallRule#description} */ readonly description?: string; /** * The WAAP domain ID for which the Firewall Rule is configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#domain_id WaapFirewallRule#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_firewall_rule#enabled WaapFirewallRule#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_firewall_rule#id WaapFirewallRule#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; /** * Name of the firewall rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#name WaapFirewallRule#name} */ readonly name: string; /** * action block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#action WaapFirewallRule#action} */ readonly action: WaapFirewallRuleAction; /** * conditions block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#conditions WaapFirewallRule#conditions} */ readonly conditions: WaapFirewallRuleConditions; } export interface WaapFirewallRuleActionBlock { /** * 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_firewall_rule#action_duration WaapFirewallRule#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_firewall_rule#status_code WaapFirewallRule#status_code} */ readonly statusCode?: number; } export declare function waapFirewallRuleActionBlockToTerraform(struct?: WaapFirewallRuleActionBlockOutputReference | WaapFirewallRuleActionBlock): any; export declare function waapFirewallRuleActionBlockToHclTerraform(struct?: WaapFirewallRuleActionBlockOutputReference | WaapFirewallRuleActionBlock): any; export declare class WaapFirewallRuleActionBlockOutputReference 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(): WaapFirewallRuleActionBlock | undefined; set internalValue(value: WaapFirewallRuleActionBlock | 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 WaapFirewallRuleAction { /** * The WAAP allows the request. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#allow WaapFirewallRule#allow} */ readonly allow?: boolean | cdktf.IResolvable; /** * block block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#block WaapFirewallRule#block} */ readonly block?: WaapFirewallRuleActionBlock; } export declare function waapFirewallRuleActionToTerraform(struct?: WaapFirewallRuleActionOutputReference | WaapFirewallRuleAction): any; export declare function waapFirewallRuleActionToHclTerraform(struct?: WaapFirewallRuleActionOutputReference | WaapFirewallRuleAction): any; export declare class WaapFirewallRuleActionOutputReference 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(): WaapFirewallRuleAction | undefined; set internalValue(value: WaapFirewallRuleAction | undefined); private _allow?; get allow(): boolean | cdktf.IResolvable; set allow(value: boolean | cdktf.IResolvable); resetAllow(): void; get allowInput(): any; private _block; get block(): WaapFirewallRuleActionBlockOutputReference; putBlock(value: WaapFirewallRuleActionBlock): void; resetBlock(): void; get blockInput(): WaapFirewallRuleActionBlock; } export interface WaapFirewallRuleConditionsIp { /** * A single IPv4 or IPv6 address to match. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#ip_address WaapFirewallRule#ip_address} */ readonly ipAddress: string; /** * Whether or not to apply a boolean NOT operation to the rule's condition. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#negation WaapFirewallRule#negation} */ readonly negation?: boolean | cdktf.IResolvable; } export declare function waapFirewallRuleConditionsIpToTerraform(struct?: WaapFirewallRuleConditionsIpOutputReference | WaapFirewallRuleConditionsIp): any; export declare function waapFirewallRuleConditionsIpToHclTerraform(struct?: WaapFirewallRuleConditionsIpOutputReference | WaapFirewallRuleConditionsIp): any; export declare class WaapFirewallRuleConditionsIpOutputReference 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(): WaapFirewallRuleConditionsIp | undefined; set internalValue(value: WaapFirewallRuleConditionsIp | undefined); private _ipAddress?; get ipAddress(): string; set ipAddress(value: string); get ipAddressInput(): string; private _negation?; get negation(): boolean | cdktf.IResolvable; set negation(value: boolean | cdktf.IResolvable); resetNegation(): void; get negationInput(): any; } export interface WaapFirewallRuleConditionsIpRange { /** * The lower bound IPv4 or IPv6 address to match against. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#lower_bound WaapFirewallRule#lower_bound} */ readonly lowerBound: string; /** * Whether or not to apply a boolean NOT operation to the rule's condition. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#negation WaapFirewallRule#negation} */ readonly negation?: boolean | cdktf.IResolvable; /** * The upper bound IPv4 or IPv6 address to match against. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#upper_bound WaapFirewallRule#upper_bound} */ readonly upperBound: string; } export declare function waapFirewallRuleConditionsIpRangeToTerraform(struct?: WaapFirewallRuleConditionsIpRangeOutputReference | WaapFirewallRuleConditionsIpRange): any; export declare function waapFirewallRuleConditionsIpRangeToHclTerraform(struct?: WaapFirewallRuleConditionsIpRangeOutputReference | WaapFirewallRuleConditionsIpRange): any; export declare class WaapFirewallRuleConditionsIpRangeOutputReference 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(): WaapFirewallRuleConditionsIpRange | undefined; set internalValue(value: WaapFirewallRuleConditionsIpRange | undefined); private _lowerBound?; get lowerBound(): string; set lowerBound(value: string); get lowerBoundInput(): string; private _negation?; get negation(): boolean | cdktf.IResolvable; set negation(value: boolean | cdktf.IResolvable); resetNegation(): void; get negationInput(): any; private _upperBound?; get upperBound(): string; set upperBound(value: string); get upperBoundInput(): string; } export interface WaapFirewallRuleConditions { /** * ip block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#ip WaapFirewallRule#ip} */ readonly ip?: WaapFirewallRuleConditionsIp; /** * ip_range block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#ip_range WaapFirewallRule#ip_range} */ readonly ipRange?: WaapFirewallRuleConditionsIpRange; } export declare function waapFirewallRuleConditionsToTerraform(struct?: WaapFirewallRuleConditionsOutputReference | WaapFirewallRuleConditions): any; export declare function waapFirewallRuleConditionsToHclTerraform(struct?: WaapFirewallRuleConditionsOutputReference | WaapFirewallRuleConditions): any; export declare class WaapFirewallRuleConditionsOutputReference 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(): WaapFirewallRuleConditions | undefined; set internalValue(value: WaapFirewallRuleConditions | undefined); private _ip; get ip(): WaapFirewallRuleConditionsIpOutputReference; putIp(value: WaapFirewallRuleConditionsIp): void; resetIp(): void; get ipInput(): WaapFirewallRuleConditionsIp; private _ipRange; get ipRange(): WaapFirewallRuleConditionsIpRangeOutputReference; putIpRange(value: WaapFirewallRuleConditionsIpRange): void; resetIpRange(): void; get ipRangeInput(): WaapFirewallRuleConditionsIpRange; } /** * Represents a {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule gcore_waap_firewall_rule} */ export declare class WaapFirewallRule extends cdktf.TerraformResource { static readonly tfResourceType = "gcore_waap_firewall_rule"; /** * Generates CDKTF code for importing a WaapFirewallRule 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 WaapFirewallRule to import * @param importFromId The id of the existing WaapFirewallRule that should be imported. Refer to the {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/waap_firewall_rule#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the WaapFirewallRule 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_firewall_rule gcore_waap_firewall_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 WaapFirewallRuleConfig */ constructor(scope: Construct, id: string, config: WaapFirewallRuleConfig); 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 _action; get action(): WaapFirewallRuleActionOutputReference; putAction(value: WaapFirewallRuleAction): void; get actionInput(): WaapFirewallRuleAction; private _conditions; get conditions(): WaapFirewallRuleConditionsOutputReference; putConditions(value: WaapFirewallRuleConditions): void; get conditionsInput(): WaapFirewallRuleConditions; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }