import * as core from "@terrascript/core"; 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 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 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 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 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 BodyArgs extends core.SchemaArgs { } export declare class Body 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 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 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 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 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 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 RuleStatementOrStatementStatementNotStatementStatementArgs extends core.SchemaArgs { byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class RuleStatementOrStatementStatementNotStatementStatement extends core.Schema { byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export interface RuleStatementOrStatementStatementNotStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class RuleStatementOrStatementStatementNotStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface RuleStatementOrStatementStatementOrStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class RuleStatementOrStatementStatementOrStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface RuleStatementOrStatementStatementAndStatementArgs extends core.SchemaArgs { statement: core.Array | core.ArrayOut; } export declare class RuleStatementOrStatementStatementAndStatement extends core.Schema { statement: core.Array | core.ArrayOut; } export interface RuleStatementOrStatementStatementArgs extends core.SchemaArgs { andStatement?: RuleStatementOrStatementStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: RuleStatementOrStatementStatementNotStatement; orStatement?: RuleStatementOrStatementStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class RuleStatementOrStatementStatement extends core.Schema { andStatement?: RuleStatementOrStatementStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: RuleStatementOrStatementStatementNotStatement; orStatement?: RuleStatementOrStatementStatementOrStatement; 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 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; notStatement?: RuleStatementNotStatement; orStatement?: RuleStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } export declare class RuleStatement extends core.Schema { andStatement?: RuleStatementAndStatement; byteMatchStatement?: ByteMatchStatement; geoMatchStatement?: GeoMatchStatement; ipSetReferenceStatement?: IpSetReferenceStatement; labelMatchStatement?: LabelMatchStatement; notStatement?: RuleStatementNotStatement; orStatement?: RuleStatementOrStatement; regexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement; sizeConstraintStatement?: SizeConstraintStatement; sqliMatchStatement?: SqliMatchStatement; xssMatchStatement?: XssMatchStatement; } 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 AllowArgs extends core.SchemaArgs { customRequestHandling?: CustomRequestHandling; } export declare class Allow extends core.Schema { customRequestHandling?: CustomRequestHandling; } 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 CountArgs extends core.SchemaArgs { customRequestHandling?: CustomRequestHandling; } export declare class Count extends core.Schema { customRequestHandling?: CustomRequestHandling; } export interface ActionArgs extends core.SchemaArgs { allow?: Allow; block?: Block; count?: Count; } export declare class Action extends core.Schema { allow?: Allow; block?: Block; count?: Count; } 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; 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; priority: number | core.NumberOut; ruleLabel?: core.Array | core.ArrayOut; statement: RuleStatement; visibilityConfig: VisibilityConfig; } 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 V2RuleGroupArgs extends core.ResourceArgs { /** * (Required, Forces new resource) The web ACL capacity units (WCUs) required for this rule group. See * [here](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateRuleGroup.html#API_CreateRuleGr * oup_RequestSyntax) for general information and [here](https://docs.aws.amazon.com/waf/latest/develop * erguide/waf-rule-statements-list.html) for capacity specific information. */ 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; /** * (Optional) A friendly description of the rule group. */ description?: string | core.StringOut; /** * (Required, Forces new resource) A friendly name of the rule group. */ name: string | core.StringOut; /** * (Optional) The rule blocks used to identify the web requests that you want to `allow`, `block`, or ` * count`. See [Rules](#rules) below for details. */ rule?: core.Array | core.ArrayOut; /** * (Required, Forces new resource) Specifies whether this is for an AWS CloudFront distribution or for * a regional application. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you mu * st also specify the region `us-east-1` (N. Virginia) on the AWS provider. */ scope: string | core.StringOut; /** * (Optional) An array of key:value pairs to associate with the resource. If configured with a provider * [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/d * ocs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined * at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-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 V2RuleGroup extends core.Resource { /** * (Required) The Amazon Resource Name (ARN) of the IP Set that this statement references. */ arn: string | core.StringOut; /** * (Required, Forces new resource) The web ACL capacity units (WCUs) required for this rule group. See * [here](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateRuleGroup.html#API_CreateRuleGr * oup_RequestSyntax) for general information and [here](https://docs.aws.amazon.com/waf/latest/develop * erguide/waf-rule-statements-list.html) for capacity specific information. */ 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; /** * (Optional) A friendly description of the rule group. */ description?: string | core.StringOut; /** * The ID of the WAF rule group. */ id: string | core.StringOut; lockToken: string | core.StringOut; /** * (Required, Forces new resource) A friendly name of the rule group. */ name: string | core.StringOut; /** * (Optional) The rule blocks used to identify the web requests that you want to `allow`, `block`, or ` * count`. See [Rules](#rules) below for details. */ rule?: core.Array | core.ArrayOut; /** * (Required, Forces new resource) Specifies whether this is for an AWS CloudFront distribution or for * a regional application. Valid values are `CLOUDFRONT` or `REGIONAL`. To work with CloudFront, you mu * st also specify the region `us-east-1` (N. Virginia) on the AWS provider. */ scope: string | core.StringOut; /** * (Optional) An array of key:value pairs to associate with the resource. If configured with a provider * [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/d * ocs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined * at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-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?: V2RuleGroupArgs); getNamespace(): string; } //# sourceMappingURL=v2_rule_group.d.ts.map