Skip to content

Commit 917b6f9

Browse files
author
AWS
committed
AWS WAFV2 Update: You can now create encrypted API keys to use in a client application integration of the JavaScript CAPTCHA API . You can also retrieve a list of your API keys and the JavaScript application integration URL.
1 parent 01a7bde commit 917b6f9

File tree

2 files changed

+196
-10
lines changed

2 files changed

+196
-10
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "AWS WAFV2",
4+
"contributor": "",
5+
"description": "You can now create encrypted API keys to use in a client application integration of the JavaScript CAPTCHA API . You can also retrieve a list of your API keys and the JavaScript application integration URL."
6+
}

services/wafv2/src/main/resources/codegen-resources/service-2.json

Lines changed: 190 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,22 @@
5151
],
5252
"documentation":"<p>Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a <a>RuleGroup</a> or <a>WebACL</a>. </p> <p>WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. For more information, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/aws-waf-capacity-units.html\">WAF web ACL capacity units (WCU)</a> in the <i>WAF Developer Guide</i>. </p>"
5353
},
54+
"CreateAPIKey":{
55+
"name":"CreateAPIKey",
56+
"http":{
57+
"method":"POST",
58+
"requestUri":"/"
59+
},
60+
"input":{"shape":"CreateAPIKeyRequest"},
61+
"output":{"shape":"CreateAPIKeyResponse"},
62+
"errors":[
63+
{"shape":"WAFInternalErrorException"},
64+
{"shape":"WAFInvalidParameterException"},
65+
{"shape":"WAFInvalidOperationException"},
66+
{"shape":"WAFLimitsExceededException"}
67+
],
68+
"documentation":"<p>Creates an API key for use in the integration of the CAPTCHA API in your JavaScript client applications. The integration lets you customize the placement and characteristics of the CAPTCHA puzzle for your end users. For more information about the CAPTCHA JavaScript integration, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-application-integration.html\">WAF client application integration</a> in the <i>WAF Developer Guide</i>.</p> <p>The CAPTCHA API requires a key that authorizes CAPTCHA use from the client application domain. You can use a single key for up to 5 domains. After you generate a key, you can copy it for use in your JavaScript integration. </p>"
69+
},
5470
"CreateIPSet":{
5571
"name":"CreateIPSet",
5672
"http":{
@@ -319,6 +335,22 @@
319335
],
320336
"documentation":"<p>Generates a presigned download URL for the specified release of the mobile SDK.</p> <p>The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage WAF tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-application-integration.html\">WAF client application integration</a> in the <i>WAF Developer Guide</i>.</p>"
321337
},
338+
"GetDecryptedAPIKey":{
339+
"name":"GetDecryptedAPIKey",
340+
"http":{
341+
"method":"POST",
342+
"requestUri":"/"
343+
},
344+
"input":{"shape":"GetDecryptedAPIKeyRequest"},
345+
"output":{"shape":"GetDecryptedAPIKeyResponse"},
346+
"errors":[
347+
{"shape":"WAFInternalErrorException"},
348+
{"shape":"WAFInvalidParameterException"},
349+
{"shape":"WAFInvalidOperationException"},
350+
{"shape":"WAFInvalidResourceException"}
351+
],
352+
"documentation":"<p>Returns your API key in decrypted form. Use this to check the token domains that you have defined for the key. </p>"
353+
},
322354
"GetIPSet":{
323355
"name":"GetIPSet",
324356
"http":{
@@ -494,6 +526,22 @@
494526
],
495527
"documentation":"<p>Retrieves the <a>WebACL</a> for the specified resource. </p>"
496528
},
529+
"ListAPIKeys":{
530+
"name":"ListAPIKeys",
531+
"http":{
532+
"method":"POST",
533+
"requestUri":"/"
534+
},
535+
"input":{"shape":"ListAPIKeysRequest"},
536+
"output":{"shape":"ListAPIKeysResponse"},
537+
"errors":[
538+
{"shape":"WAFInternalErrorException"},
539+
{"shape":"WAFInvalidParameterException"},
540+
{"shape":"WAFInvalidOperationException"},
541+
{"shape":"WAFInvalidResourceException"}
542+
],
543+
"documentation":"<p>Retrieves a list of the API keys that you've defined for the specified scope. </p>"
544+
},
497545
"ListAvailableManagedRuleGroupVersions":{
498546
"name":"ListAvailableManagedRuleGroupVersions",
499547
"http":{
@@ -857,6 +905,47 @@
857905
}
858906
},
859907
"shapes":{
908+
"APIKey":{
909+
"type":"string",
910+
"max":2048,
911+
"min":1,
912+
"pattern":".*\\S.*"
913+
},
914+
"APIKeySummaries":{
915+
"type":"list",
916+
"member":{"shape":"APIKeySummary"}
917+
},
918+
"APIKeySummary":{
919+
"type":"structure",
920+
"members":{
921+
"TokenDomains":{
922+
"shape":"TokenDomains",
923+
"documentation":"<p>The token domains that are defined in this API key. </p>"
924+
},
925+
"APIKey":{
926+
"shape":"APIKey",
927+
"documentation":"<p>The generated, encrypted API key. You can copy this for use in your JavaScript CAPTCHA integration. </p> <p>For information about how to use this in your CAPTCHA JavaScript integration, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-application-integration.html\">WAF client application integration</a> in the <i>WAF Developer Guide</i>.</p>"
928+
},
929+
"CreationTimestamp":{
930+
"shape":"Timestamp",
931+
"documentation":"<p>The date and time that the key was created. </p>"
932+
},
933+
"Version":{
934+
"shape":"APIKeyVersion",
935+
"documentation":"<p>Internal value used by WAF to manage the key. </p>"
936+
}
937+
},
938+
"documentation":"<p>Information for a single API key. </p>"
939+
},
940+
"APIKeyTokenDomains":{
941+
"type":"list",
942+
"member":{"shape":"TokenDomain"},
943+
"min":1
944+
},
945+
"APIKeyVersion":{
946+
"type":"integer",
947+
"min":0
948+
},
860949
"AWSManagedRulesATPRuleSet":{
861950
"type":"structure",
862951
"required":["LoginPath"],
@@ -1494,6 +1583,32 @@
14941583
"member":{"shape":"CountryCode"},
14951584
"min":1
14961585
},
1586+
"CreateAPIKeyRequest":{
1587+
"type":"structure",
1588+
"required":[
1589+
"Scope",
1590+
"TokenDomains"
1591+
],
1592+
"members":{
1593+
"Scope":{
1594+
"shape":"Scope",
1595+
"documentation":"<p>Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service. </p> <p>To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li> <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li> </ul>"
1596+
},
1597+
"TokenDomains":{
1598+
"shape":"APIKeyTokenDomains",
1599+
"documentation":"<p>The client application domains that you want to use this API key for. </p>"
1600+
}
1601+
}
1602+
},
1603+
"CreateAPIKeyResponse":{
1604+
"type":"structure",
1605+
"members":{
1606+
"APIKey":{
1607+
"shape":"APIKey",
1608+
"documentation":"<p>The generated, encrypted API key. You can copy this for use in your JavaScript CAPTCHA integration. </p> <p>For information about how to use this in your CAPTCHA JavaScript integration, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-application-integration.html\">WAF client application integration</a> in the <i>WAF Developer Guide</i>.</p>"
1609+
}
1610+
}
1611+
},
14971612
"CreateIPSetRequest":{
14981613
"type":"structure",
14991614
"required":[
@@ -2345,6 +2460,36 @@
23452460
},
23462461
"documentation":"<p>A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match.</p> <ul> <li> <p>To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the <code>CountryCodes</code> array. </p> </li> <li> <p>Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed. </p> </li> </ul> <p>WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match <code>ForwardedIPConfig</code>. </p> <p>If you use the web request origin, the label formats are <code>awswaf:clientip:geo:region:&lt;ISO country code&gt;-&lt;ISO region code&gt;</code> and <code>awswaf:clientip:geo:country:&lt;ISO country code&gt;</code>.</p> <p>If you use a forwarded IP address, the label formats are <code>awswaf:forwardedip:geo:region:&lt;ISO country code&gt;-&lt;ISO region code&gt;</code> and <code>awswaf:forwardedip:geo:country:&lt;ISO country code&gt;</code>.</p> <p>For additional details, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-geo-match.html\">Geographic match rule statement</a> in the <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html\">WAF Developer Guide</a>. </p>"
23472462
},
2463+
"GetDecryptedAPIKeyRequest":{
2464+
"type":"structure",
2465+
"required":[
2466+
"Scope",
2467+
"APIKey"
2468+
],
2469+
"members":{
2470+
"Scope":{
2471+
"shape":"Scope",
2472+
"documentation":"<p>Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service. </p> <p>To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li> <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li> </ul>"
2473+
},
2474+
"APIKey":{
2475+
"shape":"APIKey",
2476+
"documentation":"<p>The encrypted API key. </p>"
2477+
}
2478+
}
2479+
},
2480+
"GetDecryptedAPIKeyResponse":{
2481+
"type":"structure",
2482+
"members":{
2483+
"TokenDomains":{
2484+
"shape":"TokenDomains",
2485+
"documentation":"<p>The token domains that are defined in this API key. </p>"
2486+
},
2487+
"CreationTimestamp":{
2488+
"shape":"Timestamp",
2489+
"documentation":"<p>The date and time that the key was created. </p>"
2490+
}
2491+
}
2492+
},
23482493
"GetIPSetRequest":{
23492494
"type":"structure",
23502495
"required":[
@@ -3075,6 +3220,41 @@
30753220
"type":"list",
30763221
"member":{"shape":"Label"}
30773222
},
3223+
"ListAPIKeysRequest":{
3224+
"type":"structure",
3225+
"required":["Scope"],
3226+
"members":{
3227+
"Scope":{
3228+
"shape":"Scope",
3229+
"documentation":"<p>Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, an Amazon Cognito user pool, or an App Runner service. </p> <p>To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li> <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li> </ul>"
3230+
},
3231+
"NextMarker":{
3232+
"shape":"NextMarker",
3233+
"documentation":"<p>When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.</p>"
3234+
},
3235+
"Limit":{
3236+
"shape":"PaginationLimit",
3237+
"documentation":"<p>The maximum number of objects that you want WAF to return for this request. If more objects are available, in the response, WAF provides a <code>NextMarker</code> value that you can use in a subsequent call to get the next batch of objects.</p>"
3238+
}
3239+
}
3240+
},
3241+
"ListAPIKeysResponse":{
3242+
"type":"structure",
3243+
"members":{
3244+
"NextMarker":{
3245+
"shape":"NextMarker",
3246+
"documentation":"<p>When you request a list of objects with a <code>Limit</code> setting, if the number of objects that are still available for retrieval exceeds the limit, WAF returns a <code>NextMarker</code> value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.</p>"
3247+
},
3248+
"APIKeySummaries":{
3249+
"shape":"APIKeySummaries",
3250+
"documentation":"<p>The array of key summaries. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
3251+
},
3252+
"ApplicationIntegrationURL":{
3253+
"shape":"OutputUrl",
3254+
"documentation":"<p>The CAPTCHA application integration URL, for use in your JavaScript implementation. </p> <p>For information about how to use this in your CAPTCHA JavaScript integration, see <a href=\"https://docs.aws.amazon.com/waf/latest/developerguide/waf-application-integration.html\">WAF client application integration</a> in the <i>WAF Developer Guide</i>.</p>"
3255+
}
3256+
}
3257+
},
30783258
"ListAvailableManagedRuleGroupVersionsRequest":{
30793259
"type":"structure",
30803260
"required":[
@@ -3114,7 +3294,7 @@
31143294
},
31153295
"Versions":{
31163296
"shape":"ManagedRuleGroupVersions",
3117-
"documentation":"<p>The versions that are currently available for the specified managed rule group. </p>"
3297+
"documentation":"<p>The versions that are currently available for the specified managed rule group. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
31183298
},
31193299
"CurrentDefaultVersion":{
31203300
"shape":"VersionKeyString",
@@ -3149,7 +3329,7 @@
31493329
},
31503330
"ManagedRuleGroups":{
31513331
"shape":"ManagedRuleGroupSummaries",
3152-
"documentation":"<p/>"
3332+
"documentation":"<p>Array of managed rule groups that you can use. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
31533333
}
31543334
}
31553335
},
@@ -3180,7 +3360,7 @@
31803360
},
31813361
"IPSets":{
31823362
"shape":"IPSetSummaries",
3183-
"documentation":"<p>Array of IPSets. This may not be the full list of IPSets that you have defined. See the <code>Limit</code> specification for this request.</p>"
3363+
"documentation":"<p>Array of IPSets. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
31843364
}
31853365
}
31863366
},
@@ -3207,7 +3387,7 @@
32073387
"members":{
32083388
"LoggingConfigurations":{
32093389
"shape":"LoggingConfigurations",
3210-
"documentation":"<p/>"
3390+
"documentation":"<p>Array of logging configurations. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
32113391
},
32123392
"NextMarker":{
32133393
"shape":"NextMarker",
@@ -3242,7 +3422,7 @@
32423422
},
32433423
"ManagedRuleSets":{
32443424
"shape":"ManagedRuleSetSummaries",
3245-
"documentation":"<p>Your managed rule sets. </p>"
3425+
"documentation":"<p>Your managed rule sets. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
32463426
}
32473427
}
32483428
},
@@ -3274,7 +3454,7 @@
32743454
"members":{
32753455
"ReleaseSummaries":{
32763456
"shape":"ReleaseSummaries",
3277-
"documentation":"<p>High level information for the available SDK releases. </p>"
3457+
"documentation":"<p>The high level information for the available SDK releases. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
32783458
},
32793459
"NextMarker":{
32803460
"shape":"NextMarker",
@@ -3309,7 +3489,7 @@
33093489
},
33103490
"RegexPatternSets":{
33113491
"shape":"RegexPatternSetSummaries",
3312-
"documentation":"<p/>"
3492+
"documentation":"<p>Array of regex pattern sets. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
33133493
}
33143494
}
33153495
},
@@ -3363,7 +3543,7 @@
33633543
},
33643544
"RuleGroups":{
33653545
"shape":"RuleGroupSummaries",
3366-
"documentation":"<p/>"
3546+
"documentation":"<p>Array of rule groups. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
33673547
}
33683548
}
33693549
},
@@ -3394,7 +3574,7 @@
33943574
},
33953575
"TagInfoForResource":{
33963576
"shape":"TagInfoForResource",
3397-
"documentation":"<p>The collection of tagging definitions for the resource. </p>"
3577+
"documentation":"<p>The collection of tagging definitions for the resource. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
33983578
}
33993579
}
34003580
},
@@ -3425,7 +3605,7 @@
34253605
},
34263606
"WebACLs":{
34273607
"shape":"WebACLSummaries",
3428-
"documentation":"<p/>"
3608+
"documentation":"<p>Array of web ACLs. If you specified a <code>Limit</code> in your request, this might not be the full list. </p>"
34293609
}
34303610
}
34313611
},

0 commit comments

Comments
 (0)