@horietakehiro/aws-cdk-utul 0.35.3 → 0.35.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/types/cfn-resource-types/aws-athena-workgroup.d.ts +15 -0
- package/lib/types/cfn-resource-types/aws-athena-workgroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-egressonlyinternetgateway.d.ts +8 -0
- package/lib/types/cfn-resource-types/aws-ec2-egressonlyinternetgateway.js +1 -1
- package/lib/types/cfn-resource-types/aws-eks-podidentityassociation.d.ts +24 -12
- package/lib/types/cfn-resource-types/aws-eks-podidentityassociation.js +1 -1
- package/lib/types/cfn-resource-types/aws-kms-key.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-kms-key.js +1 -1
- package/lib/types/cfn-resource-types/aws-mwaa-environment.d.ts +5 -0
- package/lib/types/cfn-resource-types/aws-mwaa-environment.js +1 -1
- package/lib/types/cfn-resource-types/aws-networkfirewall-loggingconfiguration.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-networkfirewall-loggingconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.d.ts +40 -0
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.js +1 -1
- package/lib/types/cfn-resource-types/aws-wafv2-rulegroup.d.ts +12 -0
- package/lib/types/cfn-resource-types/aws-wafv2-rulegroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-wafv2-webacl.d.ts +483 -432
- package/lib/types/cfn-resource-types/aws-wafv2-webacl.js +1 -1
- package/package.json +1 -1
|
@@ -1,101 +1,104 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*/
|
|
4
|
-
export type EntityDescription = string;
|
|
5
|
-
export type SizeInspectionLimit = ("KB_16" | "KB_32" | "KB_48" | "KB_64");
|
|
6
|
-
/**
|
|
7
|
-
* Key of the field to protect.
|
|
2
|
+
* ARN of the WAF entity.
|
|
8
3
|
*/
|
|
9
|
-
export type
|
|
10
|
-
export type DataProtectionAction = ("SUBSTITUTION" | "HASH");
|
|
4
|
+
export type ResourceArn = string;
|
|
11
5
|
/**
|
|
12
|
-
*
|
|
6
|
+
* HTTP header name.
|
|
13
7
|
*/
|
|
14
|
-
export type
|
|
8
|
+
export type CustomHTTPHeaderName = string;
|
|
15
9
|
/**
|
|
16
10
|
* HTTP header value.
|
|
17
11
|
*/
|
|
18
12
|
export type CustomHTTPHeaderValue = string;
|
|
19
|
-
/**
|
|
20
|
-
* HTTP header name.
|
|
21
|
-
*/
|
|
22
|
-
export type CustomHTTPHeaderName = string;
|
|
23
13
|
/**
|
|
24
14
|
* Custom response code.
|
|
25
15
|
*/
|
|
26
16
|
export type ResponseStatusCode = number;
|
|
27
17
|
/**
|
|
28
|
-
*
|
|
18
|
+
* Description of the entity.
|
|
29
19
|
*/
|
|
30
|
-
export type
|
|
20
|
+
export type EntityDescription = string;
|
|
31
21
|
/**
|
|
32
|
-
*
|
|
22
|
+
* Name of the WebACL.
|
|
33
23
|
*/
|
|
34
|
-
export type
|
|
24
|
+
export type EntityName = string;
|
|
35
25
|
/**
|
|
36
|
-
*
|
|
26
|
+
* Id of the WebACL
|
|
37
27
|
*/
|
|
38
|
-
export type
|
|
28
|
+
export type EntityId = string;
|
|
39
29
|
/**
|
|
40
|
-
*
|
|
30
|
+
* Use CLOUDFRONT for CloudFront WebACL, use REGIONAL for Application Load Balancer and API Gateway.
|
|
41
31
|
*/
|
|
42
|
-
export type
|
|
32
|
+
export type Scope = ("CLOUDFRONT" | "REGIONAL");
|
|
43
33
|
/**
|
|
44
|
-
*
|
|
34
|
+
* Priority of the Rule, Rules get evaluated from lower to higher priority.
|
|
45
35
|
*/
|
|
46
|
-
export type
|
|
36
|
+
export type RulePriority = number;
|
|
47
37
|
/**
|
|
48
|
-
*
|
|
38
|
+
* String that is searched to find a match.
|
|
49
39
|
*/
|
|
50
|
-
export type
|
|
40
|
+
export type SearchString = string;
|
|
41
|
+
/**
|
|
42
|
+
* Base64 encoded string that is searched to find a match.
|
|
43
|
+
*/
|
|
44
|
+
export type SearchStringBase64 = string;
|
|
45
|
+
/**
|
|
46
|
+
* Handling of requests containing oversize fields
|
|
47
|
+
*/
|
|
48
|
+
export type OversizeHandling = ("CONTINUE" | "MATCH" | "NO_MATCH");
|
|
51
49
|
/**
|
|
52
50
|
* JSON pointer path in the web request's JSON body
|
|
53
51
|
*/
|
|
54
52
|
export type JsonPointerPath = string;
|
|
55
53
|
/**
|
|
56
|
-
* The
|
|
54
|
+
* The parts of the JSON to match against using the MatchPattern.
|
|
57
55
|
*/
|
|
58
|
-
export type
|
|
56
|
+
export type JsonMatchScope = ("ALL" | "KEY" | "VALUE");
|
|
59
57
|
/**
|
|
60
|
-
*
|
|
58
|
+
* The inspection behavior to fall back to if the JSON in the request body is invalid.
|
|
61
59
|
*/
|
|
62
|
-
export type
|
|
60
|
+
export type BodyParsingFallbackBehavior = ("MATCH" | "NO_MATCH" | "EVALUATE_AS_STRING");
|
|
63
61
|
/**
|
|
64
|
-
*
|
|
62
|
+
* The parts of the request to match against using the MatchPattern.
|
|
65
63
|
*/
|
|
66
|
-
export type
|
|
64
|
+
export type MapMatchScope = ("ALL" | "KEY" | "VALUE");
|
|
67
65
|
/**
|
|
68
|
-
*
|
|
66
|
+
* Priority of Rule being evaluated.
|
|
69
67
|
*/
|
|
70
|
-
export type
|
|
71
|
-
export type RateLimit = number;
|
|
72
|
-
export type EvaluationWindowSec = (60 | 120 | 300 | 600);
|
|
68
|
+
export type TextTransformationPriority = number;
|
|
73
69
|
/**
|
|
74
|
-
*
|
|
70
|
+
* Type of text transformation.
|
|
75
71
|
*/
|
|
76
|
-
export type
|
|
72
|
+
export type TextTransformationType = ("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");
|
|
77
73
|
/**
|
|
78
|
-
*
|
|
74
|
+
* Position of the evaluation in the FieldToMatch of request.
|
|
79
75
|
*/
|
|
80
|
-
export type
|
|
81
|
-
export type LabelMatchScope = ("LABEL" | "NAMESPACE");
|
|
82
|
-
export type LabelMatchKey = string;
|
|
76
|
+
export type PositionalConstraint = ("EXACTLY" | "STARTS_WITH" | "ENDS_WITH" | "CONTAINS" | "CONTAINS_WORD");
|
|
83
77
|
/**
|
|
84
78
|
* Sensitivity Level current only used for sqli match statements.
|
|
85
79
|
*/
|
|
86
80
|
export type SensitivityLevel = ("LOW" | "HIGH");
|
|
81
|
+
export type UsageOfAction = ("ENABLED" | "DISABLED");
|
|
82
|
+
export type SensitivityToAct = ("LOW" | "MEDIUM" | "HIGH");
|
|
83
|
+
export type RegexPatternString = string;
|
|
84
|
+
export type RegularExpressionList = Regex[];
|
|
85
|
+
export type RateLimit = number;
|
|
86
|
+
export type EvaluationWindowSec = (60 | 120 | 300 | 600);
|
|
87
|
+
export type LabelMatchScope = ("LABEL" | "NAMESPACE");
|
|
88
|
+
export type LabelMatchKey = string;
|
|
87
89
|
/**
|
|
88
90
|
* Name of the Label.
|
|
89
91
|
*/
|
|
90
92
|
export type LabelName = string;
|
|
91
93
|
/**
|
|
92
|
-
*
|
|
94
|
+
* Key of the field to protect.
|
|
93
95
|
*/
|
|
94
|
-
export type
|
|
96
|
+
export type FieldToProtectKeyName = string;
|
|
97
|
+
export type DataProtectionAction = ("SUBSTITUTION" | "HASH");
|
|
95
98
|
/**
|
|
96
|
-
*
|
|
99
|
+
* @minItems 1
|
|
97
100
|
*/
|
|
98
|
-
export type
|
|
101
|
+
export type DataProtections = DataProtect[];
|
|
99
102
|
/**
|
|
100
103
|
* Valid values are TEXT_PLAIN, TEXT_HTML, and APPLICATION_JSON.
|
|
101
104
|
*/
|
|
@@ -105,121 +108,50 @@ export type ResponseContentType = ("TEXT_PLAIN" | "TEXT_HTML" | "APPLICATION_JSO
|
|
|
105
108
|
*/
|
|
106
109
|
export type ResponseContent = string;
|
|
107
110
|
/**
|
|
108
|
-
*
|
|
111
|
+
* List of domains to accept in web request tokens, in addition to the domain of the protected resource.
|
|
109
112
|
*/
|
|
110
|
-
export type
|
|
113
|
+
export type TokenDomains = string[];
|
|
114
|
+
export type SizeInspectionLimit = ("KB_16" | "KB_32" | "KB_48" | "KB_64");
|
|
111
115
|
/**
|
|
112
116
|
* Contains the Rules that identify the requests that you want to allow, block, or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), and the action for each Rule that you add to a WebACL, for example, block requests from specified IP addresses or block requests from specified referrers. You also associate the WebACL with a CloudFront distribution to identify the requests that you want AWS WAF to filter. If you add more than one Rule to a WebACL, a request needs to match only one of the specifications to be allowed, blocked, or counted.
|
|
113
117
|
*/
|
|
114
118
|
export interface _AWS_WAFV2_WEBACL {
|
|
119
|
+
Arn?: ResourceArn;
|
|
120
|
+
Capacity?: number;
|
|
121
|
+
DefaultAction: DefaultAction;
|
|
115
122
|
Description?: EntityDescription;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
OnSourceDDoSProtectionConfig?: unknown;
|
|
123
|
+
Name?: EntityName;
|
|
124
|
+
Id?: EntityId;
|
|
125
|
+
Scope: Scope;
|
|
120
126
|
/**
|
|
121
127
|
* Collection of Rules.
|
|
122
128
|
*/
|
|
123
129
|
Rules?: Rule[];
|
|
124
130
|
VisibilityConfig: VisibilityConfig;
|
|
125
|
-
|
|
126
|
-
Name?: EntityName;
|
|
127
|
-
TokenDomains?: TokenDomains;
|
|
128
|
-
DefaultAction: DefaultAction;
|
|
129
|
-
Scope: Scope;
|
|
130
|
-
Capacity?: number;
|
|
131
|
-
CustomResponseBodies?: CustomResponseBodies;
|
|
132
|
-
Id?: EntityId;
|
|
133
|
-
Arn?: ResourceArn;
|
|
134
|
-
CaptchaConfig?: CaptchaConfig;
|
|
131
|
+
DataProtectionConfig?: DataProtectionConfig;
|
|
135
132
|
/**
|
|
136
133
|
* @minItems 1
|
|
137
134
|
*/
|
|
138
135
|
Tags?: Tag[];
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
* AssociationConfig for body inspection
|
|
142
|
-
*/
|
|
143
|
-
export interface AssociationConfig {
|
|
144
|
-
RequestBody?: RequestBody;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig
|
|
148
|
-
*/
|
|
149
|
-
export interface RequestBody {
|
|
150
|
-
[k: string]: RequestBodyAssociatedResourceTypeConfig;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Configures the inspection size in the request body.
|
|
154
|
-
*
|
|
155
|
-
* This interface was referenced by `RequestBody`'s JSON-Schema definition
|
|
156
|
-
* via the `patternProperty` "^(CLOUDFRONT|API_GATEWAY|COGNITO_USER_POOL|APP_RUNNER_SERVICE|VERIFIED_ACCESS_INSTANCE)$".
|
|
157
|
-
*/
|
|
158
|
-
export interface RequestBodyAssociatedResourceTypeConfig {
|
|
159
|
-
DefaultSizeInspectionLimit: SizeInspectionLimit;
|
|
160
|
-
}
|
|
161
|
-
export interface ChallengeConfig {
|
|
162
|
-
ImmunityTimeProperty?: ImmunityTimeProperty;
|
|
163
|
-
}
|
|
164
|
-
export interface ImmunityTimeProperty {
|
|
165
|
-
ImmunityTime: number;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Collection of dataProtects.
|
|
169
|
-
*/
|
|
170
|
-
export interface DataProtectionConfig {
|
|
171
|
-
DataProtections: DataProtections;
|
|
172
|
-
}
|
|
173
|
-
export interface DataProtect {
|
|
174
|
-
Field: FieldToProtect;
|
|
175
|
-
Action: DataProtectionAction;
|
|
176
|
-
ExcludeRateBasedDetails?: boolean;
|
|
177
|
-
ExcludeRuleMatchDetails?: boolean;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Field in log to protect.
|
|
181
|
-
*/
|
|
182
|
-
export interface FieldToProtect {
|
|
183
|
-
/**
|
|
184
|
-
* List of field keys to protect
|
|
185
|
-
*/
|
|
186
|
-
FieldKeys?: FieldToProtectKeyName[];
|
|
187
|
-
/**
|
|
188
|
-
* Field type to protect
|
|
189
|
-
*/
|
|
190
|
-
FieldType: ("SINGLE_HEADER" | "SINGLE_COOKIE" | "SINGLE_QUERY_ARGUMENT" | "QUERY_STRING" | "BODY");
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Rule of WebACL that contains condition and action.
|
|
194
|
-
*/
|
|
195
|
-
export interface Rule {
|
|
196
|
-
Action?: RuleAction;
|
|
197
|
-
Priority: RulePriority;
|
|
198
|
-
Statement: Statement;
|
|
199
|
-
ChallengeConfig?: ChallengeConfig;
|
|
200
|
-
OverrideAction?: OverrideAction;
|
|
201
|
-
/**
|
|
202
|
-
* Collection of Rule Labels.
|
|
203
|
-
*/
|
|
204
|
-
RuleLabels?: Label[];
|
|
205
|
-
VisibilityConfig: VisibilityConfig;
|
|
136
|
+
LabelNamespace?: LabelName;
|
|
137
|
+
CustomResponseBodies?: CustomResponseBodies;
|
|
206
138
|
CaptchaConfig?: CaptchaConfig;
|
|
207
|
-
|
|
139
|
+
ChallengeConfig?: ChallengeConfig;
|
|
140
|
+
TokenDomains?: TokenDomains;
|
|
141
|
+
AssociationConfig?: AssociationConfig;
|
|
142
|
+
OnSourceDDoSProtectionConfig?: OnSourceDDoSProtectionConfig;
|
|
208
143
|
}
|
|
209
144
|
/**
|
|
210
|
-
* Action
|
|
145
|
+
* Default Action WebACL will take against ingress traffic when there is no matching Rule.
|
|
211
146
|
*/
|
|
212
|
-
export interface
|
|
213
|
-
Captcha?: CaptchaAction;
|
|
214
|
-
Block?: BlockAction;
|
|
215
|
-
Count?: CountAction;
|
|
147
|
+
export interface DefaultAction {
|
|
216
148
|
Allow?: AllowAction;
|
|
217
|
-
|
|
149
|
+
Block?: BlockAction;
|
|
218
150
|
}
|
|
219
151
|
/**
|
|
220
|
-
*
|
|
152
|
+
* Allow traffic towards application.
|
|
221
153
|
*/
|
|
222
|
-
export interface
|
|
154
|
+
export interface AllowAction {
|
|
223
155
|
CustomRequestHandling?: CustomRequestHandling;
|
|
224
156
|
}
|
|
225
157
|
/**
|
|
@@ -237,8 +169,8 @@ export interface CustomRequestHandling {
|
|
|
237
169
|
* HTTP header.
|
|
238
170
|
*/
|
|
239
171
|
export interface CustomHTTPHeader {
|
|
240
|
-
Value: CustomHTTPHeaderValue;
|
|
241
172
|
Name: CustomHTTPHeaderName;
|
|
173
|
+
Value: CustomHTTPHeaderValue;
|
|
242
174
|
}
|
|
243
175
|
/**
|
|
244
176
|
* Block traffic towards application.
|
|
@@ -263,75 +195,77 @@ export interface CustomResponse {
|
|
|
263
195
|
ResponseHeaders?: CustomHTTPHeader[];
|
|
264
196
|
}
|
|
265
197
|
/**
|
|
266
|
-
*
|
|
267
|
-
*/
|
|
268
|
-
export interface CountAction {
|
|
269
|
-
CustomRequestHandling?: CustomRequestHandling;
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Allow traffic towards application.
|
|
273
|
-
*/
|
|
274
|
-
export interface AllowAction {
|
|
275
|
-
CustomRequestHandling?: CustomRequestHandling;
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.
|
|
198
|
+
* Rule of WebACL that contains condition and action.
|
|
279
199
|
*/
|
|
280
|
-
export interface
|
|
281
|
-
|
|
200
|
+
export interface Rule {
|
|
201
|
+
Name: EntityName;
|
|
202
|
+
Priority: RulePriority;
|
|
203
|
+
Statement: Statement;
|
|
204
|
+
Action?: RuleAction;
|
|
205
|
+
OverrideAction?: OverrideAction;
|
|
206
|
+
/**
|
|
207
|
+
* Collection of Rule Labels.
|
|
208
|
+
*/
|
|
209
|
+
RuleLabels?: Label[];
|
|
210
|
+
VisibilityConfig: VisibilityConfig;
|
|
211
|
+
CaptchaConfig?: CaptchaConfig;
|
|
212
|
+
ChallengeConfig?: ChallengeConfig;
|
|
282
213
|
}
|
|
283
214
|
/**
|
|
284
215
|
* First level statement that contains conditions, such as ByteMatch, SizeConstraint, etc
|
|
285
216
|
*/
|
|
286
217
|
export interface Statement {
|
|
287
|
-
SizeConstraintStatement?: SizeConstraintStatement;
|
|
288
|
-
AndStatement?: AndStatement;
|
|
289
|
-
XssMatchStatement?: XssMatchStatement;
|
|
290
|
-
NotStatement?: NotStatement;
|
|
291
218
|
ByteMatchStatement?: ByteMatchStatement;
|
|
292
|
-
|
|
219
|
+
SqliMatchStatement?: SqliMatchStatement;
|
|
220
|
+
XssMatchStatement?: XssMatchStatement;
|
|
221
|
+
SizeConstraintStatement?: SizeConstraintStatement;
|
|
293
222
|
GeoMatchStatement?: GeoMatchStatement;
|
|
294
223
|
RuleGroupReferenceStatement?: RuleGroupReferenceStatement;
|
|
295
|
-
|
|
296
|
-
RegexMatchStatement?: RegexMatchStatement;
|
|
297
|
-
SqliMatchStatement?: SqliMatchStatement;
|
|
224
|
+
IPSetReferenceStatement?: IPSetReferenceStatement;
|
|
298
225
|
RegexPatternSetReferenceStatement?: RegexPatternSetReferenceStatement;
|
|
299
|
-
OrStatement?: OrStatement;
|
|
300
226
|
ManagedRuleGroupStatement?: ManagedRuleGroupStatement;
|
|
301
|
-
|
|
227
|
+
RateBasedStatement?: RateBasedStatement;
|
|
228
|
+
AndStatement?: AndStatement;
|
|
229
|
+
OrStatement?: OrStatement;
|
|
230
|
+
NotStatement?: NotStatement;
|
|
231
|
+
LabelMatchStatement?: LabelMatchStatement;
|
|
232
|
+
RegexMatchStatement?: RegexMatchStatement;
|
|
233
|
+
AsnMatchStatement?: AsnMatchStatement;
|
|
302
234
|
}
|
|
303
235
|
/**
|
|
304
|
-
*
|
|
236
|
+
* Byte Match statement.
|
|
305
237
|
*/
|
|
306
|
-
export interface
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
Size: number;
|
|
238
|
+
export interface ByteMatchStatement {
|
|
239
|
+
SearchString?: SearchString;
|
|
240
|
+
SearchStringBase64?: SearchStringBase64;
|
|
310
241
|
FieldToMatch: FieldToMatch;
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
* Text Transformation on the Search String before match.
|
|
314
|
-
*/
|
|
315
|
-
export interface TextTransformation {
|
|
316
|
-
Type: TextTransformationType;
|
|
317
|
-
Priority: TextTransformationPriority;
|
|
242
|
+
TextTransformations: TextTransformation[];
|
|
243
|
+
PositionalConstraint: PositionalConstraint;
|
|
318
244
|
}
|
|
319
245
|
/**
|
|
320
246
|
* Field of the request to match.
|
|
321
247
|
*/
|
|
322
248
|
export interface FieldToMatch {
|
|
249
|
+
SingleHeader?: {
|
|
250
|
+
Name: string;
|
|
251
|
+
};
|
|
252
|
+
/**
|
|
253
|
+
* One query argument in a web request, identified by name, for example UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.
|
|
254
|
+
*/
|
|
255
|
+
SingleQueryArgument?: {
|
|
256
|
+
Name: string;
|
|
257
|
+
};
|
|
323
258
|
/**
|
|
324
259
|
* All query arguments of a web request.
|
|
325
260
|
*/
|
|
326
261
|
AllQueryArguments?: {
|
|
327
262
|
[k: string]: unknown;
|
|
328
263
|
};
|
|
329
|
-
JA3Fingerprint?: JA3Fingerprint;
|
|
330
264
|
/**
|
|
331
|
-
*
|
|
265
|
+
* The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.
|
|
332
266
|
*/
|
|
333
|
-
|
|
334
|
-
|
|
267
|
+
UriPath?: {
|
|
268
|
+
[k: string]: unknown;
|
|
335
269
|
};
|
|
336
270
|
/**
|
|
337
271
|
* The query string of a web request. This is the part of a URL that appears after a ? character, if any.
|
|
@@ -339,40 +273,53 @@ export interface FieldToMatch {
|
|
|
339
273
|
QueryString?: {
|
|
340
274
|
[k: string]: unknown;
|
|
341
275
|
};
|
|
342
|
-
|
|
276
|
+
Body?: Body;
|
|
343
277
|
/**
|
|
344
278
|
* The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.
|
|
345
279
|
*/
|
|
346
280
|
Method?: {
|
|
347
281
|
[k: string]: unknown;
|
|
348
282
|
};
|
|
349
|
-
UriFragment?: UriFragment;
|
|
350
283
|
JsonBody?: JsonBody;
|
|
351
|
-
|
|
352
|
-
* The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.
|
|
353
|
-
*/
|
|
354
|
-
UriPath?: {
|
|
355
|
-
[k: string]: unknown;
|
|
356
|
-
};
|
|
284
|
+
Headers?: Headers;
|
|
357
285
|
Cookies?: Cookies;
|
|
286
|
+
JA3Fingerprint?: JA3Fingerprint;
|
|
358
287
|
JA4Fingerprint?: JA4Fingerprint;
|
|
359
|
-
|
|
360
|
-
SingleHeader?: {
|
|
361
|
-
Name: string;
|
|
362
|
-
};
|
|
288
|
+
UriFragment?: UriFragment;
|
|
363
289
|
}
|
|
364
290
|
/**
|
|
365
|
-
*
|
|
291
|
+
* The body of a web request. This immediately follows the request headers.
|
|
366
292
|
*/
|
|
367
|
-
export interface
|
|
368
|
-
|
|
293
|
+
export interface Body {
|
|
294
|
+
OversizeHandling?: OversizeHandling;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Inspect the request body as JSON. The request body immediately follows the request headers.
|
|
298
|
+
*/
|
|
299
|
+
export interface JsonBody {
|
|
300
|
+
MatchPattern: JsonMatchPattern;
|
|
301
|
+
MatchScope: JsonMatchScope;
|
|
302
|
+
InvalidFallbackBehavior?: BodyParsingFallbackBehavior;
|
|
303
|
+
OversizeHandling?: OversizeHandling;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* The pattern to look for in the JSON body.
|
|
307
|
+
*/
|
|
308
|
+
export interface JsonMatchPattern {
|
|
309
|
+
/**
|
|
310
|
+
* Inspect all parts of the web request's JSON body.
|
|
311
|
+
*/
|
|
312
|
+
All?: {
|
|
313
|
+
[k: string]: unknown;
|
|
314
|
+
};
|
|
315
|
+
IncludedPaths?: JsonPointerPath[];
|
|
369
316
|
}
|
|
370
317
|
/**
|
|
371
318
|
* Includes headers of a web request.
|
|
372
319
|
*/
|
|
373
320
|
export interface Headers {
|
|
374
|
-
MatchScope: MapMatchScope;
|
|
375
321
|
MatchPattern: HeaderMatchPattern;
|
|
322
|
+
MatchScope: MapMatchScope;
|
|
376
323
|
OversizeHandling: OversizeHandling;
|
|
377
324
|
}
|
|
378
325
|
/**
|
|
@@ -396,39 +343,12 @@ export interface HeaderMatchPattern {
|
|
|
396
343
|
*/
|
|
397
344
|
ExcludedHeaders?: string[];
|
|
398
345
|
}
|
|
399
|
-
/**
|
|
400
|
-
* The path component of the URI Fragment. This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
401
|
-
*/
|
|
402
|
-
export interface UriFragment {
|
|
403
|
-
FallbackBehavior?: ("MATCH" | "NO_MATCH");
|
|
404
|
-
}
|
|
405
|
-
/**
|
|
406
|
-
* Inspect the request body as JSON. The request body immediately follows the request headers.
|
|
407
|
-
*/
|
|
408
|
-
export interface JsonBody {
|
|
409
|
-
MatchScope: JsonMatchScope;
|
|
410
|
-
MatchPattern: JsonMatchPattern;
|
|
411
|
-
InvalidFallbackBehavior?: BodyParsingFallbackBehavior;
|
|
412
|
-
OversizeHandling?: OversizeHandling;
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* The pattern to look for in the JSON body.
|
|
416
|
-
*/
|
|
417
|
-
export interface JsonMatchPattern {
|
|
418
|
-
/**
|
|
419
|
-
* Inspect all parts of the web request's JSON body.
|
|
420
|
-
*/
|
|
421
|
-
All?: {
|
|
422
|
-
[k: string]: unknown;
|
|
423
|
-
};
|
|
424
|
-
IncludedPaths?: JsonPointerPath[];
|
|
425
|
-
}
|
|
426
346
|
/**
|
|
427
347
|
* Includes cookies of a web request.
|
|
428
348
|
*/
|
|
429
349
|
export interface Cookies {
|
|
430
|
-
MatchScope: MapMatchScope;
|
|
431
350
|
MatchPattern: CookieMatchPattern;
|
|
351
|
+
MatchScope: MapMatchScope;
|
|
432
352
|
OversizeHandling: OversizeHandling;
|
|
433
353
|
}
|
|
434
354
|
/**
|
|
@@ -453,260 +373,213 @@ export interface CookieMatchPattern {
|
|
|
453
373
|
ExcludedCookies?: string[];
|
|
454
374
|
}
|
|
455
375
|
/**
|
|
456
|
-
* Includes the
|
|
376
|
+
* Includes the JA3 fingerprint of a web request.
|
|
457
377
|
*/
|
|
458
|
-
export interface
|
|
378
|
+
export interface JA3Fingerprint {
|
|
459
379
|
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
460
380
|
}
|
|
461
381
|
/**
|
|
462
|
-
*
|
|
463
|
-
*/
|
|
464
|
-
export interface Body {
|
|
465
|
-
OversizeHandling?: OversizeHandling;
|
|
466
|
-
}
|
|
467
|
-
export interface AndStatement {
|
|
468
|
-
Statements: Statement[];
|
|
469
|
-
}
|
|
470
|
-
/**
|
|
471
|
-
* Xss Match Statement.
|
|
382
|
+
* Includes the JA4 fingerprint of a web request.
|
|
472
383
|
*/
|
|
473
|
-
export interface
|
|
474
|
-
|
|
475
|
-
FieldToMatch: FieldToMatch;
|
|
476
|
-
}
|
|
477
|
-
export interface NotStatement {
|
|
478
|
-
Statement: Statement;
|
|
384
|
+
export interface JA4Fingerprint {
|
|
385
|
+
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
479
386
|
}
|
|
480
387
|
/**
|
|
481
|
-
*
|
|
388
|
+
* The path component of the URI Fragment. This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
482
389
|
*/
|
|
483
|
-
export interface
|
|
484
|
-
|
|
485
|
-
TextTransformations: TextTransformation[];
|
|
486
|
-
PositionalConstraint: PositionalConstraint;
|
|
487
|
-
SearchString?: SearchString;
|
|
488
|
-
FieldToMatch: FieldToMatch;
|
|
489
|
-
}
|
|
490
|
-
export interface RateBasedStatement {
|
|
491
|
-
AggregateKeyType: ("CONSTANT" | "IP" | "FORWARDED_IP" | "CUSTOM_KEYS");
|
|
492
|
-
/**
|
|
493
|
-
* Specifies the aggregate keys to use in a rate-base rule.
|
|
494
|
-
*
|
|
495
|
-
* @maxItems 5
|
|
496
|
-
*/
|
|
497
|
-
CustomKeys?: RateBasedStatementCustomKey[];
|
|
498
|
-
ForwardedIPConfig?: ForwardedIPConfiguration;
|
|
499
|
-
Limit: RateLimit;
|
|
500
|
-
EvaluationWindowSec?: EvaluationWindowSec;
|
|
501
|
-
ScopeDownStatement?: Statement;
|
|
390
|
+
export interface UriFragment {
|
|
391
|
+
FallbackBehavior?: ("MATCH" | "NO_MATCH");
|
|
502
392
|
}
|
|
503
393
|
/**
|
|
504
|
-
*
|
|
394
|
+
* Text Transformation on the Search String before match.
|
|
505
395
|
*/
|
|
506
|
-
export interface
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
QueryArgument?: RateLimitQueryArgument;
|
|
510
|
-
JA3Fingerprint?: RateLimitJA3Fingerprint;
|
|
511
|
-
Header?: RateLimitHeader;
|
|
512
|
-
HTTPMethod?: RateLimitHTTPMethod;
|
|
513
|
-
QueryString?: RateLimitQueryString;
|
|
514
|
-
UriPath?: RateLimitUriPath;
|
|
515
|
-
IP?: RateLimitIP;
|
|
516
|
-
JA4Fingerprint?: RateLimitJA4Fingerprint;
|
|
517
|
-
LabelNamespace?: RateLimitLabelNamespace;
|
|
396
|
+
export interface TextTransformation {
|
|
397
|
+
Priority: TextTransformationPriority;
|
|
398
|
+
Type: TextTransformationType;
|
|
518
399
|
}
|
|
519
400
|
/**
|
|
520
|
-
*
|
|
401
|
+
* Sqli Match Statement.
|
|
521
402
|
*/
|
|
522
|
-
export interface
|
|
403
|
+
export interface SqliMatchStatement {
|
|
404
|
+
FieldToMatch: FieldToMatch;
|
|
523
405
|
TextTransformations: TextTransformation[];
|
|
524
|
-
|
|
525
|
-
* The name of the cookie to use.
|
|
526
|
-
*/
|
|
527
|
-
Name: string;
|
|
406
|
+
SensitivityLevel?: SensitivityLevel;
|
|
528
407
|
}
|
|
529
408
|
/**
|
|
530
|
-
*
|
|
409
|
+
* Xss Match Statement.
|
|
531
410
|
*/
|
|
532
|
-
export interface
|
|
533
|
-
|
|
411
|
+
export interface XssMatchStatement {
|
|
412
|
+
FieldToMatch: FieldToMatch;
|
|
413
|
+
TextTransformations: TextTransformation[];
|
|
534
414
|
}
|
|
535
415
|
/**
|
|
536
|
-
*
|
|
416
|
+
* Size Constraint statement.
|
|
537
417
|
*/
|
|
538
|
-
export interface
|
|
418
|
+
export interface SizeConstraintStatement {
|
|
419
|
+
FieldToMatch: FieldToMatch;
|
|
420
|
+
ComparisonOperator: ("EQ" | "NE" | "LE" | "LT" | "GE" | "GT");
|
|
421
|
+
Size: number;
|
|
539
422
|
TextTransformations: TextTransformation[];
|
|
540
|
-
/**
|
|
541
|
-
* The name of the query argument to use.
|
|
542
|
-
*/
|
|
543
|
-
Name: string;
|
|
544
423
|
}
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
424
|
+
export interface GeoMatchStatement {
|
|
425
|
+
CountryCodes?: string[];
|
|
426
|
+
ForwardedIPConfig?: ForwardedIPConfiguration;
|
|
427
|
+
}
|
|
428
|
+
export interface ForwardedIPConfiguration {
|
|
429
|
+
HeaderName: string;
|
|
549
430
|
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
550
431
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
export interface RateLimitHeader {
|
|
555
|
-
TextTransformations: TextTransformation[];
|
|
432
|
+
export interface RuleGroupReferenceStatement {
|
|
433
|
+
Arn: ResourceArn;
|
|
434
|
+
ExcludedRules?: ExcludedRule[];
|
|
556
435
|
/**
|
|
557
|
-
*
|
|
436
|
+
* Action overrides for rules in the rule group.
|
|
437
|
+
*
|
|
438
|
+
* @maxItems 100
|
|
558
439
|
*/
|
|
559
|
-
|
|
440
|
+
RuleActionOverrides?: RuleActionOverride[];
|
|
560
441
|
}
|
|
561
442
|
/**
|
|
562
|
-
*
|
|
443
|
+
* Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.
|
|
563
444
|
*/
|
|
564
|
-
export interface
|
|
565
|
-
|
|
445
|
+
export interface ExcludedRule {
|
|
446
|
+
Name: EntityName;
|
|
566
447
|
}
|
|
567
448
|
/**
|
|
568
|
-
*
|
|
449
|
+
* Action override for rules in the rule group.
|
|
569
450
|
*/
|
|
570
|
-
export interface
|
|
571
|
-
|
|
451
|
+
export interface RuleActionOverride {
|
|
452
|
+
Name: EntityName;
|
|
453
|
+
ActionToUse: RuleAction;
|
|
572
454
|
}
|
|
573
455
|
/**
|
|
574
|
-
*
|
|
456
|
+
* Action taken when Rule matches its condition.
|
|
575
457
|
*/
|
|
576
|
-
export interface
|
|
577
|
-
|
|
458
|
+
export interface RuleAction {
|
|
459
|
+
Allow?: AllowAction;
|
|
460
|
+
Block?: BlockAction;
|
|
461
|
+
Count?: CountAction;
|
|
462
|
+
Captcha?: CaptchaAction;
|
|
463
|
+
Challenge?: ChallengeAction;
|
|
578
464
|
}
|
|
579
465
|
/**
|
|
580
|
-
*
|
|
466
|
+
* Allow traffic towards application.
|
|
581
467
|
*/
|
|
582
|
-
export interface
|
|
583
|
-
|
|
468
|
+
export interface CountAction {
|
|
469
|
+
CustomRequestHandling?: CustomRequestHandling;
|
|
584
470
|
}
|
|
585
471
|
/**
|
|
586
|
-
*
|
|
472
|
+
* Checks valid token exists with request.
|
|
587
473
|
*/
|
|
588
|
-
export interface
|
|
589
|
-
|
|
474
|
+
export interface CaptchaAction {
|
|
475
|
+
CustomRequestHandling?: CustomRequestHandling;
|
|
590
476
|
}
|
|
591
477
|
/**
|
|
592
|
-
*
|
|
478
|
+
* Checks that the request has a valid token with an unexpired challenge timestamp and, if not, returns a browser challenge to the client.
|
|
593
479
|
*/
|
|
594
|
-
export interface
|
|
595
|
-
|
|
596
|
-
* The namespace to use for aggregation.
|
|
597
|
-
*/
|
|
598
|
-
Namespace: string;
|
|
599
|
-
}
|
|
600
|
-
export interface ForwardedIPConfiguration {
|
|
601
|
-
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
602
|
-
HeaderName: string;
|
|
603
|
-
}
|
|
604
|
-
export interface GeoMatchStatement {
|
|
605
|
-
ForwardedIPConfig?: ForwardedIPConfiguration;
|
|
606
|
-
CountryCodes?: string[];
|
|
480
|
+
export interface ChallengeAction {
|
|
481
|
+
CustomRequestHandling?: CustomRequestHandling;
|
|
607
482
|
}
|
|
608
|
-
export interface
|
|
609
|
-
/**
|
|
610
|
-
* Action overrides for rules in the rule group.
|
|
611
|
-
*
|
|
612
|
-
* @maxItems 100
|
|
613
|
-
*/
|
|
614
|
-
RuleActionOverrides?: RuleActionOverride[];
|
|
483
|
+
export interface IPSetReferenceStatement {
|
|
615
484
|
Arn: ResourceArn;
|
|
616
|
-
|
|
617
|
-
}
|
|
618
|
-
/**
|
|
619
|
-
* Action override for rules in the rule group.
|
|
620
|
-
*/
|
|
621
|
-
export interface RuleActionOverride {
|
|
622
|
-
ActionToUse: RuleAction;
|
|
623
|
-
Name: EntityName;
|
|
624
|
-
}
|
|
625
|
-
/**
|
|
626
|
-
* Excluded Rule in the RuleGroup or ManagedRuleGroup will not be evaluated.
|
|
627
|
-
*/
|
|
628
|
-
export interface ExcludedRule {
|
|
629
|
-
Name: EntityName;
|
|
630
|
-
}
|
|
631
|
-
export interface LabelMatchStatement {
|
|
632
|
-
Scope: LabelMatchScope;
|
|
633
|
-
Key: LabelMatchKey;
|
|
634
|
-
}
|
|
635
|
-
export interface RegexMatchStatement {
|
|
636
|
-
TextTransformations: TextTransformation[];
|
|
637
|
-
RegexString: string;
|
|
638
|
-
FieldToMatch: FieldToMatch;
|
|
485
|
+
IPSetForwardedIPConfig?: IPSetForwardedIPConfiguration;
|
|
639
486
|
}
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
SensitivityLevel?: SensitivityLevel;
|
|
645
|
-
TextTransformations: TextTransformation[];
|
|
646
|
-
FieldToMatch: FieldToMatch;
|
|
487
|
+
export interface IPSetForwardedIPConfiguration {
|
|
488
|
+
HeaderName: string;
|
|
489
|
+
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
490
|
+
Position: ("FIRST" | "LAST" | "ANY");
|
|
647
491
|
}
|
|
648
492
|
export interface RegexPatternSetReferenceStatement {
|
|
649
|
-
TextTransformations: TextTransformation[];
|
|
650
493
|
Arn: ResourceArn;
|
|
651
494
|
FieldToMatch: FieldToMatch;
|
|
652
|
-
|
|
653
|
-
export interface OrStatement {
|
|
654
|
-
Statements: Statement[];
|
|
495
|
+
TextTransformations: TextTransformation[];
|
|
655
496
|
}
|
|
656
497
|
export interface ManagedRuleGroupStatement {
|
|
498
|
+
Name: EntityName;
|
|
657
499
|
VendorName: string;
|
|
658
500
|
Version?: string;
|
|
501
|
+
ExcludedRules?: ExcludedRule[];
|
|
502
|
+
ScopeDownStatement?: Statement;
|
|
503
|
+
/**
|
|
504
|
+
* Collection of ManagedRuleGroupConfig.
|
|
505
|
+
*/
|
|
506
|
+
ManagedRuleGroupConfigs?: ManagedRuleGroupConfig[];
|
|
659
507
|
/**
|
|
660
508
|
* Action overrides for rules in the rule group.
|
|
661
509
|
*
|
|
662
510
|
* @maxItems 100
|
|
663
511
|
*/
|
|
664
512
|
RuleActionOverrides?: RuleActionOverride[];
|
|
665
|
-
/**
|
|
666
|
-
* Collection of ManagedRuleGroupConfig.
|
|
667
|
-
*/
|
|
668
|
-
ManagedRuleGroupConfigs?: ManagedRuleGroupConfig[];
|
|
669
|
-
ExcludedRules?: ExcludedRule[];
|
|
670
|
-
Name: EntityName;
|
|
671
|
-
ScopeDownStatement?: Statement;
|
|
672
513
|
}
|
|
673
514
|
/**
|
|
674
515
|
* ManagedRuleGroupConfig.
|
|
675
516
|
*/
|
|
676
517
|
export interface ManagedRuleGroupConfig {
|
|
677
|
-
UsernameField?: FieldIdentifier;
|
|
678
518
|
LoginPath?: string;
|
|
679
|
-
|
|
680
|
-
|
|
519
|
+
PayloadType?: ("JSON" | "FORM_ENCODED");
|
|
520
|
+
UsernameField?: FieldIdentifier;
|
|
681
521
|
PasswordField?: FieldIdentifier;
|
|
522
|
+
AWSManagedRulesBotControlRuleSet?: AWSManagedRulesBotControlRuleSet;
|
|
523
|
+
AWSManagedRulesATPRuleSet?: AWSManagedRulesATPRuleSet;
|
|
682
524
|
AWSManagedRulesACFPRuleSet?: AWSManagedRulesACFPRuleSet;
|
|
683
|
-
|
|
525
|
+
AWSManagedRulesAntiDDoSRuleSet?: AWSManagedRulesAntiDDoSRuleSet;
|
|
684
526
|
}
|
|
685
527
|
export interface FieldIdentifier {
|
|
686
528
|
Identifier: string;
|
|
687
529
|
}
|
|
530
|
+
/**
|
|
531
|
+
* Configures how to use the Bot Control managed rule group in the web ACL
|
|
532
|
+
*/
|
|
533
|
+
export interface AWSManagedRulesBotControlRuleSet {
|
|
534
|
+
InspectionLevel: ("COMMON" | "TARGETED");
|
|
535
|
+
EnableMachineLearning?: boolean;
|
|
536
|
+
}
|
|
688
537
|
/**
|
|
689
538
|
* Configures how to use the Account Takeover Prevention managed rule group in the web ACL
|
|
690
539
|
*/
|
|
691
540
|
export interface AWSManagedRulesATPRuleSet {
|
|
692
|
-
ResponseInspection?: ResponseInspection;
|
|
693
|
-
EnableRegexInPath?: boolean;
|
|
694
541
|
LoginPath: string;
|
|
542
|
+
EnableRegexInPath?: boolean;
|
|
695
543
|
RequestInspection?: RequestInspection;
|
|
544
|
+
ResponseInspection?: ResponseInspection;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Configures the inspection of login requests
|
|
548
|
+
*/
|
|
549
|
+
export interface RequestInspection {
|
|
550
|
+
PayloadType: ("JSON" | "FORM_ENCODED");
|
|
551
|
+
UsernameField: FieldIdentifier;
|
|
552
|
+
PasswordField: FieldIdentifier;
|
|
696
553
|
}
|
|
697
554
|
/**
|
|
698
555
|
* Configures the inspection of login responses
|
|
699
556
|
*/
|
|
700
557
|
export interface ResponseInspection {
|
|
558
|
+
StatusCode?: ResponseInspectionStatusCode;
|
|
701
559
|
Header?: ResponseInspectionHeader;
|
|
702
560
|
BodyContains?: ResponseInspectionBodyContains;
|
|
703
561
|
Json?: ResponseInspectionJson;
|
|
704
|
-
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Response status codes that indicate success or failure of a login request
|
|
565
|
+
*/
|
|
566
|
+
export interface ResponseInspectionStatusCode {
|
|
567
|
+
/**
|
|
568
|
+
* @minItems 1
|
|
569
|
+
* @maxItems 10
|
|
570
|
+
*/
|
|
571
|
+
SuccessCodes: number[];
|
|
572
|
+
/**
|
|
573
|
+
* @minItems 1
|
|
574
|
+
* @maxItems 10
|
|
575
|
+
*/
|
|
576
|
+
FailureCodes: number[];
|
|
705
577
|
}
|
|
706
578
|
/**
|
|
707
579
|
* Response headers that indicate success or failure of a login request
|
|
708
580
|
*/
|
|
709
581
|
export interface ResponseInspectionHeader {
|
|
582
|
+
Name: string;
|
|
710
583
|
/**
|
|
711
584
|
* @minItems 1
|
|
712
585
|
* @maxItems 3
|
|
@@ -717,7 +590,6 @@ export interface ResponseInspectionHeader {
|
|
|
717
590
|
* @maxItems 3
|
|
718
591
|
*/
|
|
719
592
|
FailureValues: string[];
|
|
720
|
-
Name: string;
|
|
721
593
|
}
|
|
722
594
|
/**
|
|
723
595
|
* Response body contents that indicate success or failure of a login request
|
|
@@ -751,64 +623,192 @@ export interface ResponseInspectionJson {
|
|
|
751
623
|
FailureValues: string[];
|
|
752
624
|
}
|
|
753
625
|
/**
|
|
754
|
-
*
|
|
626
|
+
* Configures how to use the Account creation fraud prevention managed rule group in the web ACL
|
|
755
627
|
*/
|
|
756
|
-
export interface
|
|
628
|
+
export interface AWSManagedRulesACFPRuleSet {
|
|
629
|
+
CreationPath: string;
|
|
630
|
+
RegistrationPagePath: string;
|
|
631
|
+
RequestInspection: RequestInspectionACFP;
|
|
632
|
+
ResponseInspection?: ResponseInspection;
|
|
633
|
+
EnableRegexInPath?: boolean;
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Configures the inspection of sign-up requests
|
|
637
|
+
*/
|
|
638
|
+
export interface RequestInspectionACFP {
|
|
639
|
+
PayloadType: ("JSON" | "FORM_ENCODED");
|
|
640
|
+
UsernameField?: FieldIdentifier;
|
|
641
|
+
PasswordField?: FieldIdentifier;
|
|
642
|
+
EmailField?: FieldIdentifier;
|
|
643
|
+
PhoneNumberFields?: FieldIdentifier[];
|
|
644
|
+
AddressFields?: FieldIdentifier[];
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Configures how to use the AntiDDOS AWS managed rule group in the web ACL
|
|
648
|
+
*/
|
|
649
|
+
export interface AWSManagedRulesAntiDDoSRuleSet {
|
|
650
|
+
ClientSideActionConfig: ClientSideActionConfig;
|
|
651
|
+
SensitivityToBlock?: SensitivityToAct;
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Client side action config for AntiDDOS AMR.
|
|
655
|
+
*/
|
|
656
|
+
export interface ClientSideActionConfig {
|
|
657
|
+
Challenge: ClientSideAction;
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Client side action config for AntiDDOS AMR.
|
|
661
|
+
*/
|
|
662
|
+
export interface ClientSideAction {
|
|
663
|
+
UsageOfAction: UsageOfAction;
|
|
664
|
+
Sensitivity?: SensitivityToAct;
|
|
665
|
+
ExemptUriRegularExpressions?: RegularExpressionList;
|
|
666
|
+
}
|
|
667
|
+
/**
|
|
668
|
+
* Regex
|
|
669
|
+
*/
|
|
670
|
+
export interface Regex {
|
|
671
|
+
RegexString?: RegexPatternString;
|
|
672
|
+
[k: string]: unknown;
|
|
673
|
+
}
|
|
674
|
+
export interface RateBasedStatement {
|
|
675
|
+
Limit: RateLimit;
|
|
676
|
+
EvaluationWindowSec?: EvaluationWindowSec;
|
|
677
|
+
AggregateKeyType: ("CONSTANT" | "IP" | "FORWARDED_IP" | "CUSTOM_KEYS");
|
|
757
678
|
/**
|
|
758
|
-
*
|
|
759
|
-
*
|
|
679
|
+
* Specifies the aggregate keys to use in a rate-base rule.
|
|
680
|
+
*
|
|
681
|
+
* @maxItems 5
|
|
760
682
|
*/
|
|
761
|
-
|
|
683
|
+
CustomKeys?: RateBasedStatementCustomKey[];
|
|
684
|
+
ScopeDownStatement?: Statement;
|
|
685
|
+
ForwardedIPConfig?: ForwardedIPConfiguration;
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Specifies a single custom aggregate key for a rate-base rule.
|
|
689
|
+
*/
|
|
690
|
+
export interface RateBasedStatementCustomKey {
|
|
691
|
+
Cookie?: RateLimitCookie;
|
|
692
|
+
ForwardedIP?: RateLimitForwardedIP;
|
|
693
|
+
Header?: RateLimitHeader;
|
|
694
|
+
HTTPMethod?: RateLimitHTTPMethod;
|
|
695
|
+
IP?: RateLimitIP;
|
|
696
|
+
LabelNamespace?: RateLimitLabelNamespace;
|
|
697
|
+
QueryArgument?: RateLimitQueryArgument;
|
|
698
|
+
QueryString?: RateLimitQueryString;
|
|
699
|
+
UriPath?: RateLimitUriPath;
|
|
700
|
+
JA3Fingerprint?: RateLimitJA3Fingerprint;
|
|
701
|
+
JA4Fingerprint?: RateLimitJA4Fingerprint;
|
|
702
|
+
ASN?: RateLimitAsn;
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* Specifies a cookie as an aggregate key for a rate-based rule.
|
|
706
|
+
*/
|
|
707
|
+
export interface RateLimitCookie {
|
|
762
708
|
/**
|
|
763
|
-
*
|
|
764
|
-
* @maxItems 10
|
|
709
|
+
* The name of the cookie to use.
|
|
765
710
|
*/
|
|
766
|
-
|
|
711
|
+
Name: string;
|
|
712
|
+
TextTransformations: TextTransformation[];
|
|
767
713
|
}
|
|
768
714
|
/**
|
|
769
|
-
*
|
|
715
|
+
* Specifies the first IP address in an HTTP header as an aggregate key for a rate-based rule.
|
|
770
716
|
*/
|
|
771
|
-
export interface
|
|
772
|
-
|
|
773
|
-
PasswordField: FieldIdentifier;
|
|
774
|
-
PayloadType: ("JSON" | "FORM_ENCODED");
|
|
717
|
+
export interface RateLimitForwardedIP {
|
|
718
|
+
[k: string]: unknown;
|
|
775
719
|
}
|
|
776
720
|
/**
|
|
777
|
-
*
|
|
721
|
+
* Specifies a header as an aggregate key for a rate-based rule.
|
|
778
722
|
*/
|
|
779
|
-
export interface
|
|
780
|
-
|
|
781
|
-
|
|
723
|
+
export interface RateLimitHeader {
|
|
724
|
+
/**
|
|
725
|
+
* The name of the header to use.
|
|
726
|
+
*/
|
|
727
|
+
Name: string;
|
|
728
|
+
TextTransformations: TextTransformation[];
|
|
782
729
|
}
|
|
783
730
|
/**
|
|
784
|
-
*
|
|
731
|
+
* Specifies the request's HTTP method as an aggregate key for a rate-based rule.
|
|
785
732
|
*/
|
|
786
|
-
export interface
|
|
787
|
-
|
|
788
|
-
ResponseInspection?: ResponseInspection;
|
|
789
|
-
CreationPath: string;
|
|
790
|
-
EnableRegexInPath?: boolean;
|
|
791
|
-
RequestInspection: RequestInspectionACFP;
|
|
733
|
+
export interface RateLimitHTTPMethod {
|
|
734
|
+
[k: string]: unknown;
|
|
792
735
|
}
|
|
793
736
|
/**
|
|
794
|
-
*
|
|
737
|
+
* Specifies the IP address in the web request as an aggregate key for a rate-based rule.
|
|
795
738
|
*/
|
|
796
|
-
export interface
|
|
797
|
-
|
|
798
|
-
EmailField?: FieldIdentifier;
|
|
799
|
-
PasswordField?: FieldIdentifier;
|
|
800
|
-
AddressFields?: FieldIdentifier[];
|
|
801
|
-
PayloadType: ("JSON" | "FORM_ENCODED");
|
|
802
|
-
PhoneNumberFields?: FieldIdentifier[];
|
|
739
|
+
export interface RateLimitIP {
|
|
740
|
+
[k: string]: unknown;
|
|
803
741
|
}
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
742
|
+
/**
|
|
743
|
+
* Specifies a label namespace to use as an aggregate key for a rate-based rule.
|
|
744
|
+
*/
|
|
745
|
+
export interface RateLimitLabelNamespace {
|
|
746
|
+
/**
|
|
747
|
+
* The namespace to use for aggregation.
|
|
748
|
+
*/
|
|
749
|
+
Namespace: string;
|
|
807
750
|
}
|
|
808
|
-
|
|
751
|
+
/**
|
|
752
|
+
* Specifies a query argument in the request as an aggregate key for a rate-based rule.
|
|
753
|
+
*/
|
|
754
|
+
export interface RateLimitQueryArgument {
|
|
755
|
+
/**
|
|
756
|
+
* The name of the query argument to use.
|
|
757
|
+
*/
|
|
758
|
+
Name: string;
|
|
759
|
+
TextTransformations: TextTransformation[];
|
|
760
|
+
}
|
|
761
|
+
/**
|
|
762
|
+
* Specifies the request's query string as an aggregate key for a rate-based rule.
|
|
763
|
+
*/
|
|
764
|
+
export interface RateLimitQueryString {
|
|
765
|
+
TextTransformations: TextTransformation[];
|
|
766
|
+
}
|
|
767
|
+
/**
|
|
768
|
+
* Specifies the request's URI Path as an aggregate key for a rate-based rule.
|
|
769
|
+
*/
|
|
770
|
+
export interface RateLimitUriPath {
|
|
771
|
+
TextTransformations: TextTransformation[];
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Specifies the request's JA3 fingerprint as an aggregate key for a rate-based rule.
|
|
775
|
+
*/
|
|
776
|
+
export interface RateLimitJA3Fingerprint {
|
|
777
|
+
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* Specifies the request's JA4 fingerprint as an aggregate key for a rate-based rule.
|
|
781
|
+
*/
|
|
782
|
+
export interface RateLimitJA4Fingerprint {
|
|
809
783
|
FallbackBehavior: ("MATCH" | "NO_MATCH");
|
|
810
|
-
|
|
811
|
-
|
|
784
|
+
}
|
|
785
|
+
/**
|
|
786
|
+
* Specifies the request's ASN as an aggregate key for a rate-based rule.
|
|
787
|
+
*/
|
|
788
|
+
export interface RateLimitAsn {
|
|
789
|
+
[k: string]: unknown;
|
|
790
|
+
}
|
|
791
|
+
export interface AndStatement {
|
|
792
|
+
Statements: Statement[];
|
|
793
|
+
}
|
|
794
|
+
export interface OrStatement {
|
|
795
|
+
Statements: Statement[];
|
|
796
|
+
}
|
|
797
|
+
export interface NotStatement {
|
|
798
|
+
Statement: Statement;
|
|
799
|
+
}
|
|
800
|
+
export interface LabelMatchStatement {
|
|
801
|
+
Scope: LabelMatchScope;
|
|
802
|
+
Key: LabelMatchKey;
|
|
803
|
+
}
|
|
804
|
+
export interface RegexMatchStatement {
|
|
805
|
+
RegexString: string;
|
|
806
|
+
FieldToMatch: FieldToMatch;
|
|
807
|
+
TextTransformations: TextTransformation[];
|
|
808
|
+
}
|
|
809
|
+
export interface AsnMatchStatement {
|
|
810
|
+
AsnList?: number[];
|
|
811
|
+
ForwardedIPConfig?: ForwardedIPConfiguration;
|
|
812
812
|
}
|
|
813
813
|
/**
|
|
814
814
|
* Override a RuleGroup or ManagedRuleGroup behavior. This can only be applied to Rule that has RuleGroupReferenceStatement or ManagedRuleGroupReferenceStatement.
|
|
@@ -834,19 +834,47 @@ export interface Label {
|
|
|
834
834
|
* Visibility Metric of the WebACL.
|
|
835
835
|
*/
|
|
836
836
|
export interface VisibilityConfig {
|
|
837
|
-
MetricName: string;
|
|
838
837
|
SampledRequestsEnabled: boolean;
|
|
839
838
|
CloudWatchMetricsEnabled: boolean;
|
|
839
|
+
MetricName: string;
|
|
840
840
|
}
|
|
841
841
|
export interface CaptchaConfig {
|
|
842
842
|
ImmunityTimeProperty?: ImmunityTimeProperty;
|
|
843
843
|
}
|
|
844
|
+
export interface ImmunityTimeProperty {
|
|
845
|
+
ImmunityTime: number;
|
|
846
|
+
}
|
|
847
|
+
export interface ChallengeConfig {
|
|
848
|
+
ImmunityTimeProperty?: ImmunityTimeProperty;
|
|
849
|
+
}
|
|
844
850
|
/**
|
|
845
|
-
*
|
|
851
|
+
* Collection of dataProtects.
|
|
846
852
|
*/
|
|
847
|
-
export interface
|
|
848
|
-
|
|
849
|
-
|
|
853
|
+
export interface DataProtectionConfig {
|
|
854
|
+
DataProtections: DataProtections;
|
|
855
|
+
}
|
|
856
|
+
export interface DataProtect {
|
|
857
|
+
Field: FieldToProtect;
|
|
858
|
+
Action: DataProtectionAction;
|
|
859
|
+
ExcludeRuleMatchDetails?: boolean;
|
|
860
|
+
ExcludeRateBasedDetails?: boolean;
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Field in log to protect.
|
|
864
|
+
*/
|
|
865
|
+
export interface FieldToProtect {
|
|
866
|
+
/**
|
|
867
|
+
* Field type to protect
|
|
868
|
+
*/
|
|
869
|
+
FieldType: ("SINGLE_HEADER" | "SINGLE_COOKIE" | "SINGLE_QUERY_ARGUMENT" | "QUERY_STRING" | "BODY");
|
|
870
|
+
/**
|
|
871
|
+
* List of field keys to protect
|
|
872
|
+
*/
|
|
873
|
+
FieldKeys?: FieldToProtectKeyName[];
|
|
874
|
+
}
|
|
875
|
+
export interface Tag {
|
|
876
|
+
Key?: string;
|
|
877
|
+
Value?: string;
|
|
850
878
|
}
|
|
851
879
|
/**
|
|
852
880
|
* Custom response key and body map.
|
|
@@ -864,7 +892,30 @@ export interface CustomResponseBody {
|
|
|
864
892
|
ContentType: ResponseContentType;
|
|
865
893
|
Content: ResponseContent;
|
|
866
894
|
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
895
|
+
/**
|
|
896
|
+
* AssociationConfig for body inspection
|
|
897
|
+
*/
|
|
898
|
+
export interface AssociationConfig {
|
|
899
|
+
RequestBody?: RequestBody;
|
|
900
|
+
}
|
|
901
|
+
/**
|
|
902
|
+
* Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig
|
|
903
|
+
*/
|
|
904
|
+
export interface RequestBody {
|
|
905
|
+
[k: string]: RequestBodyAssociatedResourceTypeConfig;
|
|
906
|
+
}
|
|
907
|
+
/**
|
|
908
|
+
* Configures the inspection size in the request body.
|
|
909
|
+
*
|
|
910
|
+
* This interface was referenced by `RequestBody`'s JSON-Schema definition
|
|
911
|
+
* via the `patternProperty` "^(CLOUDFRONT|API_GATEWAY|COGNITO_USER_POOL|APP_RUNNER_SERVICE|VERIFIED_ACCESS_INSTANCE)$".
|
|
912
|
+
*/
|
|
913
|
+
export interface RequestBodyAssociatedResourceTypeConfig {
|
|
914
|
+
DefaultSizeInspectionLimit: SizeInspectionLimit;
|
|
915
|
+
}
|
|
916
|
+
/**
|
|
917
|
+
* Configures the options for on-source DDoS protection provided by supported resource type.
|
|
918
|
+
*/
|
|
919
|
+
export interface OnSourceDDoSProtectionConfig {
|
|
920
|
+
ALBLowReputationMode: ("ACTIVE_UNDER_DDOS" | "ALWAYS_ON");
|
|
870
921
|
}
|