"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
    __setModuleDefault(result, mod);
    return result;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OverrideActionCount = exports.Action = exports.Captcha = exports.ActionCount = exports.VisibilityConfig = exports.RuleStatement = exports.ManagedRuleGroupStatement = exports.RuleStatementNotStatement = exports.RuleStatementAndStatement = exports.RuleGroupReferenceStatement = exports.ExcludedRule = exports.RuleStatementOrStatement = exports.RuleStatementOrStatementStatement = exports.RateBasedStatement = exports.ScopeDownStatement = exports.ScopeDownStatementAndStatement = exports.ScopeDownStatementNotStatement = exports.ScopeDownStatementOrStatement = exports.ScopeDownStatementOrStatementStatement = exports.ScopeDownStatementOrStatementStatementNotStatement = exports.ScopeDownStatementOrStatementStatementOrStatement = exports.ScopeDownStatementOrStatementStatementAndStatement = exports.ScopeDownStatementOrStatementStatementAndStatementStatement = exports.ByteMatchStatement = exports.XssMatchStatement = exports.SqliMatchStatement = exports.SizeConstraintStatement = exports.LabelMatchStatement = exports.IpSetReferenceStatement = exports.IpSetForwardedIpConfig = exports.RegexPatternSetReferenceStatement = exports.TextTransformation = exports.FieldToMatch = exports.Method = exports.Body = exports.AllQueryArguments = exports.UriPath = exports.SingleQueryArgument = exports.SingleHeader = exports.QueryString = exports.GeoMatchStatement = exports.ForwardedIpConfig = exports.DefaultAction = exports.Block = exports.CustomResponse = exports.ResponseHeader = exports.Allow = exports.CustomRequestHandling = exports.InsertHeader = exports.CustomResponseBody = void 0;
exports.V2WebAcl = exports.Rule = exports.RuleLabel = exports.OverrideAction = exports.None = void 0;
const core = __importStar(require("@terrascript/core"));
class CustomResponseBody extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomResponseBody.prototype, "content", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomResponseBody.prototype, "contentType", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomResponseBody.prototype, "key", void 0);
exports.CustomResponseBody = CustomResponseBody;
class InsertHeader extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], InsertHeader.prototype, "name", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], InsertHeader.prototype, "value", void 0);
exports.InsertHeader = InsertHeader;
class CustomRequestHandling extends core.Schema {
}
__decorate([
    core.attr(InsertHeader, { kind: "array" }),
    __metadata("design:type", Object)
], CustomRequestHandling.prototype, "insertHeader", void 0);
exports.CustomRequestHandling = CustomRequestHandling;
class Allow extends core.Schema {
}
__decorate([
    core.attr(CustomRequestHandling),
    __metadata("design:type", CustomRequestHandling)
], Allow.prototype, "customRequestHandling", void 0);
exports.Allow = Allow;
class ResponseHeader extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ResponseHeader.prototype, "name", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ResponseHeader.prototype, "value", void 0);
exports.ResponseHeader = ResponseHeader;
class CustomResponse extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], CustomResponse.prototype, "customResponseBodyKey", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], CustomResponse.prototype, "responseCode", void 0);
__decorate([
    core.attr(ResponseHeader, { kind: "array" }),
    __metadata("design:type", Object)
], CustomResponse.prototype, "responseHeader", void 0);
exports.CustomResponse = CustomResponse;
class Block extends core.Schema {
}
__decorate([
    core.attr(CustomResponse),
    __metadata("design:type", CustomResponse)
], Block.prototype, "customResponse", void 0);
exports.Block = Block;
class DefaultAction extends core.Schema {
}
__decorate([
    core.attr(Allow),
    __metadata("design:type", Allow)
], DefaultAction.prototype, "allow", void 0);
__decorate([
    core.attr(Block),
    __metadata("design:type", Block)
], DefaultAction.prototype, "block", void 0);
exports.DefaultAction = DefaultAction;
class ForwardedIpConfig extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ForwardedIpConfig.prototype, "fallbackBehavior", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ForwardedIpConfig.prototype, "headerName", void 0);
exports.ForwardedIpConfig = ForwardedIpConfig;
class GeoMatchStatement extends core.Schema {
}
__decorate([
    core.attr(String, { kind: "array" }),
    __metadata("design:type", Object)
], GeoMatchStatement.prototype, "countryCodes", void 0);
__decorate([
    core.attr(ForwardedIpConfig),
    __metadata("design:type", ForwardedIpConfig)
], GeoMatchStatement.prototype, "forwardedIpConfig", void 0);
exports.GeoMatchStatement = GeoMatchStatement;
class QueryString extends core.Schema {
}
exports.QueryString = QueryString;
class SingleHeader extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], SingleHeader.prototype, "name", void 0);
exports.SingleHeader = SingleHeader;
class SingleQueryArgument extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], SingleQueryArgument.prototype, "name", void 0);
exports.SingleQueryArgument = SingleQueryArgument;
class UriPath extends core.Schema {
}
exports.UriPath = UriPath;
class AllQueryArguments extends core.Schema {
}
exports.AllQueryArguments = AllQueryArguments;
class Body extends core.Schema {
}
exports.Body = Body;
class Method extends core.Schema {
}
exports.Method = Method;
class FieldToMatch extends core.Schema {
}
__decorate([
    core.attr(AllQueryArguments),
    __metadata("design:type", AllQueryArguments)
], FieldToMatch.prototype, "allQueryArguments", void 0);
__decorate([
    core.attr(Body),
    __metadata("design:type", Body)
], FieldToMatch.prototype, "body", void 0);
__decorate([
    core.attr(Method),
    __metadata("design:type", Method)
], FieldToMatch.prototype, "method", void 0);
__decorate([
    core.attr(QueryString),
    __metadata("design:type", QueryString)
], FieldToMatch.prototype, "queryString", void 0);
__decorate([
    core.attr(SingleHeader),
    __metadata("design:type", SingleHeader)
], FieldToMatch.prototype, "singleHeader", void 0);
__decorate([
    core.attr(SingleQueryArgument),
    __metadata("design:type", SingleQueryArgument)
], FieldToMatch.prototype, "singleQueryArgument", void 0);
__decorate([
    core.attr(UriPath),
    __metadata("design:type", UriPath)
], FieldToMatch.prototype, "uriPath", void 0);
exports.FieldToMatch = FieldToMatch;
class TextTransformation extends core.Schema {
}
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], TextTransformation.prototype, "priority", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], TextTransformation.prototype, "type", void 0);
exports.TextTransformation = TextTransformation;
class RegexPatternSetReferenceStatement extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], RegexPatternSetReferenceStatement.prototype, "arn", void 0);
__decorate([
    core.attr(FieldToMatch),
    __metadata("design:type", FieldToMatch)
], RegexPatternSetReferenceStatement.prototype, "fieldToMatch", void 0);
__decorate([
    core.attr(TextTransformation, { kind: "array" }),
    __metadata("design:type", Object)
], RegexPatternSetReferenceStatement.prototype, "textTransformation", void 0);
exports.RegexPatternSetReferenceStatement = RegexPatternSetReferenceStatement;
class IpSetForwardedIpConfig extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], IpSetForwardedIpConfig.prototype, "fallbackBehavior", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], IpSetForwardedIpConfig.prototype, "headerName", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], IpSetForwardedIpConfig.prototype, "position", void 0);
exports.IpSetForwardedIpConfig = IpSetForwardedIpConfig;
class IpSetReferenceStatement extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], IpSetReferenceStatement.prototype, "arn", void 0);
__decorate([
    core.attr(IpSetForwardedIpConfig),
    __metadata("design:type", IpSetForwardedIpConfig)
], IpSetReferenceStatement.prototype, "ipSetForwardedIpConfig", void 0);
exports.IpSetReferenceStatement = IpSetReferenceStatement;
class LabelMatchStatement extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LabelMatchStatement.prototype, "key", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], LabelMatchStatement.prototype, "scope", void 0);
exports.LabelMatchStatement = LabelMatchStatement;
class SizeConstraintStatement extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], SizeConstraintStatement.prototype, "comparisonOperator", void 0);
__decorate([
    core.attr(FieldToMatch),
    __metadata("design:type", FieldToMatch)
], SizeConstraintStatement.prototype, "fieldToMatch", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], SizeConstraintStatement.prototype, "size", void 0);
__decorate([
    core.attr(TextTransformation, { kind: "array" }),
    __metadata("design:type", Object)
], SizeConstraintStatement.prototype, "textTransformation", void 0);
exports.SizeConstraintStatement = SizeConstraintStatement;
class SqliMatchStatement extends core.Schema {
}
__decorate([
    core.attr(FieldToMatch),
    __metadata("design:type", FieldToMatch)
], SqliMatchStatement.prototype, "fieldToMatch", void 0);
__decorate([
    core.attr(TextTransformation, { kind: "array" }),
    __metadata("design:type", Object)
], SqliMatchStatement.prototype, "textTransformation", void 0);
exports.SqliMatchStatement = SqliMatchStatement;
class XssMatchStatement extends core.Schema {
}
__decorate([
    core.attr(FieldToMatch),
    __metadata("design:type", FieldToMatch)
], XssMatchStatement.prototype, "fieldToMatch", void 0);
__decorate([
    core.attr(TextTransformation, { kind: "array" }),
    __metadata("design:type", Object)
], XssMatchStatement.prototype, "textTransformation", void 0);
exports.XssMatchStatement = XssMatchStatement;
class ByteMatchStatement extends core.Schema {
}
__decorate([
    core.attr(FieldToMatch),
    __metadata("design:type", FieldToMatch)
], ByteMatchStatement.prototype, "fieldToMatch", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ByteMatchStatement.prototype, "positionalConstraint", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ByteMatchStatement.prototype, "searchString", void 0);
__decorate([
    core.attr(TextTransformation, { kind: "array" }),
    __metadata("design:type", Object)
], ByteMatchStatement.prototype, "textTransformation", void 0);
exports.ByteMatchStatement = ByteMatchStatement;
class ScopeDownStatementOrStatementStatementAndStatementStatement extends core.Schema {
}
__decorate([
    core.attr(ByteMatchStatement),
    __metadata("design:type", ByteMatchStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "byteMatchStatement", void 0);
__decorate([
    core.attr(GeoMatchStatement),
    __metadata("design:type", GeoMatchStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "geoMatchStatement", void 0);
__decorate([
    core.attr(IpSetReferenceStatement),
    __metadata("design:type", IpSetReferenceStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "ipSetReferenceStatement", void 0);
__decorate([
    core.attr(LabelMatchStatement),
    __metadata("design:type", LabelMatchStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "labelMatchStatement", void 0);
__decorate([
    core.attr(RegexPatternSetReferenceStatement),
    __metadata("design:type", RegexPatternSetReferenceStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "regexPatternSetReferenceStatement", void 0);
__decorate([
    core.attr(SizeConstraintStatement),
    __metadata("design:type", SizeConstraintStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "sizeConstraintStatement", void 0);
__decorate([
    core.attr(SqliMatchStatement),
    __metadata("design:type", SqliMatchStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "sqliMatchStatement", void 0);
__decorate([
    core.attr(XssMatchStatement),
    __metadata("design:type", XssMatchStatement)
], ScopeDownStatementOrStatementStatementAndStatementStatement.prototype, "xssMatchStatement", void 0);
exports.ScopeDownStatementOrStatementStatementAndStatementStatement = ScopeDownStatementOrStatementStatementAndStatementStatement;
class ScopeDownStatementOrStatementStatementAndStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatementAndStatementStatement, {
        kind: "array",
    }),
    __metadata("design:type", Object)
], ScopeDownStatementOrStatementStatementAndStatement.prototype, "statement", void 0);
exports.ScopeDownStatementOrStatementStatementAndStatement = ScopeDownStatementOrStatementStatementAndStatement;
class ScopeDownStatementOrStatementStatementOrStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatementAndStatementStatement, {
        kind: "array",
    }),
    __metadata("design:type", Object)
], ScopeDownStatementOrStatementStatementOrStatement.prototype, "statement", void 0);
exports.ScopeDownStatementOrStatementStatementOrStatement = ScopeDownStatementOrStatementStatementOrStatement;
class ScopeDownStatementOrStatementStatementNotStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatementAndStatementStatement, {
        kind: "array",
    }),
    __metadata("design:type", Object)
], ScopeDownStatementOrStatementStatementNotStatement.prototype, "statement", void 0);
exports.ScopeDownStatementOrStatementStatementNotStatement = ScopeDownStatementOrStatementStatementNotStatement;
class ScopeDownStatementOrStatementStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatementAndStatement),
    __metadata("design:type", ScopeDownStatementOrStatementStatementAndStatement)
], ScopeDownStatementOrStatementStatement.prototype, "andStatement", void 0);
__decorate([
    core.attr(ByteMatchStatement),
    __metadata("design:type", ByteMatchStatement)
], ScopeDownStatementOrStatementStatement.prototype, "byteMatchStatement", void 0);
__decorate([
    core.attr(GeoMatchStatement),
    __metadata("design:type", GeoMatchStatement)
], ScopeDownStatementOrStatementStatement.prototype, "geoMatchStatement", void 0);
__decorate([
    core.attr(IpSetReferenceStatement),
    __metadata("design:type", IpSetReferenceStatement)
], ScopeDownStatementOrStatementStatement.prototype, "ipSetReferenceStatement", void 0);
__decorate([
    core.attr(LabelMatchStatement),
    __metadata("design:type", LabelMatchStatement)
], ScopeDownStatementOrStatementStatement.prototype, "labelMatchStatement", void 0);
__decorate([
    core.attr(ScopeDownStatementOrStatementStatementNotStatement),
    __metadata("design:type", ScopeDownStatementOrStatementStatementNotStatement)
], ScopeDownStatementOrStatementStatement.prototype, "notStatement", void 0);
__decorate([
    core.attr(ScopeDownStatementOrStatementStatementOrStatement),
    __metadata("design:type", ScopeDownStatementOrStatementStatementOrStatement)
], ScopeDownStatementOrStatementStatement.prototype, "orStatement", void 0);
__decorate([
    core.attr(RegexPatternSetReferenceStatement),
    __metadata("design:type", RegexPatternSetReferenceStatement)
], ScopeDownStatementOrStatementStatement.prototype, "regexPatternSetReferenceStatement", void 0);
__decorate([
    core.attr(SizeConstraintStatement),
    __metadata("design:type", SizeConstraintStatement)
], ScopeDownStatementOrStatementStatement.prototype, "sizeConstraintStatement", void 0);
__decorate([
    core.attr(SqliMatchStatement),
    __metadata("design:type", SqliMatchStatement)
], ScopeDownStatementOrStatementStatement.prototype, "sqliMatchStatement", void 0);
__decorate([
    core.attr(XssMatchStatement),
    __metadata("design:type", XssMatchStatement)
], ScopeDownStatementOrStatementStatement.prototype, "xssMatchStatement", void 0);
exports.ScopeDownStatementOrStatementStatement = ScopeDownStatementOrStatementStatement;
class ScopeDownStatementOrStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatement, { kind: "array" }),
    __metadata("design:type", Object)
], ScopeDownStatementOrStatement.prototype, "statement", void 0);
exports.ScopeDownStatementOrStatement = ScopeDownStatementOrStatement;
class ScopeDownStatementNotStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatement, { kind: "array" }),
    __metadata("design:type", Object)
], ScopeDownStatementNotStatement.prototype, "statement", void 0);
exports.ScopeDownStatementNotStatement = ScopeDownStatementNotStatement;
class ScopeDownStatementAndStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementOrStatementStatement, { kind: "array" }),
    __metadata("design:type", Object)
], ScopeDownStatementAndStatement.prototype, "statement", void 0);
exports.ScopeDownStatementAndStatement = ScopeDownStatementAndStatement;
class ScopeDownStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementAndStatement),
    __metadata("design:type", ScopeDownStatementAndStatement)
], ScopeDownStatement.prototype, "andStatement", void 0);
__decorate([
    core.attr(ByteMatchStatement),
    __metadata("design:type", ByteMatchStatement)
], ScopeDownStatement.prototype, "byteMatchStatement", void 0);
__decorate([
    core.attr(GeoMatchStatement),
    __metadata("design:type", GeoMatchStatement)
], ScopeDownStatement.prototype, "geoMatchStatement", void 0);
__decorate([
    core.attr(IpSetReferenceStatement),
    __metadata("design:type", IpSetReferenceStatement)
], ScopeDownStatement.prototype, "ipSetReferenceStatement", void 0);
__decorate([
    core.attr(LabelMatchStatement),
    __metadata("design:type", LabelMatchStatement)
], ScopeDownStatement.prototype, "labelMatchStatement", void 0);
__decorate([
    core.attr(ScopeDownStatementNotStatement),
    __metadata("design:type", ScopeDownStatementNotStatement)
], ScopeDownStatement.prototype, "notStatement", void 0);
__decorate([
    core.attr(ScopeDownStatementOrStatement),
    __metadata("design:type", ScopeDownStatementOrStatement)
], ScopeDownStatement.prototype, "orStatement", void 0);
__decorate([
    core.attr(RegexPatternSetReferenceStatement),
    __metadata("design:type", RegexPatternSetReferenceStatement)
], ScopeDownStatement.prototype, "regexPatternSetReferenceStatement", void 0);
__decorate([
    core.attr(SizeConstraintStatement),
    __metadata("design:type", SizeConstraintStatement)
], ScopeDownStatement.prototype, "sizeConstraintStatement", void 0);
__decorate([
    core.attr(SqliMatchStatement),
    __metadata("design:type", SqliMatchStatement)
], ScopeDownStatement.prototype, "sqliMatchStatement", void 0);
__decorate([
    core.attr(XssMatchStatement),
    __metadata("design:type", XssMatchStatement)
], ScopeDownStatement.prototype, "xssMatchStatement", void 0);
exports.ScopeDownStatement = ScopeDownStatement;
class RateBasedStatement extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], RateBasedStatement.prototype, "aggregateKeyType", void 0);
__decorate([
    core.attr(ForwardedIpConfig),
    __metadata("design:type", ForwardedIpConfig)
], RateBasedStatement.prototype, "forwardedIpConfig", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], RateBasedStatement.prototype, "limit", void 0);
__decorate([
    core.attr(ScopeDownStatement),
    __metadata("design:type", ScopeDownStatement)
], RateBasedStatement.prototype, "scopeDownStatement", void 0);
exports.RateBasedStatement = RateBasedStatement;
class RuleStatementOrStatementStatement extends core.Schema {
}
__decorate([
    core.attr(ScopeDownStatementAndStatement),
    __metadata("design:type", ScopeDownStatementAndStatement)
], RuleStatementOrStatementStatement.prototype, "andStatement", void 0);
__decorate([
    core.attr(ByteMatchStatement),
    __metadata("design:type", ByteMatchStatement)
], RuleStatementOrStatementStatement.prototype, "byteMatchStatement", void 0);
__decorate([
    core.attr(GeoMatchStatement),
    __metadata("design:type", GeoMatchStatement)
], RuleStatementOrStatementStatement.prototype, "geoMatchStatement", void 0);
__decorate([
    core.attr(IpSetReferenceStatement),
    __metadata("design:type", IpSetReferenceStatement)
], RuleStatementOrStatementStatement.prototype, "ipSetReferenceStatement", void 0);
__decorate([
    core.attr(LabelMatchStatement),
    __metadata("design:type", LabelMatchStatement)
], RuleStatementOrStatementStatement.prototype, "labelMatchStatement", void 0);
__decorate([
    core.attr(ScopeDownStatementNotStatement),
    __metadata("design:type", ScopeDownStatementNotStatement)
], RuleStatementOrStatementStatement.prototype, "notStatement", void 0);
__decorate([
    core.attr(ScopeDownStatementOrStatement),
    __metadata("design:type", ScopeDownStatementOrStatement)
], RuleStatementOrStatementStatement.prototype, "orStatement", void 0);
__decorate([
    core.attr(RegexPatternSetReferenceStatement),
    __metadata("design:type", RegexPatternSetReferenceStatement)
], RuleStatementOrStatementStatement.prototype, "regexPatternSetReferenceStatement", void 0);
__decorate([
    core.attr(SizeConstraintStatement),
    __metadata("design:type", SizeConstraintStatement)
], RuleStatementOrStatementStatement.prototype, "sizeConstraintStatement", void 0);
__decorate([
    core.attr(SqliMatchStatement),
    __metadata("design:type", SqliMatchStatement)
], RuleStatementOrStatementStatement.prototype, "sqliMatchStatement", void 0);
__decorate([
    core.attr(XssMatchStatement),
    __metadata("design:type", XssMatchStatement)
], RuleStatementOrStatementStatement.prototype, "xssMatchStatement", void 0);
exports.RuleStatementOrStatementStatement = RuleStatementOrStatementStatement;
class RuleStatementOrStatement extends core.Schema {
}
__decorate([
    core.attr(RuleStatementOrStatementStatement, { kind: "array" }),
    __metadata("design:type", Object)
], RuleStatementOrStatement.prototype, "statement", void 0);
exports.RuleStatementOrStatement = RuleStatementOrStatement;
class ExcludedRule extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ExcludedRule.prototype, "name", void 0);
exports.ExcludedRule = ExcludedRule;
class RuleGroupReferenceStatement extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], RuleGroupReferenceStatement.prototype, "arn", void 0);
__decorate([
    core.attr(ExcludedRule, { kind: "array" }),
    __metadata("design:type", Object)
], RuleGroupReferenceStatement.prototype, "excludedRule", void 0);
exports.RuleGroupReferenceStatement = RuleGroupReferenceStatement;
class RuleStatementAndStatement extends core.Schema {
}
__decorate([
    core.attr(RuleStatementOrStatementStatement, { kind: "array" }),
    __metadata("design:type", Object)
], RuleStatementAndStatement.prototype, "statement", void 0);
exports.RuleStatementAndStatement = RuleStatementAndStatement;
class RuleStatementNotStatement extends core.Schema {
}
__decorate([
    core.attr(RuleStatementOrStatementStatement, { kind: "array" }),
    __metadata("design:type", Object)
], RuleStatementNotStatement.prototype, "statement", void 0);
exports.RuleStatementNotStatement = RuleStatementNotStatement;
class ManagedRuleGroupStatement extends core.Schema {
}
__decorate([
    core.attr(ExcludedRule, { kind: "array" }),
    __metadata("design:type", Object)
], ManagedRuleGroupStatement.prototype, "excludedRule", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ManagedRuleGroupStatement.prototype, "name", void 0);
__decorate([
    core.attr(ScopeDownStatement),
    __metadata("design:type", ScopeDownStatement)
], ManagedRuleGroupStatement.prototype, "scopeDownStatement", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ManagedRuleGroupStatement.prototype, "vendorName", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], ManagedRuleGroupStatement.prototype, "version", void 0);
exports.ManagedRuleGroupStatement = ManagedRuleGroupStatement;
class RuleStatement extends core.Schema {
}
__decorate([
    core.attr(RuleStatementAndStatement),
    __metadata("design:type", RuleStatementAndStatement)
], RuleStatement.prototype, "andStatement", void 0);
__decorate([
    core.attr(ByteMatchStatement),
    __metadata("design:type", ByteMatchStatement)
], RuleStatement.prototype, "byteMatchStatement", void 0);
__decorate([
    core.attr(GeoMatchStatement),
    __metadata("design:type", GeoMatchStatement)
], RuleStatement.prototype, "geoMatchStatement", void 0);
__decorate([
    core.attr(IpSetReferenceStatement),
    __metadata("design:type", IpSetReferenceStatement)
], RuleStatement.prototype, "ipSetReferenceStatement", void 0);
__decorate([
    core.attr(LabelMatchStatement),
    __metadata("design:type", LabelMatchStatement)
], RuleStatement.prototype, "labelMatchStatement", void 0);
__decorate([
    core.attr(ManagedRuleGroupStatement),
    __metadata("design:type", ManagedRuleGroupStatement)
], RuleStatement.prototype, "managedRuleGroupStatement", void 0);
__decorate([
    core.attr(RuleStatementNotStatement),
    __metadata("design:type", RuleStatementNotStatement)
], RuleStatement.prototype, "notStatement", void 0);
__decorate([
    core.attr(RuleStatementOrStatement),
    __metadata("design:type", RuleStatementOrStatement)
], RuleStatement.prototype, "orStatement", void 0);
__decorate([
    core.attr(RateBasedStatement),
    __metadata("design:type", RateBasedStatement)
], RuleStatement.prototype, "rateBasedStatement", void 0);
__decorate([
    core.attr(RegexPatternSetReferenceStatement),
    __metadata("design:type", RegexPatternSetReferenceStatement)
], RuleStatement.prototype, "regexPatternSetReferenceStatement", void 0);
__decorate([
    core.attr(RuleGroupReferenceStatement),
    __metadata("design:type", RuleGroupReferenceStatement)
], RuleStatement.prototype, "ruleGroupReferenceStatement", void 0);
__decorate([
    core.attr(SizeConstraintStatement),
    __metadata("design:type", SizeConstraintStatement)
], RuleStatement.prototype, "sizeConstraintStatement", void 0);
__decorate([
    core.attr(SqliMatchStatement),
    __metadata("design:type", SqliMatchStatement)
], RuleStatement.prototype, "sqliMatchStatement", void 0);
__decorate([
    core.attr(XssMatchStatement),
    __metadata("design:type", XssMatchStatement)
], RuleStatement.prototype, "xssMatchStatement", void 0);
exports.RuleStatement = RuleStatement;
class VisibilityConfig extends core.Schema {
}
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], VisibilityConfig.prototype, "cloudwatchMetricsEnabled", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], VisibilityConfig.prototype, "metricName", void 0);
__decorate([
    core.attr(Boolean),
    __metadata("design:type", Object)
], VisibilityConfig.prototype, "sampledRequestsEnabled", void 0);
exports.VisibilityConfig = VisibilityConfig;
class ActionCount extends core.Schema {
}
__decorate([
    core.attr(CustomRequestHandling),
    __metadata("design:type", CustomRequestHandling)
], ActionCount.prototype, "customRequestHandling", void 0);
exports.ActionCount = ActionCount;
class Captcha extends core.Schema {
}
__decorate([
    core.attr(CustomRequestHandling),
    __metadata("design:type", CustomRequestHandling)
], Captcha.prototype, "customRequestHandling", void 0);
exports.Captcha = Captcha;
class Action extends core.Schema {
}
__decorate([
    core.attr(Allow),
    __metadata("design:type", Allow)
], Action.prototype, "allow", void 0);
__decorate([
    core.attr(Block),
    __metadata("design:type", Block)
], Action.prototype, "block", void 0);
__decorate([
    core.attr(Captcha),
    __metadata("design:type", Captcha)
], Action.prototype, "captcha", void 0);
__decorate([
    core.attr(ActionCount),
    __metadata("design:type", ActionCount)
], Action.prototype, "count", void 0);
exports.Action = Action;
class OverrideActionCount extends core.Schema {
}
exports.OverrideActionCount = OverrideActionCount;
class None extends core.Schema {
}
exports.None = None;
class OverrideAction extends core.Schema {
}
__decorate([
    core.attr(OverrideActionCount),
    __metadata("design:type", OverrideActionCount)
], OverrideAction.prototype, "count", void 0);
__decorate([
    core.attr(None),
    __metadata("design:type", None)
], OverrideAction.prototype, "none", void 0);
exports.OverrideAction = OverrideAction;
class RuleLabel extends core.Schema {
}
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], RuleLabel.prototype, "name", void 0);
exports.RuleLabel = RuleLabel;
class Rule extends core.Schema {
}
__decorate([
    core.attr(Action),
    __metadata("design:type", Action)
], Rule.prototype, "action", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], Rule.prototype, "name", void 0);
__decorate([
    core.attr(OverrideAction),
    __metadata("design:type", OverrideAction)
], Rule.prototype, "overrideAction", void 0);
__decorate([
    core.attr(Number),
    __metadata("design:type", Object)
], Rule.prototype, "priority", void 0);
__decorate([
    core.attr(RuleLabel, { kind: "array" }),
    __metadata("design:type", Object)
], Rule.prototype, "ruleLabel", void 0);
__decorate([
    core.attr(RuleStatement),
    __metadata("design:type", RuleStatement)
], Rule.prototype, "statement", void 0);
__decorate([
    core.attr(VisibilityConfig),
    __metadata("design:type", VisibilityConfig)
], Rule.prototype, "visibilityConfig", void 0);
exports.Rule = Rule;
class V2WebAcl extends core.Resource {
    constructor(name, args) {
        super(name, "aws_wafv2_web_acl", args);
    }
    getNamespace() {
        return "aws_waf";
    }
}
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "arn", void 0);
__decorate([
    core.attr(Number, { computed: true }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "capacity", void 0);
__decorate([
    core.attr(CustomResponseBody, { kind: "array" }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "customResponseBody", void 0);
__decorate([
    core.attr(DefaultAction),
    __metadata("design:type", DefaultAction)
], V2WebAcl.prototype, "defaultAction", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "description", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "id", void 0);
__decorate([
    core.attr(String, { computed: true }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "lockToken", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "name", void 0);
__decorate([
    core.attr(Rule, { kind: "array" }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "rule", void 0);
__decorate([
    core.attr(String),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "scope", void 0);
__decorate([
    core.attr(String, { kind: "map" }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "tags", void 0);
__decorate([
    core.attr(String, { computed: true, kind: "map" }),
    __metadata("design:type", Object)
], V2WebAcl.prototype, "tagsAll", void 0);
__decorate([
    core.attr(VisibilityConfig),
    __metadata("design:type", VisibilityConfig)
], V2WebAcl.prototype, "visibilityConfig", void 0);
exports.V2WebAcl = V2WebAcl;
//# sourceMappingURL=v2_web_acl.js.map