UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

753 lines 99.8 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeSecurityPolicyConfig extends cdktf.TerraformMetaArguments { /** * An optional description of this security policy. Max size is 2048. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#description ComputeSecurityPolicy#description} */ readonly description?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#id ComputeSecurityPolicy#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 of the security policy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#name ComputeSecurityPolicy#name} */ readonly name: string; /** * The project in which the resource belongs. If it is not provided, the provider project is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#project ComputeSecurityPolicy#project} */ readonly project?: string; /** * The type indicates the intended use of the security policy. CLOUD_ARMOR - Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#type ComputeSecurityPolicy#type} */ readonly type?: string; /** * adaptive_protection_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#adaptive_protection_config ComputeSecurityPolicy#adaptive_protection_config} */ readonly adaptiveProtectionConfig?: ComputeSecurityPolicyAdaptiveProtectionConfig; /** * advanced_options_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#advanced_options_config ComputeSecurityPolicy#advanced_options_config} */ readonly advancedOptionsConfig?: ComputeSecurityPolicyAdvancedOptionsConfig; /** * recaptcha_options_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#recaptcha_options_config ComputeSecurityPolicy#recaptcha_options_config} */ readonly recaptchaOptionsConfig?: ComputeSecurityPolicyRecaptchaOptionsConfig; /** * rule block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#rule ComputeSecurityPolicy#rule} */ readonly rule?: ComputeSecurityPolicyRule[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#timeouts ComputeSecurityPolicy#timeouts} */ readonly timeouts?: ComputeSecurityPolicyTimeouts; } export interface ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs { /** * If enabled, traffic matching each unique value for the specified type constitutes a separate traffic unit. It can only be set to true if value is empty. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#enable_each_unique_value ComputeSecurityPolicy#enable_each_unique_value} */ readonly enableEachUniqueValue?: boolean | cdktf.IResolvable; /** * Type of this configuration. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#type ComputeSecurityPolicy#type} */ readonly type: string; /** * Requests that match this value constitute a granular traffic unit. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#value ComputeSecurityPolicy#value} */ readonly value?: string; } export declare function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs | cdktf.IResolvable): any; export declare function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsToHclTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs | cdktf.IResolvable): any; export declare class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs | cdktf.IResolvable | undefined; set internalValue(value: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs | cdktf.IResolvable | undefined); private _enableEachUniqueValue?; get enableEachUniqueValue(): boolean | cdktf.IResolvable; set enableEachUniqueValue(value: boolean | cdktf.IResolvable); resetEnableEachUniqueValue(): void; get enableEachUniqueValueInput(): boolean | cdktf.IResolvable | undefined; private _type?; get type(): string; set type(value: string); get typeInput(): string | undefined; private _value?; get value(): string; set value(value: string); resetValue(): void; get valueInput(): string | undefined; } export declare class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsOutputReference; } export interface ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#auto_deploy_confidence_threshold ComputeSecurityPolicy#auto_deploy_confidence_threshold} */ readonly autoDeployConfidenceThreshold?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#auto_deploy_expiration_sec ComputeSecurityPolicy#auto_deploy_expiration_sec} */ readonly autoDeployExpirationSec?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#auto_deploy_impacted_baseline_threshold ComputeSecurityPolicy#auto_deploy_impacted_baseline_threshold} */ readonly autoDeployImpactedBaselineThreshold?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#auto_deploy_load_threshold ComputeSecurityPolicy#auto_deploy_load_threshold} */ readonly autoDeployLoadThreshold?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#detection_absolute_qps ComputeSecurityPolicy#detection_absolute_qps} */ readonly detectionAbsoluteQps?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#detection_load_threshold ComputeSecurityPolicy#detection_load_threshold} */ readonly detectionLoadThreshold?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#detection_relative_to_baseline_qps ComputeSecurityPolicy#detection_relative_to_baseline_qps} */ readonly detectionRelativeToBaselineQps?: number; /** * The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#name ComputeSecurityPolicy#name} */ readonly name: string; /** * traffic_granularity_configs block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#traffic_granularity_configs ComputeSecurityPolicy#traffic_granularity_configs} */ readonly trafficGranularityConfigs?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs[] | cdktf.IResolvable; } export declare function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs | cdktf.IResolvable): any; export declare function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsToHclTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs | cdktf.IResolvable): any; export declare class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs | cdktf.IResolvable | undefined; set internalValue(value: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs | cdktf.IResolvable | undefined); private _autoDeployConfidenceThreshold?; get autoDeployConfidenceThreshold(): number; set autoDeployConfidenceThreshold(value: number); resetAutoDeployConfidenceThreshold(): void; get autoDeployConfidenceThresholdInput(): number | undefined; private _autoDeployExpirationSec?; get autoDeployExpirationSec(): number; set autoDeployExpirationSec(value: number); resetAutoDeployExpirationSec(): void; get autoDeployExpirationSecInput(): number | undefined; private _autoDeployImpactedBaselineThreshold?; get autoDeployImpactedBaselineThreshold(): number; set autoDeployImpactedBaselineThreshold(value: number); resetAutoDeployImpactedBaselineThreshold(): void; get autoDeployImpactedBaselineThresholdInput(): number | undefined; private _autoDeployLoadThreshold?; get autoDeployLoadThreshold(): number; set autoDeployLoadThreshold(value: number); resetAutoDeployLoadThreshold(): void; get autoDeployLoadThresholdInput(): number | undefined; private _detectionAbsoluteQps?; get detectionAbsoluteQps(): number; set detectionAbsoluteQps(value: number); resetDetectionAbsoluteQps(): void; get detectionAbsoluteQpsInput(): number | undefined; private _detectionLoadThreshold?; get detectionLoadThreshold(): number; set detectionLoadThreshold(value: number); resetDetectionLoadThreshold(): void; get detectionLoadThresholdInput(): number | undefined; private _detectionRelativeToBaselineQps?; get detectionRelativeToBaselineQps(): number; set detectionRelativeToBaselineQps(value: number); resetDetectionRelativeToBaselineQps(): void; get detectionRelativeToBaselineQpsInput(): number | undefined; private _name?; get name(): string; set name(value: string); get nameInput(): string | undefined; private _trafficGranularityConfigs; get trafficGranularityConfigs(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigsList; putTrafficGranularityConfigs(value: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs[] | cdktf.IResolvable): void; resetTrafficGranularityConfigs(): void; get trafficGranularityConfigsInput(): cdktf.IResolvable | ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsTrafficGranularityConfigs[] | undefined; } export declare class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsOutputReference; } export interface ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { /** * If set to true, enables CAAP for L7 DDoS detection. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#enable ComputeSecurityPolicy#enable} */ readonly enable?: boolean | cdktf.IResolvable; /** * Rule visibility. Supported values include: "STANDARD", "PREMIUM". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#rule_visibility ComputeSecurityPolicy#rule_visibility} */ readonly ruleVisibility?: string; /** * threshold_configs block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#threshold_configs ComputeSecurityPolicy#threshold_configs} */ readonly thresholdConfigs?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs[] | cdktf.IResolvable; } export declare function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference | ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig): any; export declare function computeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigToHclTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference | ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig): any; export declare class ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference 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(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig | undefined; set internalValue(value: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig | undefined); private _enable?; get enable(): boolean | cdktf.IResolvable; set enable(value: boolean | cdktf.IResolvable); resetEnable(): void; get enableInput(): boolean | cdktf.IResolvable | undefined; private _ruleVisibility?; get ruleVisibility(): string; set ruleVisibility(value: string); resetRuleVisibility(): void; get ruleVisibilityInput(): string | undefined; private _thresholdConfigs; get thresholdConfigs(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigsList; putThresholdConfigs(value: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs[] | cdktf.IResolvable): void; resetThresholdConfigs(): void; get thresholdConfigsInput(): cdktf.IResolvable | ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigs[] | undefined; } export interface ComputeSecurityPolicyAdaptiveProtectionConfig { /** * layer_7_ddos_defense_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#layer_7_ddos_defense_config ComputeSecurityPolicy#layer_7_ddos_defense_config} */ readonly layer7DdosDefenseConfig?: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig; } export declare function computeSecurityPolicyAdaptiveProtectionConfigToTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference | ComputeSecurityPolicyAdaptiveProtectionConfig): any; export declare function computeSecurityPolicyAdaptiveProtectionConfigToHclTerraform(struct?: ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference | ComputeSecurityPolicyAdaptiveProtectionConfig): any; export declare class ComputeSecurityPolicyAdaptiveProtectionConfigOutputReference 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(): ComputeSecurityPolicyAdaptiveProtectionConfig | undefined; set internalValue(value: ComputeSecurityPolicyAdaptiveProtectionConfig | undefined); private _layer7DdosDefenseConfig; get layer7DdosDefenseConfig(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputReference; putLayer7DdosDefenseConfig(value: ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig): void; resetLayer7DdosDefenseConfig(): void; get layer7DdosDefenseConfigInput(): ComputeSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig | undefined; } export interface ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig { /** * A list of custom Content-Type header values to apply the JSON parsing. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#content_types ComputeSecurityPolicy#content_types} */ readonly contentTypes: string[]; } export declare function computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToTerraform(struct?: ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference | ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig): any; export declare function computeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigToHclTerraform(struct?: ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference | ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig): any; export declare class ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference 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(): ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig | undefined; set internalValue(value: ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig | undefined); private _contentTypes?; get contentTypes(): string[]; set contentTypes(value: string[]); get contentTypesInput(): string[] | undefined; } export interface ComputeSecurityPolicyAdvancedOptionsConfig { /** * JSON body parsing. Supported values include: "DISABLED", "STANDARD". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#json_parsing ComputeSecurityPolicy#json_parsing} */ readonly jsonParsing?: string; /** * Logging level. Supported values include: "NORMAL", "VERBOSE". * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#log_level ComputeSecurityPolicy#log_level} */ readonly logLevel?: string; /** * An optional list of case-insensitive request header names to use for resolving the callers client IP address. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#user_ip_request_headers ComputeSecurityPolicy#user_ip_request_headers} */ readonly userIpRequestHeaders?: string[]; /** * json_custom_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#json_custom_config ComputeSecurityPolicy#json_custom_config} */ readonly jsonCustomConfig?: ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig; } export declare function computeSecurityPolicyAdvancedOptionsConfigToTerraform(struct?: ComputeSecurityPolicyAdvancedOptionsConfigOutputReference | ComputeSecurityPolicyAdvancedOptionsConfig): any; export declare function computeSecurityPolicyAdvancedOptionsConfigToHclTerraform(struct?: ComputeSecurityPolicyAdvancedOptionsConfigOutputReference | ComputeSecurityPolicyAdvancedOptionsConfig): any; export declare class ComputeSecurityPolicyAdvancedOptionsConfigOutputReference 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(): ComputeSecurityPolicyAdvancedOptionsConfig | undefined; set internalValue(value: ComputeSecurityPolicyAdvancedOptionsConfig | undefined); private _jsonParsing?; get jsonParsing(): string; set jsonParsing(value: string); resetJsonParsing(): void; get jsonParsingInput(): string | undefined; private _logLevel?; get logLevel(): string; set logLevel(value: string); resetLogLevel(): void; get logLevelInput(): string | undefined; private _userIpRequestHeaders?; get userIpRequestHeaders(): string[]; set userIpRequestHeaders(value: string[]); resetUserIpRequestHeaders(): void; get userIpRequestHeadersInput(): string[] | undefined; private _jsonCustomConfig; get jsonCustomConfig(): ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputReference; putJsonCustomConfig(value: ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig): void; resetJsonCustomConfig(): void; get jsonCustomConfigInput(): ComputeSecurityPolicyAdvancedOptionsConfigJsonCustomConfig | undefined; } export interface ComputeSecurityPolicyRecaptchaOptionsConfig { /** * A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#redirect_site_key ComputeSecurityPolicy#redirect_site_key} */ readonly redirectSiteKey: string; } export declare function computeSecurityPolicyRecaptchaOptionsConfigToTerraform(struct?: ComputeSecurityPolicyRecaptchaOptionsConfigOutputReference | ComputeSecurityPolicyRecaptchaOptionsConfig): any; export declare function computeSecurityPolicyRecaptchaOptionsConfigToHclTerraform(struct?: ComputeSecurityPolicyRecaptchaOptionsConfigOutputReference | ComputeSecurityPolicyRecaptchaOptionsConfig): any; export declare class ComputeSecurityPolicyRecaptchaOptionsConfigOutputReference 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(): ComputeSecurityPolicyRecaptchaOptionsConfig | undefined; set internalValue(value: ComputeSecurityPolicyRecaptchaOptionsConfig | undefined); private _redirectSiteKey?; get redirectSiteKey(): string; set redirectSiteKey(value: string); get redirectSiteKeyInput(): string | undefined; } export interface ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds { /** * The name of the header to set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#header_name ComputeSecurityPolicy#header_name} */ readonly headerName: string; /** * The value to set the named header to. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#header_value ComputeSecurityPolicy#header_value} */ readonly headerValue?: string; } export declare function computeSecurityPolicyRuleHeaderActionRequestHeadersToAddsToTerraform(struct?: ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds | cdktf.IResolvable): any; export declare function computeSecurityPolicyRuleHeaderActionRequestHeadersToAddsToHclTerraform(struct?: ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds | cdktf.IResolvable): any; export declare class ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAddsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds | cdktf.IResolvable | undefined; set internalValue(value: ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds | cdktf.IResolvable | undefined); private _headerName?; get headerName(): string; set headerName(value: string); get headerNameInput(): string | undefined; private _headerValue?; get headerValue(): string; set headerValue(value: string); resetHeaderValue(): void; get headerValueInput(): string | undefined; } export declare class ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAddsList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAddsOutputReference; } export interface ComputeSecurityPolicyRuleHeaderAction { /** * request_headers_to_adds block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#request_headers_to_adds ComputeSecurityPolicy#request_headers_to_adds} */ readonly requestHeadersToAdds: ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds[] | cdktf.IResolvable; } export declare function computeSecurityPolicyRuleHeaderActionToTerraform(struct?: ComputeSecurityPolicyRuleHeaderActionOutputReference | ComputeSecurityPolicyRuleHeaderAction): any; export declare function computeSecurityPolicyRuleHeaderActionToHclTerraform(struct?: ComputeSecurityPolicyRuleHeaderActionOutputReference | ComputeSecurityPolicyRuleHeaderAction): any; export declare class ComputeSecurityPolicyRuleHeaderActionOutputReference 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(): ComputeSecurityPolicyRuleHeaderAction | undefined; set internalValue(value: ComputeSecurityPolicyRuleHeaderAction | undefined); private _requestHeadersToAdds; get requestHeadersToAdds(): ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAddsList; putRequestHeadersToAdds(value: ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds[] | cdktf.IResolvable): void; get requestHeadersToAddsInput(): cdktf.IResolvable | ComputeSecurityPolicyRuleHeaderActionRequestHeadersToAdds[] | undefined; } export interface ComputeSecurityPolicyRuleMatchConfig { /** * Set of IP addresses or ranges (IPV4 or IPV6) in CIDR notation to match against inbound traffic. There is a limit of 10 IP ranges per rule. A value of '*' matches all IPs (can be used to override the default behavior). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#src_ip_ranges ComputeSecurityPolicy#src_ip_ranges} */ readonly srcIpRanges: string[]; } export declare function computeSecurityPolicyRuleMatchConfigToTerraform(struct?: ComputeSecurityPolicyRuleMatchConfigOutputReference | ComputeSecurityPolicyRuleMatchConfig): any; export declare function computeSecurityPolicyRuleMatchConfigToHclTerraform(struct?: ComputeSecurityPolicyRuleMatchConfigOutputReference | ComputeSecurityPolicyRuleMatchConfig): any; export declare class ComputeSecurityPolicyRuleMatchConfigOutputReference 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(): ComputeSecurityPolicyRuleMatchConfig | undefined; set internalValue(value: ComputeSecurityPolicyRuleMatchConfig | undefined); private _srcIpRanges?; get srcIpRanges(): string[]; set srcIpRanges(value: string[]); get srcIpRangesInput(): string[] | undefined; } export interface ComputeSecurityPolicyRuleMatchExpr { /** * Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#expression ComputeSecurityPolicy#expression} */ readonly expression: string; } export declare function computeSecurityPolicyRuleMatchExprToTerraform(struct?: ComputeSecurityPolicyRuleMatchExprOutputReference | ComputeSecurityPolicyRuleMatchExpr): any; export declare function computeSecurityPolicyRuleMatchExprToHclTerraform(struct?: ComputeSecurityPolicyRuleMatchExprOutputReference | ComputeSecurityPolicyRuleMatchExpr): any; export declare class ComputeSecurityPolicyRuleMatchExprOutputReference 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(): ComputeSecurityPolicyRuleMatchExpr | undefined; set internalValue(value: ComputeSecurityPolicyRuleMatchExpr | undefined); private _expression?; get expression(): string; set expression(value: string); get expressionInput(): string | undefined; } export interface ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions { /** * A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#action_token_site_keys ComputeSecurityPolicy#action_token_site_keys} */ readonly actionTokenSiteKeys?: string[]; /** * A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#session_token_site_keys ComputeSecurityPolicy#session_token_site_keys} */ readonly sessionTokenSiteKeys?: string[]; } export declare function computeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsToTerraform(struct?: ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputReference | ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions): any; export declare function computeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsToHclTerraform(struct?: ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputReference | ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions): any; export declare class ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputReference 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(): ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions | undefined; set internalValue(value: ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions | undefined); private _actionTokenSiteKeys?; get actionTokenSiteKeys(): string[]; set actionTokenSiteKeys(value: string[]); resetActionTokenSiteKeys(): void; get actionTokenSiteKeysInput(): string[] | undefined; private _sessionTokenSiteKeys?; get sessionTokenSiteKeys(): string[]; set sessionTokenSiteKeys(value: string[]); resetSessionTokenSiteKeys(): void; get sessionTokenSiteKeysInput(): string[] | undefined; } export interface ComputeSecurityPolicyRuleMatchExprOptions { /** * recaptcha_options block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#recaptcha_options ComputeSecurityPolicy#recaptcha_options} */ readonly recaptchaOptions: ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions; } export declare function computeSecurityPolicyRuleMatchExprOptionsToTerraform(struct?: ComputeSecurityPolicyRuleMatchExprOptionsOutputReference | ComputeSecurityPolicyRuleMatchExprOptions): any; export declare function computeSecurityPolicyRuleMatchExprOptionsToHclTerraform(struct?: ComputeSecurityPolicyRuleMatchExprOptionsOutputReference | ComputeSecurityPolicyRuleMatchExprOptions): any; export declare class ComputeSecurityPolicyRuleMatchExprOptionsOutputReference 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(): ComputeSecurityPolicyRuleMatchExprOptions | undefined; set internalValue(value: ComputeSecurityPolicyRuleMatchExprOptions | undefined); private _recaptchaOptions; get recaptchaOptions(): ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputReference; putRecaptchaOptions(value: ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions): void; get recaptchaOptionsInput(): ComputeSecurityPolicyRuleMatchExprOptionsRecaptchaOptions | undefined; } export interface ComputeSecurityPolicyRuleMatch { /** * Predefined rule expression. If this field is specified, config must also be specified. Available options: SRC_IPS_V1: Must specify the corresponding src_ip_ranges field in config. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#versioned_expr ComputeSecurityPolicy#versioned_expr} */ readonly versionedExpr?: string; /** * config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#config ComputeSecurityPolicy#config} */ readonly config?: ComputeSecurityPolicyRuleMatchConfig; /** * expr block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#expr ComputeSecurityPolicy#expr} */ readonly expr?: ComputeSecurityPolicyRuleMatchExpr; /** * expr_options block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#expr_options ComputeSecurityPolicy#expr_options} */ readonly exprOptions?: ComputeSecurityPolicyRuleMatchExprOptions; } export declare function computeSecurityPolicyRuleMatchToTerraform(struct?: ComputeSecurityPolicyRuleMatchOutputReference | ComputeSecurityPolicyRuleMatch): any; export declare function computeSecurityPolicyRuleMatchToHclTerraform(struct?: ComputeSecurityPolicyRuleMatchOutputReference | ComputeSecurityPolicyRuleMatch): any; export declare class ComputeSecurityPolicyRuleMatchOutputReference 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(): ComputeSecurityPolicyRuleMatch | undefined; set internalValue(value: ComputeSecurityPolicyRuleMatch | undefined); private _versionedExpr?; get versionedExpr(): string; set versionedExpr(value: string); resetVersionedExpr(): void; get versionedExprInput(): string | undefined; private _config; get config(): ComputeSecurityPolicyRuleMatchConfigOutputReference; putConfig(value: ComputeSecurityPolicyRuleMatchConfig): void; resetConfig(): void; get configInput(): ComputeSecurityPolicyRuleMatchConfig | undefined; private _expr; get expr(): ComputeSecurityPolicyRuleMatchExprOutputReference; putExpr(value: ComputeSecurityPolicyRuleMatchExpr): void; resetExpr(): void; get exprInput(): ComputeSecurityPolicyRuleMatchExpr | undefined; private _exprOptions; get exprOptions(): ComputeSecurityPolicyRuleMatchExprOptionsOutputReference; putExprOptions(value: ComputeSecurityPolicyRuleMatchExprOptions): void; resetExprOptions(): void; get exprOptionsInput(): ComputeSecurityPolicyRuleMatchExprOptions | undefined; } export interface ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookie { /** * You can specify an exact match or a partial match by using a field operator and a field value. Available options: EQUALS: The operator matches if the field value equals the specified value. STARTS_WITH: The operator matches if the field value starts with the specified value. ENDS_WITH: The operator matches if the field value ends with the specified value. CONTAINS: The operator matches if the field value contains the specified value. EQUALS_ANY: The operator matches if the field value is any value. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#operator ComputeSecurityPolicy#operator} */ readonly operator: string; /** * A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#value ComputeSecurityPolicy#value} */ readonly value?: string; } export declare function computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieToTerraform(struct?: ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookie | cdktf.IResolvable): any; export declare function computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieToHclTerraform(struct?: ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookie | cdktf.IResolvable): any; export declare class ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookie | cdktf.IResolvable | undefined; set internalValue(value: ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookie | cdktf.IResolvable | undefined); private _operator?; get operator(): string; set operator(value: string); get operatorInput(): string | undefined; private _value?; get value(): string; set value(value: string); resetValue(): void; get valueInput(): string | undefined; } export declare class ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookie[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookieOutputReference; } export interface ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { /** * You can specify an exact match or a partial match by using a field operator and a field value. Available options: EQUALS: The operator matches if the field value equals the specified value. STARTS_WITH: The operator matches if the field value starts with the specified value. ENDS_WITH: The operator matches if the field value ends with the specified value. CONTAINS: The operator matches if the field value contains the specified value. EQUALS_ANY: The operator matches if the field value is any value. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#operator ComputeSecurityPolicy#operator} */ readonly operator: string; /** * A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_security_policy#value ComputeSecurityPolicy#value} */ readonly value?: string; } export declare function computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderToTerraform(struct?: ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader | cdktf.IResolvable): any; export declare function computeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderToHclTerraform(struct?: ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader | cdktf.IResolvable): any; export declare class ComputeSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterp