import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { CreateRuleGroupRequest, CreateRuleGroupResponse } from "../models/models_0"; import type { ServiceInputTypes, ServiceOutputTypes, WAFV2ClientResolvedConfig } from "../WAFV2Client"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link CreateRuleGroupCommand}. */ export interface CreateRuleGroupCommandInput extends CreateRuleGroupRequest { } /** * @public * * The output of {@link CreateRuleGroupCommand}. */ export interface CreateRuleGroupCommandOutput extends CreateRuleGroupResponse, __MetadataBearer { } declare const CreateRuleGroupCommand_base: { new (input: CreateRuleGroupCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: CreateRuleGroupCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Creates a RuleGroup per the specifications provided.

*

A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { WAFV2Client, CreateRuleGroupCommand } from "@aws-sdk/client-wafv2"; // ES Modules import * // const { WAFV2Client, CreateRuleGroupCommand } = require("@aws-sdk/client-wafv2"); // CommonJS import * // import type { WAFV2ClientConfig } from "@aws-sdk/client-wafv2"; * const config = {}; // type is WAFV2ClientConfig * const client = new WAFV2Client(config); * const input = { // CreateRuleGroupRequest * Name: "STRING_VALUE", // required * Scope: "CLOUDFRONT" || "REGIONAL", // required * Capacity: Number("long"), // required * Description: "STRING_VALUE", * Rules: [ // Rules * { // Rule * Name: "STRING_VALUE", // required * Priority: Number("int"), // required * Statement: { // Statement * ByteMatchStatement: { // ByteMatchStatement * SearchString: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("") // required * FieldToMatch: { // FieldToMatch * SingleHeader: { // SingleHeader * Name: "STRING_VALUE", // required * }, * SingleQueryArgument: { // SingleQueryArgument * Name: "STRING_VALUE", // required * }, * AllQueryArguments: {}, * UriPath: {}, * QueryString: {}, * Body: { // Body * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Method: {}, * JsonBody: { // JsonBody * MatchPattern: { // JsonMatchPattern * All: {}, * IncludedPaths: [ // JsonPointerPaths * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * InvalidFallbackBehavior: "MATCH" || "NO_MATCH" || "EVALUATE_AS_STRING", * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Headers: { // Headers * MatchPattern: { // HeaderMatchPattern * All: {}, * IncludedHeaders: [ // HeaderNames * "STRING_VALUE", * ], * ExcludedHeaders: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * Cookies: { // Cookies * MatchPattern: { // CookieMatchPattern * All: {}, * IncludedCookies: [ // CookieNames * "STRING_VALUE", * ], * ExcludedCookies: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * HeaderOrder: { // HeaderOrder * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * JA3Fingerprint: { // JA3Fingerprint * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { // JA4Fingerprint * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * UriFragment: { // UriFragment * FallbackBehavior: "MATCH" || "NO_MATCH", * }, * }, * TextTransformations: [ // TextTransformations // required * { // TextTransformation * Priority: Number("int"), // required * Type: "NONE" || "COMPRESS_WHITE_SPACE" || "HTML_ENTITY_DECODE" || "LOWERCASE" || "CMD_LINE" || "URL_DECODE" || "BASE64_DECODE" || "HEX_DECODE" || "MD5" || "REPLACE_COMMENTS" || "ESCAPE_SEQ_DECODE" || "SQL_HEX_DECODE" || "CSS_DECODE" || "JS_DECODE" || "NORMALIZE_PATH" || "NORMALIZE_PATH_WIN" || "REMOVE_NULLS" || "REPLACE_NULLS" || "BASE64_DECODE_EXT" || "URL_DECODE_UNI" || "UTF8_TO_UNICODE", // required * }, * ], * PositionalConstraint: "EXACTLY" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CONTAINS_WORD", // required * }, * SqliMatchStatement: { // SqliMatchStatement * FieldToMatch: { * SingleHeader: { * Name: "STRING_VALUE", // required * }, * SingleQueryArgument: { * Name: "STRING_VALUE", // required * }, * AllQueryArguments: {}, * UriPath: {}, * QueryString: {}, * Body: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Method: {}, * JsonBody: { * MatchPattern: { * All: {}, * IncludedPaths: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * InvalidFallbackBehavior: "MATCH" || "NO_MATCH" || "EVALUATE_AS_STRING", * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Headers: { * MatchPattern: { * All: {}, * IncludedHeaders: [ * "STRING_VALUE", * ], * ExcludedHeaders: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * Cookies: { * MatchPattern: { * All: "", * IncludedCookies: [ * "STRING_VALUE", * ], * ExcludedCookies: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * HeaderOrder: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * JA3Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * UriFragment: { * FallbackBehavior: "MATCH" || "NO_MATCH", * }, * }, * TextTransformations: [ // required * { * Priority: Number("int"), // required * Type: "NONE" || "COMPRESS_WHITE_SPACE" || "HTML_ENTITY_DECODE" || "LOWERCASE" || "CMD_LINE" || "URL_DECODE" || "BASE64_DECODE" || "HEX_DECODE" || "MD5" || "REPLACE_COMMENTS" || "ESCAPE_SEQ_DECODE" || "SQL_HEX_DECODE" || "CSS_DECODE" || "JS_DECODE" || "NORMALIZE_PATH" || "NORMALIZE_PATH_WIN" || "REMOVE_NULLS" || "REPLACE_NULLS" || "BASE64_DECODE_EXT" || "URL_DECODE_UNI" || "UTF8_TO_UNICODE", // required * }, * ], * SensitivityLevel: "LOW" || "HIGH", * }, * XssMatchStatement: { // XssMatchStatement * FieldToMatch: { * SingleHeader: { * Name: "STRING_VALUE", // required * }, * SingleQueryArgument: { * Name: "STRING_VALUE", // required * }, * AllQueryArguments: {}, * UriPath: {}, * QueryString: {}, * Body: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Method: {}, * JsonBody: { * MatchPattern: { * All: "", * IncludedPaths: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * InvalidFallbackBehavior: "MATCH" || "NO_MATCH" || "EVALUATE_AS_STRING", * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Headers: { * MatchPattern: { * All: "", * IncludedHeaders: [ * "STRING_VALUE", * ], * ExcludedHeaders: "", * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * Cookies: { * MatchPattern: { * All: "", * IncludedCookies: [ * "STRING_VALUE", * ], * ExcludedCookies: "", * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * HeaderOrder: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * JA3Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * UriFragment: { * FallbackBehavior: "MATCH" || "NO_MATCH", * }, * }, * TextTransformations: [ // required * { * Priority: Number("int"), // required * Type: "NONE" || "COMPRESS_WHITE_SPACE" || "HTML_ENTITY_DECODE" || "LOWERCASE" || "CMD_LINE" || "URL_DECODE" || "BASE64_DECODE" || "HEX_DECODE" || "MD5" || "REPLACE_COMMENTS" || "ESCAPE_SEQ_DECODE" || "SQL_HEX_DECODE" || "CSS_DECODE" || "JS_DECODE" || "NORMALIZE_PATH" || "NORMALIZE_PATH_WIN" || "REMOVE_NULLS" || "REPLACE_NULLS" || "BASE64_DECODE_EXT" || "URL_DECODE_UNI" || "UTF8_TO_UNICODE", // required * }, * ], * }, * SizeConstraintStatement: { // SizeConstraintStatement * FieldToMatch: { * SingleHeader: { * Name: "STRING_VALUE", // required * }, * SingleQueryArgument: { * Name: "STRING_VALUE", // required * }, * AllQueryArguments: {}, * UriPath: {}, * QueryString: {}, * Body: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Method: {}, * JsonBody: { * MatchPattern: { * All: "", * IncludedPaths: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * InvalidFallbackBehavior: "MATCH" || "NO_MATCH" || "EVALUATE_AS_STRING", * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Headers: { * MatchPattern: { * All: "", * IncludedHeaders: "", * ExcludedHeaders: "", * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * Cookies: { * MatchPattern: { * All: "", * IncludedCookies: "", * ExcludedCookies: "", * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * HeaderOrder: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * JA3Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * UriFragment: { * FallbackBehavior: "MATCH" || "NO_MATCH", * }, * }, * ComparisonOperator: "EQ" || "NE" || "LE" || "LT" || "GE" || "GT", // required * Size: Number("long"), // required * TextTransformations: [ // required * { * Priority: Number("int"), // required * Type: "NONE" || "COMPRESS_WHITE_SPACE" || "HTML_ENTITY_DECODE" || "LOWERCASE" || "CMD_LINE" || "URL_DECODE" || "BASE64_DECODE" || "HEX_DECODE" || "MD5" || "REPLACE_COMMENTS" || "ESCAPE_SEQ_DECODE" || "SQL_HEX_DECODE" || "CSS_DECODE" || "JS_DECODE" || "NORMALIZE_PATH" || "NORMALIZE_PATH_WIN" || "REMOVE_NULLS" || "REPLACE_NULLS" || "BASE64_DECODE_EXT" || "URL_DECODE_UNI" || "UTF8_TO_UNICODE", // required * }, * ], * }, * GeoMatchStatement: { // GeoMatchStatement * CountryCodes: [ // CountryCodes * "AF" || "AX" || "AL" || "DZ" || "AS" || "AD" || "AO" || "AI" || "AQ" || "AG" || "AR" || "AM" || "AW" || "AU" || "AT" || "AZ" || "BS" || "BH" || "BD" || "BB" || "BY" || "BE" || "BZ" || "BJ" || "BM" || "BT" || "BO" || "BQ" || "BA" || "BW" || "BV" || "BR" || "IO" || "BN" || "BG" || "BF" || "BI" || "KH" || "CM" || "CA" || "CV" || "KY" || "CF" || "TD" || "CL" || "CN" || "CX" || "CC" || "CO" || "KM" || "CG" || "CD" || "CK" || "CR" || "CI" || "HR" || "CU" || "CW" || "CY" || "CZ" || "DK" || "DJ" || "DM" || "DO" || "EC" || "EG" || "SV" || "GQ" || "ER" || "EE" || "ET" || "FK" || "FO" || "FJ" || "FI" || "FR" || "GF" || "PF" || "TF" || "GA" || "GM" || "GE" || "DE" || "GH" || "GI" || "GR" || "GL" || "GD" || "GP" || "GU" || "GT" || "GG" || "GN" || "GW" || "GY" || "HT" || "HM" || "VA" || "HN" || "HK" || "HU" || "IS" || "IN" || "ID" || "IR" || "IQ" || "IE" || "IM" || "IL" || "IT" || "JM" || "JP" || "JE" || "JO" || "KZ" || "KE" || "KI" || "KP" || "KR" || "KW" || "KG" || "LA" || "LV" || "LB" || "LS" || "LR" || "LY" || "LI" || "LT" || "LU" || "MO" || "MK" || "MG" || "MW" || "MY" || "MV" || "ML" || "MT" || "MH" || "MQ" || "MR" || "MU" || "YT" || "MX" || "FM" || "MD" || "MC" || "MN" || "ME" || "MS" || "MA" || "MZ" || "MM" || "NA" || "NR" || "NP" || "NL" || "NC" || "NZ" || "NI" || "NE" || "NG" || "NU" || "NF" || "MP" || "NO" || "OM" || "PK" || "PW" || "PS" || "PA" || "PG" || "PY" || "PE" || "PH" || "PN" || "PL" || "PT" || "PR" || "QA" || "RE" || "RO" || "RU" || "RW" || "BL" || "SH" || "KN" || "LC" || "MF" || "PM" || "VC" || "WS" || "SM" || "ST" || "SA" || "SN" || "RS" || "SC" || "SL" || "SG" || "SX" || "SK" || "SI" || "SB" || "SO" || "ZA" || "GS" || "SS" || "ES" || "LK" || "SD" || "SR" || "SJ" || "SZ" || "SE" || "CH" || "SY" || "TW" || "TJ" || "TZ" || "TH" || "TL" || "TG" || "TK" || "TO" || "TT" || "TN" || "TR" || "TM" || "TC" || "TV" || "UG" || "UA" || "AE" || "GB" || "US" || "UM" || "UY" || "UZ" || "VU" || "VE" || "VN" || "VG" || "VI" || "WF" || "EH" || "YE" || "ZM" || "ZW" || "XK", * ], * ForwardedIPConfig: { // ForwardedIPConfig * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * }, * RuleGroupReferenceStatement: { // RuleGroupReferenceStatement * ARN: "STRING_VALUE", // required * ExcludedRules: [ // ExcludedRules * { // ExcludedRule * Name: "STRING_VALUE", // required * }, * ], * RuleActionOverrides: [ // RuleActionOverrides * { // RuleActionOverride * Name: "STRING_VALUE", // required * ActionToUse: { // RuleAction * Block: { // BlockAction * CustomResponse: { // CustomResponse * ResponseCode: Number("int"), // required * CustomResponseBodyKey: "STRING_VALUE", * ResponseHeaders: [ // CustomHTTPHeaders * { // CustomHTTPHeader * Name: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * }, * Allow: { // AllowAction * CustomRequestHandling: { // CustomRequestHandling * InsertHeaders: [ // required * { * Name: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * }, * Count: { // CountAction * CustomRequestHandling: { * InsertHeaders: [ // required * { * Name: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * }, * Captcha: { // CaptchaAction * CustomRequestHandling: { * InsertHeaders: [ // required * { * Name: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * }, * Challenge: { // ChallengeAction * CustomRequestHandling: { * InsertHeaders: [ // required * { * Name: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }, * }, * }, * }, * ], * }, * IPSetReferenceStatement: { // IPSetReferenceStatement * ARN: "STRING_VALUE", // required * IPSetForwardedIPConfig: { // IPSetForwardedIPConfig * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * Position: "FIRST" || "LAST" || "ANY", // required * }, * }, * RegexPatternSetReferenceStatement: { // RegexPatternSetReferenceStatement * ARN: "STRING_VALUE", // required * FieldToMatch: { * SingleHeader: { * Name: "STRING_VALUE", // required * }, * SingleQueryArgument: { * Name: "STRING_VALUE", // required * }, * AllQueryArguments: {}, * UriPath: {}, * QueryString: {}, * Body: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Method: {}, * JsonBody: { * MatchPattern: { * All: "", * IncludedPaths: [ * "STRING_VALUE", * ], * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * InvalidFallbackBehavior: "MATCH" || "NO_MATCH" || "EVALUATE_AS_STRING", * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", * }, * Headers: { * MatchPattern: { * All: "", * IncludedHeaders: "", * ExcludedHeaders: "", * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * Cookies: { * MatchPattern: { * All: "", * IncludedCookies: "", * ExcludedCookies: "", * }, * MatchScope: "ALL" || "KEY" || "VALUE", // required * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * HeaderOrder: { * OversizeHandling: "CONTINUE" || "MATCH" || "NO_MATCH", // required * }, * JA3Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * UriFragment: { * FallbackBehavior: "MATCH" || "NO_MATCH", * }, * }, * TextTransformations: [ // required * { * Priority: Number("int"), // required * Type: "NONE" || "COMPRESS_WHITE_SPACE" || "HTML_ENTITY_DECODE" || "LOWERCASE" || "CMD_LINE" || "URL_DECODE" || "BASE64_DECODE" || "HEX_DECODE" || "MD5" || "REPLACE_COMMENTS" || "ESCAPE_SEQ_DECODE" || "SQL_HEX_DECODE" || "CSS_DECODE" || "JS_DECODE" || "NORMALIZE_PATH" || "NORMALIZE_PATH_WIN" || "REMOVE_NULLS" || "REPLACE_NULLS" || "BASE64_DECODE_EXT" || "URL_DECODE_UNI" || "UTF8_TO_UNICODE", // required * }, * ], * }, * RateBasedStatement: { // RateBasedStatement * Limit: Number("long"), // required * EvaluationWindowSec: Number("long"), * AggregateKeyType: "IP" || "FORWARDED_IP" || "CUSTOM_KEYS" || "CONSTANT", // required * ScopeDownStatement: { * ByteMatchStatement: { * SearchString: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("") // required * FieldToMatch: "", // required * TextTransformations: "", // required * PositionalConstraint: "EXACTLY" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CONTAINS_WORD", // required * }, * SqliMatchStatement: { * FieldToMatch: "", // required * TextTransformations: "", // required * SensitivityLevel: "LOW" || "HIGH", * }, * XssMatchStatement: { * FieldToMatch: "", // required * TextTransformations: "", // required * }, * SizeConstraintStatement: { * FieldToMatch: "", // required * ComparisonOperator: "EQ" || "NE" || "LE" || "LT" || "GE" || "GT", // required * Size: Number("long"), // required * TextTransformations: "", // required * }, * GeoMatchStatement: { * CountryCodes: [ * "AF" || "AX" || "AL" || "DZ" || "AS" || "AD" || "AO" || "AI" || "AQ" || "AG" || "AR" || "AM" || "AW" || "AU" || "AT" || "AZ" || "BS" || "BH" || "BD" || "BB" || "BY" || "BE" || "BZ" || "BJ" || "BM" || "BT" || "BO" || "BQ" || "BA" || "BW" || "BV" || "BR" || "IO" || "BN" || "BG" || "BF" || "BI" || "KH" || "CM" || "CA" || "CV" || "KY" || "CF" || "TD" || "CL" || "CN" || "CX" || "CC" || "CO" || "KM" || "CG" || "CD" || "CK" || "CR" || "CI" || "HR" || "CU" || "CW" || "CY" || "CZ" || "DK" || "DJ" || "DM" || "DO" || "EC" || "EG" || "SV" || "GQ" || "ER" || "EE" || "ET" || "FK" || "FO" || "FJ" || "FI" || "FR" || "GF" || "PF" || "TF" || "GA" || "GM" || "GE" || "DE" || "GH" || "GI" || "GR" || "GL" || "GD" || "GP" || "GU" || "GT" || "GG" || "GN" || "GW" || "GY" || "HT" || "HM" || "VA" || "HN" || "HK" || "HU" || "IS" || "IN" || "ID" || "IR" || "IQ" || "IE" || "IM" || "IL" || "IT" || "JM" || "JP" || "JE" || "JO" || "KZ" || "KE" || "KI" || "KP" || "KR" || "KW" || "KG" || "LA" || "LV" || "LB" || "LS" || "LR" || "LY" || "LI" || "LT" || "LU" || "MO" || "MK" || "MG" || "MW" || "MY" || "MV" || "ML" || "MT" || "MH" || "MQ" || "MR" || "MU" || "YT" || "MX" || "FM" || "MD" || "MC" || "MN" || "ME" || "MS" || "MA" || "MZ" || "MM" || "NA" || "NR" || "NP" || "NL" || "NC" || "NZ" || "NI" || "NE" || "NG" || "NU" || "NF" || "MP" || "NO" || "OM" || "PK" || "PW" || "PS" || "PA" || "PG" || "PY" || "PE" || "PH" || "PN" || "PL" || "PT" || "PR" || "QA" || "RE" || "RO" || "RU" || "RW" || "BL" || "SH" || "KN" || "LC" || "MF" || "PM" || "VC" || "WS" || "SM" || "ST" || "SA" || "SN" || "RS" || "SC" || "SL" || "SG" || "SX" || "SK" || "SI" || "SB" || "SO" || "ZA" || "GS" || "SS" || "ES" || "LK" || "SD" || "SR" || "SJ" || "SZ" || "SE" || "CH" || "SY" || "TW" || "TJ" || "TZ" || "TH" || "TL" || "TG" || "TK" || "TO" || "TT" || "TN" || "TR" || "TM" || "TC" || "TV" || "UG" || "UA" || "AE" || "GB" || "US" || "UM" || "UY" || "UZ" || "VU" || "VE" || "VN" || "VG" || "VI" || "WF" || "EH" || "YE" || "ZM" || "ZW" || "XK", * ], * ForwardedIPConfig: { * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * }, * RuleGroupReferenceStatement: { * ARN: "STRING_VALUE", // required * ExcludedRules: [ * { * Name: "STRING_VALUE", // required * }, * ], * RuleActionOverrides: [ * { * Name: "STRING_VALUE", // required * ActionToUse: { * Block: { * CustomResponse: { * ResponseCode: Number("int"), // required * CustomResponseBodyKey: "STRING_VALUE", * ResponseHeaders: "", * }, * }, * Allow: { * CustomRequestHandling: { * InsertHeaders: "", // required * }, * }, * Count: { * CustomRequestHandling: "", * }, * Captcha: { * CustomRequestHandling: "", * }, * Challenge: { * CustomRequestHandling: "", * }, * }, * }, * ], * }, * IPSetReferenceStatement: { * ARN: "STRING_VALUE", // required * IPSetForwardedIPConfig: { * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * Position: "FIRST" || "LAST" || "ANY", // required * }, * }, * RegexPatternSetReferenceStatement: { * ARN: "STRING_VALUE", // required * FieldToMatch: "", // required * TextTransformations: "", // required * }, * RateBasedStatement: { * Limit: Number("long"), // required * EvaluationWindowSec: Number("long"), * AggregateKeyType: "IP" || "FORWARDED_IP" || "CUSTOM_KEYS" || "CONSTANT", // required * ScopeDownStatement: "", * ForwardedIPConfig: { * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * CustomKeys: [ // RateBasedStatementCustomKeys * { // RateBasedStatementCustomKey * Header: { // RateLimitHeader * Name: "STRING_VALUE", // required * TextTransformations: "", // required * }, * Cookie: { // RateLimitCookie * Name: "STRING_VALUE", // required * TextTransformations: "", // required * }, * QueryArgument: { // RateLimitQueryArgument * Name: "STRING_VALUE", // required * TextTransformations: "", // required * }, * QueryString: { // RateLimitQueryString * TextTransformations: "", // required * }, * HTTPMethod: {}, * ForwardedIP: {}, * IP: {}, * LabelNamespace: { // RateLimitLabelNamespace * Namespace: "STRING_VALUE", // required * }, * UriPath: { // RateLimitUriPath * TextTransformations: "", // required * }, * JA3Fingerprint: { // RateLimitJA3Fingerprint * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { // RateLimitJA4Fingerprint * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * ASN: {}, * }, * ], * }, * AndStatement: { // AndStatement * Statements: [ // Statements // required * "", * ], * }, * OrStatement: { // OrStatement * Statements: [ // required * "", * ], * }, * NotStatement: { // NotStatement * Statement: "", // required * }, * ManagedRuleGroupStatement: { // ManagedRuleGroupStatement * VendorName: "STRING_VALUE", // required * Name: "STRING_VALUE", // required * Version: "STRING_VALUE", * ExcludedRules: [ * { * Name: "STRING_VALUE", // required * }, * ], * ScopeDownStatement: "", * ManagedRuleGroupConfigs: [ // ManagedRuleGroupConfigs * { // ManagedRuleGroupConfig * LoginPath: "STRING_VALUE", * PayloadType: "JSON" || "FORM_ENCODED", * UsernameField: { // UsernameField * Identifier: "STRING_VALUE", // required * }, * PasswordField: { // PasswordField * Identifier: "STRING_VALUE", // required * }, * AWSManagedRulesBotControlRuleSet: { // AWSManagedRulesBotControlRuleSet * InspectionLevel: "COMMON" || "TARGETED", // required * EnableMachineLearning: true || false, * }, * AWSManagedRulesATPRuleSet: { // AWSManagedRulesATPRuleSet * LoginPath: "STRING_VALUE", // required * RequestInspection: { // RequestInspection * PayloadType: "JSON" || "FORM_ENCODED", // required * UsernameField: { * Identifier: "STRING_VALUE", // required * }, * PasswordField: { * Identifier: "STRING_VALUE", // required * }, * }, * ResponseInspection: { // ResponseInspection * StatusCode: { // ResponseInspectionStatusCode * SuccessCodes: [ // ResponseInspectionStatusCodeSuccessCodes // required * Number("int"), * ], * FailureCodes: [ // ResponseInspectionStatusCodeFailureCodes // required * Number("int"), * ], * }, * Header: { // ResponseInspectionHeader * Name: "STRING_VALUE", // required * SuccessValues: [ // ResponseInspectionHeaderSuccessValues // required * "STRING_VALUE", * ], * FailureValues: [ // ResponseInspectionHeaderFailureValues // required * "STRING_VALUE", * ], * }, * BodyContains: { // ResponseInspectionBodyContains * SuccessStrings: [ // ResponseInspectionBodyContainsSuccessStrings // required * "STRING_VALUE", * ], * FailureStrings: [ // ResponseInspectionBodyContainsFailureStrings // required * "STRING_VALUE", * ], * }, * Json: { // ResponseInspectionJson * Identifier: "STRING_VALUE", // required * SuccessValues: [ // ResponseInspectionJsonSuccessValues // required * "STRING_VALUE", * ], * FailureValues: [ // ResponseInspectionJsonFailureValues // required * "STRING_VALUE", * ], * }, * }, * EnableRegexInPath: true || false, * }, * AWSManagedRulesACFPRuleSet: { // AWSManagedRulesACFPRuleSet * CreationPath: "STRING_VALUE", // required * RegistrationPagePath: "STRING_VALUE", // required * RequestInspection: { // RequestInspectionACFP * PayloadType: "JSON" || "FORM_ENCODED", // required * UsernameField: { * Identifier: "STRING_VALUE", // required * }, * PasswordField: { * Identifier: "STRING_VALUE", // required * }, * EmailField: { // EmailField * Identifier: "STRING_VALUE", // required * }, * PhoneNumberFields: [ // PhoneNumberFields * { // PhoneNumberField * Identifier: "STRING_VALUE", // required * }, * ], * AddressFields: [ // AddressFields * { // AddressField * Identifier: "STRING_VALUE", // required * }, * ], * }, * ResponseInspection: { * StatusCode: { * SuccessCodes: [ // required * Number("int"), * ], * FailureCodes: [ // required * Number("int"), * ], * }, * Header: { * Name: "STRING_VALUE", // required * SuccessValues: [ // required * "STRING_VALUE", * ], * FailureValues: [ // required * "STRING_VALUE", * ], * }, * BodyContains: { * SuccessStrings: [ // required * "STRING_VALUE", * ], * FailureStrings: [ // required * "STRING_VALUE", * ], * }, * Json: { * Identifier: "STRING_VALUE", // required * SuccessValues: [ // required * "STRING_VALUE", * ], * FailureValues: [ // required * "STRING_VALUE", * ], * }, * }, * EnableRegexInPath: true || false, * }, * AWSManagedRulesAntiDDoSRuleSet: { // AWSManagedRulesAntiDDoSRuleSet * ClientSideActionConfig: { // ClientSideActionConfig * Challenge: { // ClientSideAction * UsageOfAction: "ENABLED" || "DISABLED", // required * Sensitivity: "LOW" || "MEDIUM" || "HIGH", * ExemptUriRegularExpressions: [ // RegularExpressionList * { // Regex * RegexString: "STRING_VALUE", * }, * ], * }, * }, * SensitivityToBlock: "LOW" || "MEDIUM" || "HIGH", * }, * }, * ], * RuleActionOverrides: [ * { * Name: "STRING_VALUE", // required * ActionToUse: { * Block: { * CustomResponse: { * ResponseCode: Number("int"), // required * CustomResponseBodyKey: "STRING_VALUE", * ResponseHeaders: "", * }, * }, * Allow: { * CustomRequestHandling: "", * }, * Count: { * CustomRequestHandling: "", * }, * Captcha: { * CustomRequestHandling: "", * }, * Challenge: { * CustomRequestHandling: "", * }, * }, * }, * ], * }, * LabelMatchStatement: { // LabelMatchStatement * Scope: "LABEL" || "NAMESPACE", // required * Key: "STRING_VALUE", // required * }, * RegexMatchStatement: { // RegexMatchStatement * RegexString: "STRING_VALUE", // required * FieldToMatch: "", // required * TextTransformations: "", // required * }, * AsnMatchStatement: { // AsnMatchStatement * AsnList: [ // AsnList // required * Number("long"), * ], * ForwardedIPConfig: { * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * }, * }, * ForwardedIPConfig: { * HeaderName: "STRING_VALUE", // required * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * CustomKeys: [ * { * Header: { * Name: "STRING_VALUE", // required * TextTransformations: "", // required * }, * Cookie: { * Name: "STRING_VALUE", // required * TextTransformations: "", // required * }, * QueryArgument: { * Name: "STRING_VALUE", // required * TextTransformations: "", // required * }, * QueryString: { * TextTransformations: "", // required * }, * HTTPMethod: {}, * ForwardedIP: {}, * IP: {}, * LabelNamespace: { * Namespace: "STRING_VALUE", // required * }, * UriPath: { * TextTransformations: "", // required * }, * JA3Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * JA4Fingerprint: { * FallbackBehavior: "MATCH" || "NO_MATCH", // required * }, * ASN: {}, * }, * ], * }, * AndStatement: { * Statements: [ // required * "", * ], * }, * OrStatement: { * Statements: [ // required * "", * ], * }, * NotStatement: { * Statement: "", // required * }, * ManagedRuleGroupStatement: { * VendorName: "STRING_VALUE", // required * Name: "STRING_VALUE", // required * Version: "STRING_VALUE", * ExcludedRules: [ * { * Name: "STRING_VALUE", // required * }, * ], * ScopeDownStatement: "", * ManagedRuleGroupConfigs: [ * { * LoginPath: "STRING_VALUE", * PayloadType: "JSON" || "FORM_ENCODED", * UsernameField: "", * PasswordField: "", * AWSManagedRulesBotControlRuleSet: { * InspectionLevel: "COMMON" || "TARGETED", // required * EnableMachineLearning: true || false, * }, * AWSManagedRulesATPRuleSet: { * LoginPath: "STRING_VALUE", // required * RequestInspection: { * PayloadType: "JSON" || "FORM_ENCODED", // required * UsernameField: "", // required * PasswordField: "", // required * }, * ResponseInspection: { * StatusCode: { * SuccessCodes: [ // required * Number("int"), * ], * FailureCodes: [ // required * Number("int"), * ], * }, * Header: { * Name: "STRING_VALUE", // required * SuccessValues: [ // required * "STRING_VALUE", * ], * FailureValues: [ // required * "STRING_VALUE", * ], * }, * BodyContains: { * SuccessStrings: [ // required * "STRING_VALUE", * ], * FailureStrings: [ // required * "STRING_VALUE", * ], * }, * Json: { * Identifier: "STRING_VALUE", // required * SuccessValues: [ // required * "STRING_VALUE", * ], * FailureValues: [ // required * "STRING_VALUE", * ], * }, * }, * EnableRegexInPath: true || false, * }, * AWSManagedRulesACFPRuleSet: { * CreationPath: "STRING_VALUE", // required * RegistrationPagePath: "STRING_VALUE", // required * RequestInspection: { * PayloadType: "JSON" || "FORM_ENCODED", // required * UsernameField: "", * PasswordField: "", * EmailField: { * Identifier: "STRING_VALUE", // required * }, * PhoneNumberFields: [ * { * Identifier: "STRING_VALUE", // required * }, * ], * AddressFields: [ * { * Identifier: "STRING_VALUE", // required * }, * ], * }, * ResponseInspection: { * StatusCode: { * SuccessCodes: [ // required * Number("int"), * ], * FailureCodes: [ // required * Number("int"), * ], * }, * Header: { * Name: "STRING_VALUE", // required * SuccessValues: [ // required * "STRING_VALUE", * ], * FailureValues: [ // required * "STRING_VALUE", * ], * }, * BodyContains: { * SuccessStrings: [ // required * "STRING_VALUE", * ], * FailureStrings: [ // required * "STRING_VALUE", * ], * }, * Json: { * Identifier: "STRING_VALUE", // required * SuccessValues: [ // required * "STRING_VALUE", * ], * FailureValues: [ // required * "STRING_VALUE", * ], * }, * }, * EnableRegexInPath: true || false, * }, * AWSManagedRulesAntiDDoSRuleSet: { * ClientSideActionConfig: { * Challenge: { * UsageOfAction: "ENABLED" || "DISABLED", // required * Sensitivity: "LOW" || "MEDIUM" || "HIGH", * ExemptUriRegularExpressions: [ * { * RegexString: "STRING_VALUE", * }, * ], * }, * }, * SensitivityToBlock: "LOW" || "MEDIUM" || "HIGH", * }, * }, * ], * RuleActionOverrides: [ * { * Name: "STRING_VALUE", // required * ActionToUse: { * Block: { * CustomResponse: { * ResponseCode: Number("int"), // required * CustomResponseBodyKey: "STRING_VALUE", * ResponseHeaders: "", * }, * }, * Allow: { * CustomRequestHandling: "", * }, * Count: { * CustomRequestHandling: "", * }, * Captcha: { * CustomRequestHandling: "", * }, * Challenge: { * CustomRequestHandling: "", * }, * }, * }, * ], * }, * LabelMatchStatement: { * Scope: "LABEL" || "NAMESPACE", // required * Key: "STRING_VALUE", // required * }, * RegexMatchStatement: { * RegexString: "STRING_VALUE", // required * FieldToMatch: "", // required * TextTransformations: "", // required * }, * AsnMatchStatement: { * AsnList: [ // required * Number("long"), * ], * ForwardedIPConfig: "", * }, * }, * Action: "", * OverrideAction: { // OverrideAction * Count: "", * None: {}, * }, * RuleLabels: [ // Labels * { // Label * Name: "STRING_VALUE", // required * }, * ], * VisibilityConfig: { // VisibilityConfig * SampledRequestsEnabled: true || false, // required * CloudWatchMetricsEnabled: true || false, // required * MetricName: "STRING_VALUE", // required * }, * CaptchaConfig: { // CaptchaConfig * ImmunityTimeProperty: { // ImmunityTimeProperty * ImmunityTime: Number("long"), // required * }, * }, * ChallengeConfig: { // ChallengeConfig * ImmunityTimeProperty: { * ImmunityTime: Number("long"), // required * }, * }, * }, * ], * VisibilityConfig: { * SampledRequestsEnabled: true || false, // required * CloudWatchMetricsEnabled: true || false, // required * MetricName: "STRING_VALUE", // required * }, * Tags: [ // TagList * { // Tag * Key: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * CustomResponseBodies: { // CustomResponseBodies * "": { // CustomResponseBody * ContentType: "TEXT_PLAIN" || "TEXT_HTML" || "APPLICATION_JSON", // required * Content: "STRING_VALUE", // required * }, * }, * }; * const command = new CreateRuleGroupCommand(input); * const response = await client.send(command); * // { // CreateRuleGroupResponse * // Summary: { // RuleGroupSummary * // Name: "STRING_VALUE", * // Id: "STRING_VALUE", * // Description: "STRING_VALUE", * // LockToken: "STRING_VALUE", * // ARN: "STRING_VALUE", * // }, * // }; * * ``` * * @param CreateRuleGroupCommandInput - {@link CreateRuleGroupCommandInput} * @returns {@link CreateRuleGroupCommandOutput} * @see {@link CreateRuleGroupCommandInput} for command's `input` shape. * @see {@link CreateRuleGroupCommandOutput} for command's `response` shape. * @see {@link WAFV2ClientResolvedConfig | config} for WAFV2Client's `config` shape. * * @throws {@link WAFDuplicateItemException} (client fault) *

WAF couldn’t perform the operation because the resource that you tried to save is * a duplicate of an existing one.

* * @throws {@link WAFInternalErrorException} (server fault) *

Your request is valid, but WAF couldn’t perform the operation because of a system * problem. Retry your request.

* * @throws {@link WAFInvalidOperationException} (client fault) *

The operation isn't valid.

* * @throws {@link WAFInvalidParameterException} (client fault) *

The operation failed because WAF didn't recognize a parameter in the request. For * example:

*
    *
  • *

    You specified a parameter name or value that isn't valid.

    *
  • *
  • *

    Your nested statement isn't valid. You might have tried to nest a statement that * can’t be nested.

    *
  • *
  • *

    You tried to update a WebACL with a DefaultAction that * isn't among the types available at DefaultAction.

    *
  • *
  • *

    Your request references an ARN that is malformed, or corresponds to a resource * with which a web ACL can't be associated.

    *
  • *
* * @throws {@link WAFLimitsExceededException} (client fault) *

WAF couldn’t perform the operation because you exceeded your resource limit. For * example, the maximum number of WebACL objects that you can create for an Amazon Web Services * account. For more information, see WAF quotas in the * WAF Developer Guide.

* * @throws {@link WAFNonexistentItemException} (client fault) *

WAF couldn’t perform the operation because your resource doesn't exist. * If you've just created a resource that you're using in this operation, you might * just need to wait a few minutes. It can take from a few seconds to a number of minutes * for changes to propagate.

* * @throws {@link WAFOptimisticLockException} (client fault) *

WAF couldn’t save your changes because you tried to update or delete a resource * that has changed since you last retrieved it. Get the resource again, make any changes you * need to make to the new copy, and retry your operation.

* * @throws {@link WAFSubscriptionNotFoundException} (client fault) *

You tried to use a managed rule group that's available by subscription, but you aren't * subscribed to it yet.

* * @throws {@link WAFTagOperationException} (client fault) *

An error occurred during the tagging operation. Retry your request.

* * @throws {@link WAFTagOperationInternalErrorException} (server fault) *

WAF couldn’t perform your tagging operation because of an internal error. Retry * your request.

* * @throws {@link WAFUnavailableEntityException} (client fault) *

WAF couldn’t retrieve a resource that you specified for this operation. * If you've just created a resource that you're using in this operation, you might * just need to wait a few minutes. It can take from a few seconds to a number of minutes * for changes to propagate. Verify the resource specifications in your request * parameters and then retry the operation.

* * @throws {@link WAFV2ServiceException} *

Base exception class for all service exceptions from WAFV2 service.

* * * @public */ export declare class CreateRuleGroupCommand extends CreateRuleGroupCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: CreateRuleGroupRequest; output: CreateRuleGroupResponse; }; sdk: { input: CreateRuleGroupCommandInput; output: CreateRuleGroupCommandOutput; }; }; }