import * as core from "@terrascript/core"; export interface CustomResponseBodyArgs extends core.SchemaArgs { content: string | core.StringOut; contentType: string | core.StringOut; key: string | core.StringOut; } export declare class CustomResponseBody extends core.Schema { content: string | core.StringOut; contentType: string | core.StringOut; key: string | core.StringOut; } export interface BodyArgs extends core.SchemaArgs { } export declare class Body extends core.Schema { } export interface MethodArgs extends core.SchemaArgs { } export declare class Method extends core.Schema { } export interface QueryStringArgs extends core.SchemaArgs { } export declare class QueryString extends core.Schema { } export interface SingleHeaderArgs extends core.SchemaArgs { name: string | core.StringOut; } export declare class SingleHeader extends core.Schema { name: string | core.StringOut; } export interface SingleQueryArgumentArgs extends core.SchemaArgs { name: string | core.StringOut; } export declare class SingleQueryArgument extends core.Schema { name: string | core.StringOut; } export interface UriPathArgs extends core.SchemaArgs { } export declare class UriPath extends core.Schema { } export interface AllQueryArgumentsArgs extends core.SchemaArgs { } export declare class AllQueryArguments extends core.Schema { } export interface FieldToMatchArgs extends core.SchemaArgs { allQueryArguments?: AllQueryArguments; body?: Body; method?: Method; queryString?: QueryString; singleHeader?: SingleHeader; singleQueryArgument?: SingleQueryArgument; uriPath?: UriPath; } export declare class FieldToMatch extends core.Schema { allQueryArguments?: AllQueryArguments; body?: Body; method?: Method; queryString?: QueryString; singleHeader?: SingleHeader; singleQueryArgument?: SingleQueryArgument; uriPath?: UriPath; } export interface TextTransformationArgs extends core.SchemaArgs { priority: number | core.NumberOut; type: string | core.StringOut; } export declare class TextTransformation extends core.Schema { priority: number | core.NumberOut; type: string | core.StringOut; } export interface SqliMatchStatementArgs extends core.SchemaArgs { fieldToMatch?: FieldToMatch; textTransformation: core.Array | core.ArrayOut; } export declare class SqliMatchStatement extends core.Schema { fieldToMatch?: FieldToMatch; textTransformation: core.Array | core.ArrayOut; } export interface LabelMatchStatementArgs extends core.SchemaArgs { key: string | core.StringOut; scope: string | core.StringOut; } export declare class LabelMatchStatement extends core.Schema { key: string | core.StringOut; scope: string | core.StringOut; } export interface ExcludedRuleArgs extends core.SchemaArgs { name: string | core.StringOut; } export declare class ExcludedRule extends core.Schema { name: string | core.StringOut; } export interface RuleGroupReferenceStatementArgs extends core.SchemaArgs { arn: string | core.StringOut; excludedRule?: core.Array | core.ArrayOut; } export declare class RuleGroupReferenceStatement extends core.Schema { arn: string | core.StringOut; excludedRule?: core.Array | core.ArrayOut; } export interface XssMatchStatementArgs extends core.SchemaArgs { fieldToMatch?: FieldToMatch; textTransformation: core.Array | core.ArrayOut; } export declare class XssMatchStatement extends core.Schema { fieldToMatch?: FieldToMatch; textTransformation: core.Array | core.ArrayOut; } export interface ByteMatchStatementArgs extends core.SchemaArgs { fieldToMatch?: FieldToMatch; positionalConstraint: string | core.StringOut; searchString: string | core.StringOut; textTransformation: core.Array | core.ArrayOut; } export declare class ByteMatchStatement extends core.Schema { fieldToMatch?: FieldToMatch; positionalConstraint: string | core.StringOut; searchString: string | core.StringOut; textTransformation: core.Array | core.ArrayOut; } export interface ForwardedIpConfigArgs extends core.SchemaArgs { fallbackBehavior: string | core.StringOut; headerName: string | core.StringOut; } export declare class ForwardedIpConfig extends core.Schema { fallbackBehavior: string | core.StringOut; headerName: string | core.StringOut; } export interface RegexPatternSetReferenceStatementArgs extends core.SchemaArgs { arn: string | core.StringOut; fieldToMatch?: FieldToMatch; textTransformation: core.Array | core.ArrayOut; } export declare class RegexPatternSetReferenceStatement extends core.Schema { arn: string | core.StringOut; fieldToMatch?: FieldToMatch; textTransformation: core.Array | core.ArrayOut; } export interface SizeConstraintStatementArgs extends core.SchemaArgs { comparisonOperator: string | core.StringOut; fieldToMatch?: FieldToMatch; size: number | core.NumberOut; textTransformation: core.Array | core.ArrayOut; } export declare class SizeConstraintStatement extends core.Schema { comparisonOperator: string | core.StringOut; fieldToMatch?: FieldToMatch; size: number | core.NumberOut; textTransformation: core.Array | core.ArrayOut; } export interface IpSetForwardedIpConfigArgs extends core.SchemaArgs { fallbackBehavior: string | core.StringOut; headerName: string | core.StringOut; position: string | core.StringOut; } export declare class IpSetForwardedIpConfig extends core.Schema { fallbackBehavior: string | core.StringOut; headerName: string | core.StringOut; position: string | core.StringOut; } export interface IpSetReferenceStatementArgs extends core.SchemaArgs { arn: string | core.StringOut; ipSetForwardedIpConfig?: IpSetForwardedIpConfig; } export declare class IpSetReferenceStatement extends core.Schema { arn: string | core.StringOut; ipSetForwardedIpConfig?: IpSetForwardedIpConfig; } export interface GeoMatchStatementArgs extends core.SchemaArgs { countryCodes: core.Array | core.ArrayOut; forwardedIpConfig?: ForwardedIpConfig; } export declare class GeoMatchStatement extends core.Schema { countryCodes: core.Array | core.ArrayOut; forwardedIpConfig?: ForwardedIpConfig; } export interface ScopeDownStatementAndStatementStatementNotStatementStatementArgs extends core.SchemaArgs { byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class ScopeDownStatementAndStatementStatementNotStatementStatement extends core.Schema { byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export interface ScopeDownStatementAndStatementStatementNotStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class ScopeDownStatementAndStatementStatementNotStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ScopeDownStatementAndStatementStatementAndStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class ScopeDownStatementAndStatementStatementAndStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ScopeDownStatementAndStatementStatementOrStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class ScopeDownStatementAndStatementStatementOrStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ScopeDownStatementAndStatementStatementArgs extends core.SchemaArgs { andStatement?: ScopeDownStatementAndStatementStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: ScopeDownStatementAndStatementStatementNotStatement; orStatement?: ScopeDownStatementAndStatementStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class ScopeDownStatementAndStatementStatement extends core.Schema { andStatement?: ScopeDownStatementAndStatementStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: ScopeDownStatementAndStatementStatementNotStatement; orStatement?: ScopeDownStatementAndStatementStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export interface ScopeDownStatementAndStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class ScopeDownStatementAndStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ScopeDownStatementNotStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class ScopeDownStatementNotStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ScopeDownStatementOrStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class ScopeDownStatementOrStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ScopeDownStatementArgs extends core.SchemaArgs { andStatement?: ScopeDownStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: ScopeDownStatementNotStatement; orStatement?: ScopeDownStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class ScopeDownStatement extends core.Schema { andStatement?: ScopeDownStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: ScopeDownStatementNotStatement; orStatement?: ScopeDownStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export interface RateBasedStatementArgs extends core.SchemaArgs { aggregateKeyType?: string | core.StringOut; forwardedIpConfig?: ForwardedIpConfig; limit: number | core.NumberOut; scopeDownStatement?: ScopeDownStatement; } export declare class RateBasedStatement extends core.Schema { aggregateKeyType?: string | core.StringOut; forwardedIpConfig?: ForwardedIpConfig; limit: number | core.NumberOut; scopeDownStatement?: ScopeDownStatement; } export interface RuleStatementOrStatementStatementArgs extends core.SchemaArgs { andStatement?: ScopeDownStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: ScopeDownStatementNotStatement; orStatement?: ScopeDownStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class RuleStatementOrStatementStatement extends core.Schema { andStatement?: ScopeDownStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: ScopeDownStatementNotStatement; orStatement?: ScopeDownStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export interface RuleStatementOrStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class RuleStatementOrStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface RuleStatementAndStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class RuleStatementAndStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface ManagedRuleGroupStatementArgs extends core.SchemaArgs { excludedRule?: core.Array | core.ArrayOut; name: string | core.StringOut; scopeDownStatement?: ScopeDownStatement; vendorName: string | core.StringOut; version?: string | core.StringOut; } export declare class ManagedRuleGroupStatement extends core.Schema { excludedRule?: core.Array | core.ArrayOut; name: string | core.StringOut; scopeDownStatement?: ScopeDownStatement; vendorName: string | core.StringOut; version?: string | core.StringOut; } export interface RuleStatementNotStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class RuleStatementNotStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface RuleStatementArgs extends core.SchemaArgs { andStatement?: RuleStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; managedRuleGroupStatement?: ManagedRuleGroupStatement; notStatement?: RuleStatementNotStatement; orStatement?: RuleStatementOrStatement; rateBasedStatement?: RateBasedStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; ruleGroupReferenceStatement?: RuleGroupReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class RuleStatement extends core.Schema { andStatement?: RuleStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; managedRuleGroupStatement?: ManagedRuleGroupStatement; notStatement?: RuleStatementNotStatement; orStatement?: RuleStatementOrStatement; rateBasedStatement?: RateBasedStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; ruleGroupReferenceStatement?: RuleGroupReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export interface VisibilityConfigArgs extends core.SchemaArgs { cloudwatchMetricsEnabled: boolean | core.BooleanOut; metricName: string | core.StringOut; sampledRequestsEnabled: boolean | core.BooleanOut; } export declare class VisibilityConfig extends core.Schema { cloudwatchMetricsEnabled: boolean | core.BooleanOut; metricName: string | core.StringOut; sampledRequestsEnabled: boolean | core.BooleanOut; } export interface ResponseHeaderArgs extends core.SchemaArgs { name: string | core.StringOut; value: string | core.StringOut; } export declare class ResponseHeader extends core.Schema { name: string | core.StringOut; value: string | core.StringOut; } export interface CustomResponseArgs extends core.SchemaArgs { customResponseBodyKey?: string | core.StringOut; responseCode: number | core.NumberOut; responseHeader?: core.Array | core.ArrayOut; } export declare class CustomResponse extends core.Schema { customResponseBodyKey?: string | core.StringOut; responseCode: number | core.NumberOut; responseHeader?: core.Array | core.ArrayOut; } export interface BlockArgs extends core.SchemaArgs { customResponse?: CustomResponse; } export declare class Block extends core.Schema { customResponse?: CustomResponse; } export interface InsertHeaderArgs extends core.SchemaArgs { name: string | core.StringOut; value: string | core.StringOut; } export declare class InsertHeader extends core.Schema { name: string | core.StringOut; value: string | core.StringOut; } export interface CustomRequestHandlingArgs extends core.SchemaArgs { insertHeader: core.Array | core.ArrayOut; } export declare class CustomRequestHandling extends core.Schema { insertHeader: core.Array | core.ArrayOut; } export interface CaptchaArgs extends core.SchemaArgs { customRequestHandling?: CustomRequestHandling; } export declare class Captcha extends core.Schema { customRequestHandling?: CustomRequestHandling; } export interface ActionCountArgs extends core.SchemaArgs { customRequestHandling?: CustomRequestHandling; } export declare class ActionCount extends core.Schema { customRequestHandling?: CustomRequestHandling; } export interface AllowArgs extends core.SchemaArgs { customRequestHandling?: CustomRequestHandling; } export declare class Allow extends core.Schema { customRequestHandling?: CustomRequestHandling; } export interface ActionArgs extends core.SchemaArgs { allow?: Allow; block?: Block; captcha?: Captcha; count?: ActionCount; } export declare class Action extends core.Schema { allow?: Allow; block?: Block; captcha?: Captcha; count?: ActionCount; } export interface OverrideActionCountArgs extends core.SchemaArgs { } export declare class OverrideActionCount extends core.Schema { } export interface NoneArgs extends core.SchemaArgs { } export declare class None extends core.Schema { } export interface OverrideActionArgs extends core.SchemaArgs { count?: OverrideActionCount; none?: None; } export declare class OverrideAction extends core.Schema { count?: OverrideActionCount; none?: None; } export interface RuleLabelArgs extends core.SchemaArgs { name: string | core.StringOut; } export declare class RuleLabel extends core.Schema { name: string | core.StringOut; } export interface RuleArgs extends core.SchemaArgs { action?: Action; name: string | core.StringOut; overrideAction?: OverrideAction; priority: number | core.NumberOut; ruleLabel?: core.Array | core.ArrayOut; statement: RuleStatement; visibilityConfig: VisibilityConfig; } export declare class Rule extends core.Schema { action?: Action; name: string | core.StringOut; overrideAction?: OverrideAction; priority: number | core.NumberOut; ruleLabel?: core.Array | core.ArrayOut; statement: RuleStatement; visibilityConfig: VisibilityConfig; } export interface DefaultActionArgs extends core.SchemaArgs { allow?: Allow; block?: Block; } export declare class DefaultAction extends core.Schema { allow?: Allow; block?: Block; } export interface V2WebAclArgs extends core.ResourceArgs { /** * (Optional) Defines custom response bodies that can be referenced by `custom_response` actions. See [ * Custom Response Body](#custom-response-body) below for details. */ customResponseBody?: core.Array | core.ArrayOut; /** * (Required) Action to perform if none of the `rules` contained in the WebACL match. See [Default Acti * on](#default-action) below for details. */ defaultAction: DefaultAction; /** * (Optional) Friendly description of the WebACL. */ description?: string | core.StringOut; /** * (Required) Friendly name of the WebACL. */ name: string | core.StringOut; /** * (Optional) Rule blocks used to identify the web requests that you want to `allow`, `block`, or `coun * t`. See [Rules](#rules) below for details. */ rule?: core.Array | core.ArrayOut; /** * (Required) Specifies whether this is for an AWS CloudFront distribution or for a regional applicatio * n. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you must also specify the r * egion `us-east-1` (N. Virginia) on the AWS provider. */ scope: string | core.StringOut; /** * (Optional) Map of key-value pairs to associate with the resource. If configured with a provider [`de * fault_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#d * efault_tags-configuration-block) present, tags with matching keys will overwrite those defined at th * e provider-level. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) Defines and enables Amazon CloudWatch metrics and web request sample collection. See [Vis * ibility Configuration](#visibility-configuration) below for details. */ visibilityConfig: VisibilityConfig; } export declare class V2WebAcl extends core.Resource { /** * (Required) The Amazon Resource Name (ARN) of the IP Set that this statement references. */ arn: string | core.StringOut; /** * Web ACL capacity units (WCUs) currently being used by this web ACL. */ capacity: number | core.NumberOut; /** * (Optional) Defines custom response bodies that can be referenced by `custom_response` actions. See [ * Custom Response Body](#custom-response-body) below for details. */ customResponseBody?: core.Array | core.ArrayOut; /** * (Required) Action to perform if none of the `rules` contained in the WebACL match. See [Default Acti * on](#default-action) below for details. */ defaultAction: DefaultAction; /** * (Optional) Friendly description of the WebACL. */ description?: string | core.StringOut; /** * The ID of the WAF WebACL. */ id: string | core.StringOut; lockToken: string | core.StringOut; /** * (Required) Friendly name of the WebACL. */ name: string | core.StringOut; /** * (Optional) Rule blocks used to identify the web requests that you want to `allow`, `block`, or `coun * t`. See [Rules](#rules) below for details. */ rule?: core.Array | core.ArrayOut; /** * (Required) Specifies whether this is for an AWS CloudFront distribution or for a regional applicatio * n. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you must also specify the r * egion `us-east-1` (N. Virginia) on the AWS provider. */ scope: string | core.StringOut; /** * (Optional) Map of key-value pairs to associate with the resource. If configured with a provider [`de * fault_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#d * efault_tags-configuration-block) present, tags with matching keys will overwrite those defined at th * e provider-level. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) Defines and enables Amazon CloudWatch metrics and web request sample collection. See [Vis * ibility Configuration](#visibility-configuration) below for details. */ visibilityConfig: VisibilityConfig; constructor(name: string, args?: V2WebAclArgs); getNamespace(): string; } //# sourceMappingURL=v2_web_acl.d.ts.map